简单的5*5,五子棋小游戏
2015-11-25 22:06
363 查看
使用C语言简单的实现棋盘为5*5的五子棋小游戏,以下为源代码:
#include <stdio.h> #include <stdlib.h> //初始化一个数组 void Init(char arr[5][5]) //arr数组大小可以改变棋盘大小 { int i = 0, j = 0; for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { arr[i][j] = ' '; } } } //打印棋盘 void Print_Cheseboard(char arr[][5]) { int i = 0; for (i = 0; i < 5; i++) { printf("| %c | %c | %c | %c | %c |\n", arr[i][0], arr[i][1], arr[i][2], arr[i][3], arr[i][4]); if (i != 4) { printf("|---|---|---|---|---|\n"); } } } //玩家下棋 void Player_Move(char arr[][5]) { int x = 0; int y = 0; printf("请输入坐标>>> \n"); scanf("%d%d", &x, &y); x -= 1; y -= 1; if (arr[x][y] == ' ') { arr[x][y] = 'X'; } else { printf("输入有误,请重新输入:\n"); Player_Move(arr); } } //电脑下棋 void Computer_Move(char arr[][5]) { int i = 0, j = 0; for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { if (arr[i][j] == ' ') break; } if (arr[i][j] == ' ') break; } if (i*j == 25) exit(0); else arr[i][j] = '0'; } //战况判断 char Check(char arr[][5]) { int i = 0; for (i = 0; i < 5; i++) { if (arr[i][0] == arr[i][1] && arr[i][1] == arr[i][2] && arr[i][2] == arr[i][3] && arr[i][3] == arr[i][4]) { if (arr[i][0] != ' ') return arr[i][0]; } } for (i = 0; i < 5; i++) { if (arr[0][i] == arr[1][i] && arr[1][i] == arr[2][i] && arr[2][i] == arr[3][i] && arr[3][i] == arr[4][i]) { if (arr[0][i] != ' ') return arr[0][i]; } } if (arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2] && arr[2][2] == arr[3][3] && arr[3][3] == arr[4][4]) { if (arr[0][0] != ' ') return arr[0][0]; } if (arr[0][4] == arr[1][3] && arr[1][3] == arr[2][2] && arr[2][2] == arr[3][1] && arr[3][1] == arr[4][0]) { if (arr[0][4] != ' ') return arr[0][4]; } return ' '; } //主函数 int main() { char done=' '; char arr[5][5]; Init(arr); do { Print_Cheseboard(arr); Player_Move(arr); done = Check(arr); if (done != ' ') { break; } Computer_Move(arr); done = Check(arr); } while (done == ' '); if (done == 'X') { printf("玩家胜!!!\n"); } else { printf("电脑胜!!!\n"); } Print_Cheseboard(arr); system("pause"); return 0; }
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- C#中循环语句:while、for、foreach的使用
- Lua和C语言的交互详解
- Lua中数字for循环实例
- Sql存储过程游标循环的用法及sql如何使用cursor写一个简单的循环
- Shell中的for和while循环详细总结
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- 探讨C语言的那些小秘密之断言
- C语言实现BMP转换JPG的方法