오델로 게임
- 프로그래밍/게임만들기
- 2011. 3. 16. 11:13
생각할 수 있는 핵심로직을 생각해봤다.
1. 배열로 맵을 구현한다: 0 : 비어있다. 1 : 흰돌 2 : 검은돌
2. 넘길수있는지 체크 : 1)오목이랑 비슷하다.
1. 배열로 맵을 구현한다: 0 : 비어있다. 1 : 흰돌 2 : 검은돌
2. 넘길수있는지 체크 : 1)오목이랑 비슷하다.
2)배열을 조사하면서
3)커서 바로 옆에있는 왼,오.위,아래,대각선의 위치에 같은 돌이거나 공백이면 X
4)다른 돌일때 커서를 그 방향으로 계속움직이면서 같은돌이 나올때 까지 옆으로 이동 하는데
3)커서 바로 옆에있는 왼,오.위,아래,대각선의 위치에 같은 돌이거나 공백이면 X
4)다른 돌일때 커서를 그 방향으로 계속움직이면서 같은돌이 나올때 까지 옆으로 이동 하는데
이동중 자기자신돌이 나오면 O ( 이때 움직인 거리나 좌표를 구해서 차후 반복문에 이용 )
이동중 자기자신돌이 나오지 않으면 걍 X
3. 넘기는것을 구현 : 앞에서 구한 길이를 이용하여 반복하면서 맵을 바꿔주고 그려줌
4. AI 구현 (NPC구현) : 컴퓨터가 놓을 수 있는 임의의 배열을 만들어 우선순위를 넣어준다.(0이면 가장 작고, 숫자가 큰 것일수록 우선순위 높음)
4. AI 구현 (NPC구현) : 컴퓨터가 놓을 수 있는 임의의 배열을 만들어 우선순위를 넣어준다.(0이면 가장 작고, 숫자가 큰 것일수록 우선순위 높음)
우선 순위는 넘길 수 있는 수로 정한다.
오델로 게임은 대각선 끝이 중요하니까 끝부분에 놓을수 있는지 판단해주고 비어있으면 넣어준 다( 배열이 비어있고, 우선순위가 0 이아니면 무조건 놓는다 )
오델로 게임은 대각선 끝이 중요하니까 끝부분에 놓을수 있는지 판단해주고 비어있으면 넣어준 다( 배열이 비어있고, 우선순위가 0 이아니면 무조건 놓는다 )
이정도를 생각할 수 있겠다. ㅎㅎㅎ
이 글을 공유하기