2012-07-29 3 views
-4

우선 Java 프로그래밍 초보자입니다. 저는 학교 프로젝트 신청서를 만들고 싶습니다. 나는 보드 게임을 만들기로 결심했다! 꽤 직설적 인. ! [Board] [1] 보드이며 두 명의 플레이어가 있습니다 (Both Human). 첫 번째 플레이어 (x)가 보드에서 아무 곳이나 움직일 것입니다. 그에게 9 개의 장소가 있습니다.게임 (tic tac toe와 유사) 알고리즘이 필요합니다.

게임의 동기는 3 개의 토큰을 모두 대각선, 수평 또는 수직으로 한 줄에 놓는 것입니다.

! [승리 조건] [2] 나는 알고리즘을 통해 승자를 확인하고 그가 움직일 때 frm 사용자를 선택하는 방법을 원합니다. 나는 tic tac toh 알고리듬을 많이 읽었지만 무엇이 잘못되었는지 알지 못한다. ! [이동 가능] [3] 도와주세요 !!

+6

이 중 어느 부분에 문제가 있습니까? 데이터 저장? 사용자 인터페이스 표시? 승자 결정? 다른 것? –

답변

3

숙제이므로 답변을 드리고 싶지 않습니다. 또한, 당신이 어려움을 겪고 있었는지에 대해 명확하게 밝혀지지 않았으므로, 이것이 당신이 가진 문제에 적용되기를 바랍니다. 답변을 수정하여 의견을 남기고 답을 얻은 모든 사람들이 자신의 필요에보다 효과적으로 응답 할 수 있도록 의견을 남기십시오.

2 차원 배열을 사용하여 보드를 저장할 수 있습니다. 8 개 가능한 보드 상태

틱택 토에
char[][] board = new char[3][3]; 

있다 : 다음과 같은 자바 (예 OX 저장하거나 상기 char 형 사용) 3 × 2 차원 배열을 생성하기위한 구문은 이은에 번역

(1)  (2)  (3)  (4)  (5)  (6)  (7)  (8) 
X X X # # # # # # X # # # X # # # X X # # # # X 
# # # X X X # # # X # # # X # # # X # X # # X # 
# # # # # # X X X X # # # X # # # X # # X X # # 

그 배열 인덱스는 0에서 시작 (우리는 3 × 3의 2 차원 배열이 있기 때문에, 2까지 이동) 기억 : 플레이어가 게임에서 (이동 아래 X 표시) 수상했음을 나타냅니다 그 다음 조건 집합 :

(1): board[0][0] == board[0][1] && board[0][1] == board[0][2] 
(2): board[1][0] == board[1][1] && board[1][1] == board[1][2] 
(3): board[2][0] == board[2][1] && board[2][1] == board[2][2] 
(4): board[0][0] == board[1][0] && board[1][0] == board[2][0] 
(5): board[0][1] == board[1][1] && board[1][1] == board[2][1] 
(6): board[0][2] == board[1][2] && board[1][2] == board[2][2] 
(7): board[0][0] == board[1][1] && board[1][1] == board[2][2] 
(8): board[0][2] == board[1][1] && board[1][1] == board[2][0] 

이러한 셀 중 하나라도 같으면 (공백이 아닌) 사람 (해당 셀을 차지한 사람에 따라 X 또는 O)이 게임에서 승리했습니다. 이 코드를 더 작게 만들기 위해 잠재적으로 루프를 사용할 수 있습니다.

+0

자신 만의 이동으로 이기기 때문에 마지막으로 놓인 토큰 주위의 공간을 검색 할 수 있습니다. –