Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

게임알고리즘 1주차

No description
by

선하 박.

on 25 October 2016

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of 게임알고리즘 1주차

게임알고리즘 1주차
알고리즘이란 무엇인가?

알고리즘은 컴퓨터를 이옹하여 주어진 과제를 해결하기 위한 처리절차


즉, 알고리즘은 문제 해결을 위한 처리 절차


예) 음식 요리법도 알고리즘과 같은 맥락
요리법
1. 조리단계
2. 조리단계
3. 조리단계
:
9세기경 페르시아 수학자인 알콰리즈미(al-Khwarizmi)의 이름으로부터 유래

게임알고리즘 2주차
알고리즘 의미파악
*좋은 알고리즘

*나쁜 알고리즘
*맛있는 요리법

*맛없는 요리법
요리법 접목
많은 연구자들이
보다 빠르게, 보다 데이터양을 낮출 방법을 모색
개량된 알고리즘 즉, 좋은 알고리즘으로 개발
기존 요리법을 바탕으로
좋은 아이디어, 새로운 시도, 노력
더 좋은 요리법으로 재탄생
'선인들의 지혜' 의 산물!!
키워드 : 알고리즘은 선인들의 지혜가 담긴 프로그램 본보기
알고리즘을 학습하면 질 좋은 프로그램 개발 할 수 있다.
알고리즘을 이해하는 것 ----> 게임을 잘하게 되는 것
게임을 자하는 이들은 -----> 알고리즘 이해도가 높음
예시) 화면 속 다가오는 적 캐릭터를 격추시키는 게임
"XX공략법", "XX팁"이 공유
고생하지 않고 매번 같은 방식으로 쉽게 적을 물리치는 해법
즉, 게임을 공략하기 위한 '정석'

정석이란?
공격과 수비 상황에서 최선의 수라고 인정한 일정한 방식으로 돌을 노는 법


키워드 : 알고리즘의 학습은 게임의 공략법 같은 것
게임알고리즘 3주차
프로그래밍에 필요한 꼭 알아두어야할 순서도 기호
알고리즘이란?
모든일의 순서

순서도란?
알고리즘을 그림으로 표현한것
시작과 끝을 알리는 순서도 기호
시작은 간단 하게 안에 시작(start)를 쓰고, 끝(end)를 씀
무언가를 실행한다는 처리입니다.
변수의 값은 변경하거나 지정해 줍니다.
무언가를 비교 한다는 비교입니다.
변수들 끼리 비교해주는 겁니다.
키보드로 무언가를 입력받는 다는 키보드 입력입니다.
값을 입력받고 싶을때 쓰는 순서도 기호입니다.
모니터로 무언가를 출력하는 모니터 출력입니다.
보통 결과를 모니터에 출력할때 씁니다.
프린트로 무언가를 출력하는 프린트 출력입니다.
보통 결과를 프린트로 출력받고 싶을때 사용합니다.
무언가를 하기 위한 준비 입니다.
변수를 선언해주는 겁니다.
※변수란? 값이 특정지어지지 않아 임의의 값을 가질 수 있는 문자입니다.
1. 일상생활의 알고리즘의 예

– 알고리즘은 명령어들이 다음과 같이 3가지로 합성된다.
연속(sequence) – 명령어 다음에 명령어가 나온다
반복(repetition) – 명령어가 반복이 된다.
조건(condition) – 조건에 따라 명령의 수행이 결정된다.
예1) 서울에서 부산가는 방법을 컴퓨터 알고리즘으로 기술하면 다음과 같다.
예2) 비행기표가 없을 경우 반복과 조건이 포함된다.
흔히 알고리즘이라 하면 어렵다고 생각합니다.
하지만, 가만히 우리 일상생활 속을 들여다보면 이미
알고리즘과 친숙해져 있습니다.

우리가 일상 일을 처리할 때 계획에 따라, 순서에 따라 움직이는 것, 그것이 바로 알고리즘입니다.

게임알고리즘 4주차
* 입력 : 외부에서 제공되는 자료가 0개 이상 존재한다.
* 출력 : 적어도 2개 이상의 결과를 내어야 한다.(즉 모든 입력에 하나의 출력이 나오면 안됨)

* 정당성 : 수행 과정은 명확하고 모호하지 않은 명령어로 구성되어야 한다.
* 정지성  : 유한 번의 명령어를 수행 후(유한 시간 내)에 종료한다. 즉, 언젠가 반드시 정지한다.
* 효율성 : 모든 과정은 명백하게 실행 가능(검증 가능)한 것이어야 한다.

위와같은 조건을 충족해야 알고리즘.. 이라고 정의할 수 있다
위의 조건을 충족하는 예제


ex1) 라면을 끓인다.
1) 라면(분말 스프, 건더기 스프, 면), 냄비, 물, 가스버너 등등..
--> 여기까지가 입력, 즉 외부에서 제공되는 자료라고 할 수 있습니다.

2-1) 일정량의 물을 냄비에 붙고 물을 끓인다.
2-2) 일정량의 물을 냄비에 붙고 물을 끓이는데 분말스프만 넣고 끓인다.
2-3) 일정량의 물을 냄비에 붙고 물을 끓이는데 분말/건더기 스프를 넣고 끓인다.

