C 언어 는 간단 한 삼자 기 를 실현 한다

6664 단어 C 언어삼자 장기
본 논문 의 사례 는 C 언어 가 간단 한 삼자 바둑 게임 을 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
주요 사상
1.3*3 의 바둑판 만 들 기(문자 배열 사용)
2.바둑판 초기 화(빈 칸 으로 채 우기)
3.바둑판 인쇄(보 이 는 테두리 가 있 도록)
4.유저 가 떨 어 진 곳 에 x 로 표시(월 계 여부,이미 떨 어 진 곳,이 겼 는 지 확인)
5.컴퓨터 낙 자,o 로 표시(이미 낙 자 했 는 지,이 겼 는 지 확인)  주의:컴퓨터 는 유효 범위 내 에서 랜 덤 으로 떨 어 집 니 다.현재 시간 스탬프 를 사용 하여 랜 덤 피 드 즉 srand(time(0)를 설정 합 니 다.
6.세 가지 상황:게이머 가 이기 고 컴퓨터 가 이기 고 바둑 을 둔다.
코드 구현

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//   ,             3
#define MAX_ROW 3
#define MAX_COL 3
 
//             ,          ,           
 
//    
//      ,          ,         
//       ,        'x',      
char playermove(char chessboard[MAX_ROW][MAX_COL])
{
 int row = 0;
 int col = 0;
 while (1){
 printf("         :(row col)");
 scanf("%d %d", &row, &col);
 //  
 //          
 if (row < 0 || row >= MAX_ROW || col<0 || col>=MAX_COL){
 printf("      !!
"); continue; }else if (chessboard[row][col]!=' '){ printf(" !!
"); continue; }else{ chessboard[row][col] = 'x'; return chessboard[row][col]; } } } // // ( , ) // , 'o', , void computermove(char chessboard[MAX_ROW][MAX_COL]) { while (1){ int row = rand() % MAX_ROW; // 0~2 int col = rand() % MAX_COL; // 0~2 // if (chessboard[row][col] != ' '){ continue; } chessboard[row][col] = 'o'; break; } } // , // , , ( ' ') // 1, 0 char isFull(char chessboard[MAX_ROW][MAX_COL]) { for (int row = 0; row < MAX_ROW; row++){ for (int col = 0; col < MAX_COL; col++){ // if (chessboard[row][col] == ' '){ return 0; } } } // , return 1; } // //'x' //'o' //' ' //'h' char isWin(char chessboard[MAX_ROW][MAX_COL]) { // // : , for (int row = 0; row < MAX_ROW; row++){ if (chessboard[row][0]!=' ' &&(chessboard[row][0] ==chessboard[row][1]) &&(chessboard[row][0]== chessboard[row][2])){ return chessboard[row][0]; } } // for (int col = 0; col < MAX_COL; col++){ if (chessboard[0][col]!=' ' &&(chessboard[0][col] == chessboard[1][col]) &&(chessboard[0][col] == chessboard[2][col])){ return chessboard[0][col]; } } // if (chessboard[0][0] != ' ' && (chessboard[0][0] == chessboard[1][1]) && (chessboard[0][0] == chessboard[2][2])){ return chessboard[0][0]; } if (chessboard[0][2] != ' ' &&(chessboard[0][2] == chessboard[1][1]) &&(chessboard[0][2] == chessboard[2][0])){ return chessboard[0][2]; } // if (isFull(chessboard)){ return 'h'; } return ' '; } // , ' ' void init(char chessboard[MAX_ROW][MAX_COL]) { for (int row = 0; row < MAX_ROW; row++){ for (int col = 0; col < MAX_COL; col++){ chessboard[row][col] = ' '; } } } // void printchessboard(char chessboard[MAX_ROW][MAX_COL]) { printf("+---+---+---+
"); for (int row = 0; row < MAX_ROW; row++){ printf("| %c | %c | %c |
", chessboard[row][0], chessboard[row][1], chessboard[row][2]); printf("+---+---+---+
"); } } // void game() { char chessboard[MAX_ROW][MAX_COL] = {0}; init(chessboard);// char winner = ' '; while (1){ printchessboard(chessboard);// playermove(chessboard);// // , winner = isWin(chessboard); if (winner != ' '){ break; } computermove(chessboard);// winner = isWin(chessboard); if (winner != ' '){ break; } } if (winner == 'x'){ printchessboard(chessboard); printf(" !
"); }else if (winner == 'o'){ printchessboard(chessboard); printf(" !
"); }else if (winner == 'h'){ printchessboard(chessboard); printf(" ! ~
"); } } // int menue(int choice) { printf("************************
"); printf("1.
"); printf("0.
"); printf("************************
"); printf(" :"); scanf("%d", &choice); return choice; } // int main() { srand(time(0)); int choice = 0; while (1){ choice=menue(choice); if (choice == 1){ game(); }else if (choice == 0){ break; }else{ printf(" ,
"); continue; } } system("pause"); return 0; }
3.운행 결과

대개 프레임 워 크 가 이와 같 으 면 최적화 도 할 수 있다.예 를 들 어 system(cls)화면 정리 등 이다.
더 많은 재 미 있 는 클래식 게임 을 통 해 주 제 를 실현 하고 여러분 에 게 공유 합 니 다.
C++클래식 게임 모음
python 클래식 게임 모음
python 러시아 블록 게임 집합
JavaScript 클래식 게임 을 계속 합 니 다.
자바 클래식 게임 모음
javascript 고전 게임 모음
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기