C 언어 로 정자 기 게임 실현

16356 단어 C 언어우물 바둑
본 논문 의 사례 는 여러분 에 게 C 언어 가 정자 기 게임 을 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
먼저,우 리 는 대체적인 사고방식 이 필요 하 다.먼저 거시적 계획 을 한 다음 에 세부 사항 을 실현 해 야 한다.
예 를 들 면:
1.먼저 메뉴 판 넬 을 장식 해 야 합 니 다.이 판 넬 에서 유 저 는 게임 에 들 어가 거나 게임 을 종료 할 수 있 습 니 다.
2.게임 프로그램 이 필요 합 니 다.이것 이 핵심 입 니 다.
거의 이 두 개 입 니 다.우 리 는 먼저 이것 을 쓸 수 있 습 니 다.이렇게 하면 뒤에서 사용 하기에 편리 합 니 다.이렇게:

void Game();
int Menu();//  Menu    int,                ,    ,    ,      
게임 내용 을 풍부하게 하기 위해 서 우 리 는 함수 Game()에 PVE 모드,PVP 모드 등 옵션 을 추가 할 수 있 습 니 다.

void PVP();
void PVE();
이제 우 리 는 주 함수 로 이 물건 들 을 연결 할 수 있다!다음 과 같다.

int main() {
 int i=Menu();
 if (i == 1) {
  Game();
 }
  printf("  ");
 return 0;
}
이렇게 해서 큰 성 과 를 거 두 었 습 니 다~(마지막 으로 어떤 안녕 이 필요 하지 않 습 니까?이 코드 에서 필 자 는 게이머 들 의 게임 체험 을 최적화 시 키 기 위해 불필요 한 것 을 많이 넣 었 습 니 다.독 자 는 모두 쓰 지 않 아 도 되 고 주로 독자 의 흥 미 를 보고 결정 할 수 있 습 니 다)
다음은 디 테 일 을 실현 하기 위해 메뉴 를 작성 하 겠 습 니 다.(아래)

