用c语言编写三子棋小游戏
2017-07-30 21:40
441 查看
三子棋小游戏设计为人与电脑进行下棋的操作,相对比较简单的操作,下面为三子棋小游戏的代码。
下面为运行的界面:
本人是初学者,可能设计的过于简易,希望各位给于意见与建议。
game.h
#define _CRT_SECURE_NO_WARNINGS 1 #ifndef __GAME_H__ #define __GAME_H__ #include<stdio.h> #include<stdio.h> #include<string.h> #include<time.h> #define ROWS 3 #define COLS 3 void init_board(char board[ROWS][COLS], int row, int col); void display_board(char board[ROWS][COLS], int row, int col); void com_board(char board[ROWS][COLS], int row, int col); void player_board(char board[ROWS][COLS], int row, int col); int winner(char board[ROWS][COLS], int row, int col); int loser(char board[ROWS][COLS], int row, int col); #endif
game.c
#define _CRT_SECURE_NO_WARNINGS 1 #include"game.h" void init_board(char board[ROWS][COLS], int row, int col)//棋盘初始化 { memset(board ,' ', ROWS*COLS*sizeof(board[0][0])); } void display_board(char board[ROWS][COLS], int row, int col)//棋盘的打印展示 { int i = 0; for (i = 0; i < row; i++) { printf(" %c | %c | %c \n", board[i][0], board[i][1], board[i][2]); if (i != 2) { printf("---|---|---\n");//棋盘的设计 } } } void player_board(char board[ROWS][COLS], int row, int col)//玩家下棋 { int x = 0; int y = 0; flag1: printf("请输入坐标:"); scanf("%d%d",&x,&y); x = x - 1; y = y - 1; if ((x >= 0) && (x <= 2) && (y >= 0) && (y <= 2)) { if (board[x][y] == ' ') { board[x][y] = 'x'; } else { printf("输入错误\n"); goto flag1; } } else { goto flag1; } printf("\n"); } void comp_board(char board[ROWS][COLS], int row, int col)//电脑下 { srand((unsigned int)time(NULL)); while (1) { int x = rand() % 3; int y = rand() % 3; if (board[x][y] == ' ') { board[x][y] = 'o'; break; } } printf("\n"); } int winner (char board[ROWS][COLS], int row, int col) { int i = 0; int j = 0; for (i = 0; i < row; i++) { if (board[i][0] == board[i][1] && board[i][1] == board[i][2] && board[i][1] == 'x')//人的行判断 { return 1; } if (board[i][0] == board[i][1] && board[i][1] == board[i][2] && board[i][1] == 'o')//电脑的行判断 { return 2; } } for (j = 0; j < col; j++) { if (board[0][j] == board[1][j] && board[1][j] == board[2][j] && board[1][j] == 'x')//人的列判断 { return 1; } if (board[0][j] == board[1][j] && board[1][j] == board[2][j] && board[1][j] == 'o')//电脑的列判断 { return 2; } } if (board[0][0] == board[1][1] && board[1][1] == board[2][2] && board[1][1] == 'x')//人的斜判断 { return 1; } if (board[0][2] == board[1][1] && board[1][1] == board[2][0] && board[1][1] == 'x')//人的斜判断 { return 1; } if (board[0][0] == board[1][1] && board[1][1] == board[2][2] && board[1][1] == 'o')//电脑的斜判断 { return 2; } if (board[0][2] == board[1][1] && board[1][1] == board[2][0] && board[1][1] == 'o')//电脑的斜判断 { return 2; } int C = is_full(board, ROWS, COLS);//判断是否满了 if (C == 5) { return 3; } } int is_full(char board[ROWS][COLS], int row, int col) { int i = 0; int j = 0; for (i = 0; i < row; i++) { for (j = 0; j < col; j++) { if (board[i][j] == ' ') { return 4; } } } return 5; }
test.c
#define _CRT_SECURE_NO_WARNINGS 1 #include"game.h" void venu() { printf("*****************************\n"); printf("******1.play 0.exit**********\n"); printf("*****************************\n"); } game() { char board[ROWS][COLS]; init_board(board, ROWS, COLS);//棋盘初始化 display_board(board, ROWS, COLS);//打印棋盘 while (1) { player_board(board, ROWS, COLS);//玩家下棋 display_board(board, ROWS, COLS); if (winner(board, ROWS, COLS) == 1) { printf("你赢了\n"); break; } else if (winner(board, ROWS, COLS) == 3) { printf("平局\n"); break; } comp_board(board, ROWS, COLS);//电脑下棋 display_board(board, ROWS, COLS); if (winner(board, ROWS, COLS) == 2) { printf("电脑赢了\n"); break; } else if (winner(board, ROWS, COLS) == 3) { printf("平局\n"); break; } } } int main() { int input = 0; venu(); do { printf("请选择 :\n"); scanf("%d", &input); switch (input) { case 1: game(); break; case 0: printf("退出\n"); break; default: printf("输入错误"); break; } } while (input); return 0; }
下面为运行的界面:
本人是初学者,可能设计的过于简易,希望各位给于意见与建议。
相关文章推荐
- 【三子棋】用c语言编写一个小游戏---三子棋
- C语言编写小游戏——骑士飞行棋
- C语言编写猜数字的小游戏
- C语言_三子棋小游戏
- C语言小游戏"三子棋"
- C语言小游戏---三子棋
- c语言编写三子棋
- 以前用C语言编写的生成随机数的猜数字小游戏
- c语言:编写猜数字小游戏。
- C语言实现小游戏---三子棋
- 【C语言】用C语言实现三子棋游戏的编写
- Objective-C语言编写(OC)打僵尸小游戏源码
- C语言实现小游戏——三子棋(Three Peices Chess)
- 小游戏——三子棋(C语言实现)
- 【C语言】三子棋小游戏 5*5
- C语言编写猜字小游戏
- c语言小程序之三子棋小游戏的实现
- 小游戏三子棋的C语言代码实现
- 小项目 : C语言实现三子棋小游戏[拓展为多子棋]
- C语言编写猜数字小游戏