2-4) 일정량의 물을 냄비에 붙고 물을 끓이는데 라면과 분말/건더기 스프 모두를 넣고 끓인다.

--> 여기까지가 정당성에 대한 내용입니다.

3-1) 2-1 은 가장 느리지만 일반적인 방법이다.  (2번째로 빠름)
3-2) 2-2 는 분말스프를 넣고 끓여 물의 끓는 점을 올리는 효과가 있다. (3번째로 빠름)
3-3) 2-3 은 2-2 의 효과에 국물을 우려내는 효과가 있다. (가장 느림)
3-4) 2-4 는 속도면에서 빠르면 면이 불어 맛없는 라면을 먹을수 있다. (가장 빠름)
-- > 여기까지는 효율성 및 정지성에 대한 내용입니다.

4-1) 평범한 라면이 완성된다.
(라면에 대한 특별한 기호가 없이 라면이 먹고 싶은 경우)
4-2) 끓는점을 높혀 면빨이 쫀득한 라면을 완성됐다.
(국물보다는 면빨의 쫀득함이 중요할 경우.)
4-3) 끓는점을 높혀 면빨이 쫀득하면서 국물도 더 맛있는 라면을 완성됐다.
(시간이 오래 걸리기 때문에 배가 많이 고픈 상태가 아니어서 라면이 늦게 만들어져도 상관없는 경우.)
4-4) 면을 너무 오래 삶아 불은 라면이 완성 됐다.
(빨리 먹을 수 있어 배고픔을 빨리 달래야 하는 경우.)
--> 여기까지가 출력에 대한 내용입니다.

위와 같이 라면을 끓이는데도 수많은 방법론이 존재하고, 그때그때 상황에 따라 방법론이 달라짐을 알 수 있습니다.


변수는 값을 담는 상자, 컵이다.

알고리즘에서 데이터를 조작할때는 조작한 데이터를 저장할 공간이 필요하다. 이것이 바로 변수이다.
예시1)
예시2)
예시3)
예시4)
1부터 10까지 짝수를 순차적으로 배열하는 알고리즘을 정리해보세요.
변수값은 '수열' 입니다.
*알고리즘에 재 정리하는 시간
*소프트웨어 개발은 문제분석->알고리즘 설계->코딩->테스팅->유지/보수의 과정을 거칩니다.
*컴퓨터를 이용해 주어진 문제를 해결하고자 할때, 무작정 코딩부터 하려고 덤벼드는 것은 결코 좋은 태도가 아닙니다.
*문제를 분석하고, 절차를 수립하고, 그에 따른 검증작업을 거치는 과정을 평가할 것입니다.
->알고리즘으로 문제 해결 능력을 평가하는 것이 보다 일반적이고 정확한 평가방법이라고 할 수 있습니다.




**정답을 찾는 과정
1)문제를 명확하게 파악한다.
2)처리조건(사용하는 변수 설명 포함)을 꼼꼼하게 살펴본다.
3)알고리즘이 어떤 원리인지 파악한다.
4)각 변수들의 특징과 변수들 간의 관계를 유추한다.
5)가장 확실한 빈 괄호부터 하나씩 채워나간다.
6)빈 괄호를 채운 명령어를 이용해 다시 디버깅해 보고, 원하는 결과가 나오지 않으면 다른 보기를 찾아본다.
7)원하는 결과가 나올때 까지 6)번의 과정을 반복한다.



***디버깅
-디버깅은 컴퓨터에서 발생한 오류를 찾기 위해 소스 코드를 한줄한줄 따라가면서 변수값의 변화를 검사하는 것입니다.
-디버깅을 거치지 않은 순서도는 정확하다고 말할수 없음

A타입
B타입
C타입
D타입
E타입
F타입
G타입
1부터 10까지 합계를 출력하시오
예) 1+2+3.....+9+10
변수-수열은 1증가 변수, Hap은 합계변수
18+15+12+9+6+3
변수는 K: 합계를 위한 변수
Hap:합계변수
Y
N
게임알고리즘 9주차
직무수행능력평가 문제풀이/출석현황 확인

https://prezi.com/-9v_n6t4izm1/presentation/
**슈팅게임의 구성요소
메인캐릭터(플레이어) : 플레이어가 조작하는 캐릭터
적기 : 메인 캐릭터를 공격하는 객체.
대부분 메인 캐릭터가 쏘는 무기로 파괴될수 있음
무기 : 메인캐릭터가 적기를 향해 발사는 공격수단
대부분 적기에 명중하면 파괴되거나 파워가 떨어지는 등 피해를 가함
탄환(적기가 쏘는) : 적기가 메인캐릭터를 향해 발사하는 공격수단
메인캐릭터가 탄환에 맞으면 파괴되거나 파워가 떨어짐
아이템 : 메인캐릭터를 도와주는 개념의 객체
배경(스테이지) : 메인캐릭터, 적기, 탄환 등의 뒤에 표시되는 땅이나 우주공간
배경이 스크롤되어 속도감제시
점수 : 게임을 진행하면서 얻는 점수 /적기파괴시 또는 아이템습득시 점수부과
충돌효과(충돌판정) : 물체끼리 충돌했는지 판정하는 것
슈팅게임을 만들기 위해서는....
80년대
90년대
Full transcript