三子连珠游戏
来源:互联网 发布:易语言外网聊天室源码 编辑:程序博客网 时间:2024/04/30 00:12
玩家通过键盘输入要落子的地点,电脑随机产生一个没有棋子的棋盘坐标并落子,如果有一方可以做到三个子连着或对角线连着,则此方赢;如果双方直到棋盘下满都没有任一方均做到,则为平局。
#include <stdio.h>#include <time.h>#include <stdlib.h>#define LINE 3#define LIST 3void print(char arr[LINE][LIST]);void player(char arr[LINE][LIST]);int computer(char arr[LINE][LIST]);char check(char arr[LINE][LIST]);void init(char arr[LINE][LIST]);int main(){char arr[LINE][LIST];char ch;init(arr);print(arr);do{player(arr);ch = check(arr);if (ch != ' '){break;}int inter = computer(arr);if (inter == 0){printf("平局!\n");system("pause");return 0;}print(arr);ch = check(arr);} while (ch==' ');print(arr);if (ch == '*'){printf("玩家赢!\n");system("pause");return 0;}else if (ch == 'o'){printf("电脑赢!\n");system("pause");return 0;}else{printf("平局!\n");}system("pause");return 0;}void player(char arr[LINE][LIST]) /*玩家输入*/{int x = 0, y = 0;printf("请输入您要落子的地点(x,y):> ");scanf_s("%d%d", &x, &y);if ((x <= 0 || x > 3) || (y <= 0 || y > 3)||arr[x-1][y-1] != ' '){printf("请输入正确的地点!\n");player(arr);}arr[x - 1][y - 1] = '*';}int computer(char arr[LINE][LIST]) /*电脑输入*/{int x = 0, y = 0, i = 0, j = 0;for (i = 0; i < LINE; i++){for (j = 0; j < LIST; j++){if (arr[i][j] == ' '){goto flag;}}}return 0;flag:srand((unsigned int)time(NULL));x = rand() % 3;y = rand() % 3; /*产生0~2之间的随机数*/if (arr[x][y] != ' '){goto flag;}arr[x][y] = 'o';return 1;}char check(char arr[LINE][LIST]) /*检查函数*/{for (int i = 0; i < LINE; i++) /*行赢*/{if (arr[i][0] == arr[i][1] && arr[i][0] == arr[i][2])return arr[i][1];}for (int j = 0; j < LIST; j++) /*列赢*/{if (arr[0][j] == arr[1][j] && arr[0][j] == arr[2][j])return arr[0][j];}if (arr[0][0] == arr[1][1] && arr[0][0] == arr[2][2]) /*斜赢*/return arr[0][0];if (arr[0][2] == arr[1][1] && arr[0][2] == arr[2][0])return arr[0][2];return ' ';}void print(char arr[LINE][LIST])/*输出棋盘*/{for (int i = 0; i < LINE; i++){printf(" %c | %c | %c \n", arr[i][0], arr[i][1], arr[i][2]);printf("---|---|---\n");}}void init(char arr[LINE][LIST]) /*初始化*/{for (int i = 0; i < LINE; i++){for (int j = 0; j < LIST; j++){arr[i][j] = ' ';}}}
0 0
- 三子连珠游戏
- [游戏]五子连珠
- unity3d五子连珠游戏
- 游戏更新-五子连珠-Android
- C语言 windows程序设计 五子连珠游戏 未优化
- Android-五子连珠(三)-自定义的view
- 五子连珠
- Android-五子连珠
- Android五子连珠
- 用Java写的简单五子棋游戏(原创五子连珠算法)
- [从零开始unity3D]“五子连珠”游戏实现,网格数组的创建(1)
- Cocos2d-x 小试牛刀五子连珠游戏
- 五子连珠(vc2005实现)
- 我的五子连珠-android
- Android-五子连珠(一)-效果图
- Android-五子连珠(五)-配置文件
- 二维数组练习原创五子连珠
- 五子课堂---第一课(连珠基础一)
- 求二进制数中1的个数
- 制作日历
- 学生成绩管理系统
- 括号匹配问题
- 折半查找------在一个升序的有序数组中查找某个具体的数字
- 三子连珠游戏
- 全局变量 静态变量 局部变量分析
- 单链表的各种操作
- 替换字符串中的空格
- 一组数中,只有两个数只出现了奇数次,其他所有数都是成对出现的,请找出那两个数
- 冒泡排序函数,可以给任意类型的数据排序,比如整形数组,字符数组,字符串数组等
- 快速排序函数的比较函数
- 网卡驱动程序设计---网络子系统深入分析以及DM9000网卡驱动实现
- 二叉树 的先序 中序、后序遍历、层次遍历以及树状打印等操作