int Menu() {
//           
 printf("##########################
"); printf("###### #####
"); printf("###### 1: #####
"); printf("###### 2: #####
"); printf("###### #####
"); printf("##########################
"); printf(" :"); // “1” “2”, , int i = 0; while (1) { scanf("%d", &i); if (i == 1 || i == 2) { break; } printf("
, :"); } if (i == 1) return 1; return 2; }
여기 서 우 리 는 i 로 돌아 가 는 것 을 볼 수 있 습 니 다.왜냐하면 저 는 주 함수 에서 이 반환 값 을 빌려 게임 에 들 어 갈 지 여 부 를 확인 해 야 하기 때 문 입 니 다~~
판 넬 을 완성 한 후에 우 리 는 우리 의 핵심 부분 을 진행 해 야 한다.
함수 Game()의 실현
마찬가지 로 거시적인 조작 을 먼저 하고 수요 에 따라 코드 를 쓴다.

void Game() {
//               ,         ,
//       ‘x' ‘o'          ,          char  
 char arr[3][3] = {{ ' ',' ',' ' } ,{' ', ' ', ' '}, {' ', ' ', ' '}};
//          ~~
 printf("##########################
"); printf("###### #####
"); printf("###### 1: #####
"); printf("###### 2: #####
"); printf("###### 3: #####
"); printf("###### #####
"); printf("##########################
"); printf(" :");// int choose = 0; // , ~~ while (1) { scanf("%d", &choose); if (choose == 1 || choose == 2||choose==3) break; printf("
, :"); } // , if(choose==3) Game , , , ~~, 。 if (choose == 1) PVE(); if (choose == 2) PVP(); }
이상 은 게임 의 기본 적 인 절차 입 니 다.게임 을 해 본 고속 철 은 마음 과 깊 은 것 이 어야 합 니 다.해 본 적 이 없어 도 괜 찮 습 니 다.한번 해 보면 알 수 있 습 니 다.어쨌든 게임 을 만들어 야 합 니 다.우 리 는 게임 을 하 는 과정 을 알 아야 합 니 다.
다음은 두 가지 모델 을 실현 한다.
먼저 인간 기 를 쓸 까요?이것 은 필자 의 능력 에 한계 가 있 고 비교적 수 다스 럽 게 쓴 것 이다.만약 에 독자 가 더 좋 은 창의 성 을 가지 면 스스로 실현 할 수 있다~)

void PVE() {
 int arr[3][3] = { { ' ',' ',' ' } ,{' ', ' ', ' '}, {' ', ' ', ' '} };
 //    
 char win = ' ';
 //       
 int i = 0;
 int j = 0;
 //    
 printf("
+---+---+---+
| %c | %c | %c |", arr[0][0], arr[0][1], arr[0][2]); printf("
+---+---+---+
| %c | %c | %c |", arr[1][0], arr[1][1], arr[1][2]); printf("
+---+---+---+
| %c | %c | %c |", arr[2][0], arr[2][1], arr[2][2]); printf("
+---+---+---+
"); while (1) { // printf(" :"); while (1) { scanf("%d%d", &i, &j); if (i < 3 && j < 3 && arr[i][j] == ' ') { arr[i][j] = 'x'; break; } printf("
:"); } printf("
+---+---+---+
| %c | %c | %c |", arr[0][0], arr[0][1], arr[0][2]); printf("
+---+---+---+
| %c | %c | %c |", arr[1][0], arr[1][1], arr[1][2]); printf("
+---+---+---+
| %c | %c | %c |", arr[2][0], arr[2][1], arr[2][2]); printf("
+---+---+---+
"); // if (arr[0][0] == arr[0][1] && arr[0][0] == arr[0][2] && arr[0][0] == 'x') { win = 'x'; break; } else if (arr[1][0] == arr[1][1] && arr[1][0] == arr[1][2] && arr[1][0] == 'x') { win = 'x'; break; } else if (arr[2][0] == arr[2][1] && arr[2][0] == arr[2][2] && arr[2][0] == 'x') { win = 'x'; break; } else if (arr[0][0] == arr[1][0] && arr[0][0] == arr[2][0] && arr[0][0] == 'x') { win = 'x'; break; } else if (arr[0][1] == arr[1][1] && arr[0][1] == arr[2][1] && arr[0][1] == 'x') { win = 'x'; break; } else if (arr[0][2] == arr[1][2] && arr[0][2] == arr[2][2] && arr[0][2] == 'x') { win = 'x'; break; } else if (arr[0][0] == arr[1][1] && arr[0][0] == arr[2][2] && arr[0][0] == 'x') { win = 'x'; break; } else if (arr[0][2] == arr[1][1] && arr[0][2] == arr[2][0] && arr[0][2] == 'x') { win = 'x'; break; } else if (arr[0][0] != ' ' && arr[0][1] != ' ' && arr[0][2] != ' ' && arr[1][0] != ' ' && arr[1][1] != ' ' && arr[1][2] != ' ' && arr[2][1] != ' ' && arr[2][0] != ' ' && arr[2][2] != ' ') { win = '0'; break; } // while (1) { i = (time(0) % 3); j = ((time(0)*time(0)) % 3); if (arr[i][j] == ' ') { arr[i][j] = 'o'; break; } } printf("
+---+---+---+
| %c | %c | %c |", arr[0][0], arr[0][1], arr[0][2]); printf("
+---+---+---+
| %c | %c | %c |", arr[1][0], arr[1][1], arr[1][2]); printf("
+---+---+---+
| %c | %c | %c |", arr[2][0], arr[2][1], arr[2][2]); printf("
+---+---+---+
"); // if (arr[0][0] == arr[0][1] && arr[0][0] == arr[0][2] && arr[0][0] == 'o') { win = 'o'; break; } else if (arr[1][0] == arr[1][1] && arr[1][0] == arr[1][2] && arr[1][0] == 'o') { win = 'o'; break; } else if (arr[2][0] == arr[2][1] && arr[2][0] == arr[2][2] && arr[2][0] == 'o') { win = 'o'; break; } else if (arr[0][0] == arr[1][0] && arr[0][0] == arr[2][0] && arr[0][0] == 'o') { win = 'o'; break; } else if (arr[0][1] == arr[1][1] && arr[0][1] == arr[2][1] && arr[0][1] == 'o') { win = 'o'; break; } else if (arr[0][2] == arr[1][2] && arr[0][2] == arr[2][2] && arr[0][2] == 'o') { win = 'o'; break; } else if (arr[0][0] == arr[1][1] && arr[0][0] == arr[2][2] && arr[0][0] == 'o') { win = 'o'; break; } else if (arr[0][2] == arr[1][1] && arr[0][2] == arr[2][0] && arr[0][2] == 'o') { win = 'o'; break; } else if (arr[0][0] != ' ' && arr[0][1] != ' ' && arr[0][2] != ' ' && arr[1][0] != ' ' && arr[1][1] != ' ' && arr[1][2] != ' ' && arr[2][1] != ' ' && arr[2][0] != ' ' && arr[2][2] != ' ') { win = '0'; break; } } if (win == 'o') { printf("
? ! ?
");// , ~~, , ~ } else if (win == 'x') { printf("
!!!
"); } else { printf("
!!!
");// ~ , . // , , , , ~~ } // , , int re = 0; printf("##########################
"); printf("###### #####
"); printf("###### 1; #####
"); printf("###### 2: #####
"); printf("###### #####
"); printf("##########################
"); printf(" :"); while (1) { scanf("%d", &re); if (re == 1 || re == 2) break; printf("
, :"); } if (re == 1) { re=Menu(); if (re == 1) { Game(); } } else if (re == 2) { PVE(); } }
좋아!같은 방식 으로 PVP 모드 를 쓰 면 사고방식 의 차이 가 많 지 않 으 므 로 상세 하 게 설명 하지 않 겠 습 니 다.구체 적 으로 다음 과 같 습 니 다.

void PVP() {
 int arr[3][3] = { { ' ',' ',' ' } ,{' ', ' ', ' '}, {' ', ' ', ' '} };
 //    
 char win = ' ';
 //       
 int i = 0;
 int j = 0;
 //    
 printf("
+---+---+---+
| %c | %c | %c |", arr[0][0], arr[0][1], arr[0][2]); printf("
+---+---+---+
| %c | %c | %c |", arr[1][0], arr[1][1], arr[1][2]); printf("
+---+---+---+
| %c | %c | %c |", arr[2][0], arr[2][1], arr[2][2]); printf("
+---+---+---+
"); while (1) { // p1 printf("P1 :"); while (1) { scanf("%d%d", &i, &j); if (i < 3 && j < 3 && arr[i][j] == ' ') { arr[i][j] = 'x'; break; } printf("
P1 :"); } printf("
+---+---+---+
| %c | %c | %c |", arr[0][0], arr[0][1], arr[0][2]); printf("
+---+---+---+
| %c | %c | %c |", arr[1][0], arr[1][1], arr[1][2]); printf("
+---+---+---+
| %c | %c | %c |", arr[2][0], arr[2][1], arr[2][2]); printf("
+---+---+---+
"); // if (arr[0][0] == arr[0][1] && arr[0][0] == arr[0][2] && arr[0][0] == 'x') { win = 'x'; break; } else if (arr[1][0] == arr[1][1] && arr[1][0] == arr[1][2] && arr[1][0] == 'x') { win = 'x'; break; } else if (arr[2][0] == arr[2][1] && arr[2][0] == arr[2][2] && arr[2][0] == 'x') { win = 'x'; break; } else if (arr[0][0] == arr[1][0] && arr[0][0] == arr[2][0] && arr[0][0] == 'x') { win = 'x'; break; } else if (arr[0][1] == arr[1][1] && arr[0][1] == arr[2][1] && arr[0][1] == 'x') { win = 'x'; break; } else if (arr[0][2] == arr[1][2] && arr[0][2] == arr[2][2] && arr[0][2] == 'x') { win = 'x'; break; } else if (arr[0][0] == arr[1][1] && arr[0][0] == arr[2][2] && arr[0][0] == 'x') { win = 'x'; break; } else if (arr[0][2] == arr[1][1] && arr[0][2] == arr[2][0] && arr[0][2] == 'x') { win = 'x'; break; } else if (arr[0][0] != ' ' && arr[0][1] != ' ' && arr[0][2] != ' ' && arr[1][0] != ' ' && arr[1][1] != ' ' && arr[1][2] != ' ' && arr[2][1] != ' ' && arr[2][0] != ' ' && arr[2][2] != ' ') { win = '0'; break; } // p2 printf("P2 :"); while (1) { scanf("%d%d", &i, &j); if (i < 3 && j < 3 && arr[i][j] == ' ') { arr[i][j] = 'o'; break; } printf("
P2 :"); } printf("
+---+---+---+
| %c | %c | %c |", arr[0][0], arr[0][1], arr[0][2]); printf("
+---+---+---+
| %c | %c | %c |", arr[1][0], arr[1][1], arr[1][2]); printf("
+---+---+---+
| %c | %c | %c |", arr[2][0], arr[2][1], arr[2][2]); printf("
+---+---+---+
"); // if (arr[0][0] == arr[0][1] && arr[0][0] == arr[0][2] && arr[0][0] == 'o') { win = 'o'; break; } else if (arr[1][0] == arr[1][1] && arr[1][0] == arr[1][2] && arr[1][0] == 'o') { win = 'o'; break; } else if (arr[2][0] == arr[2][1] && arr[2][0] == arr[2][2] && arr[2][0] == 'o') { win = 'o'; break; } else if (arr[0][0] == arr[1][0] && arr[0][0] == arr[2][0] && arr[0][0] == 'o') { win = 'o'; break; } else if (arr[0][1] == arr[1][1] && arr[0][1] == arr[2][1] && arr[0][1] == '0') { win = 'o'; break; } else if (arr[0][2] == arr[1][2] && arr[0][2] == arr[2][2] && arr[0][2] == 'o') { win = 'o'; break; } else if (arr[0][0] == arr[1][1] && arr[0][0] == arr[2][2] && arr[0][0] == 'o') { win = 'o'; break; } else if (arr[0][2] == arr[1][1] && arr[0][2] == arr[2][0] && arr[0][2] == 'o') { win = 'o'; break; } else if (arr[0][0] != ' ' && arr[0][1] != ' ' && arr[0][2] != ' ' && arr[1][0] != ' ' && arr[1][1] != ' ' && arr[1][2] != ' ' && arr[2][1] != ' ' && arr[2][0] != ' ' && arr[2][2] != ' ') { win = '0'; break; } } if (win == 'o') { printf("
P2 !!!
"); } else if (win == 'x') { printf("
P1 !!!
"); } else { printf("
!!!
"); } int re = 0; printf("##########################
"); printf("###### #####
"); printf("###### 1; #####
"); printf("###### 2: #####
"); printf("###### #####
"); printf("##########################
"); printf(" :"); while (1) { scanf("%d", &re); if (re == 1 || re == 2) break; printf("
, :"); } if (re == 1) { re = Menu(); if (re == 1) { Game(); } } else if (re == 2) { PVP(); } }
이렇게 해서 우리 가 디자인 한 모든 세부 사항 이 실현 되 었 고 완전한 간단 한 게임 이 큰 성 과 를 거 두 었 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기