C语言小程序,三子棋
来源:互联网 发布:数组在内存中如何存储 编辑:程序博客网 时间:2024/06/06 09:02
#include<stdio.h>#include <math.h>void printPan(char arr[][3]){int i=0;printf(" ——————\n");printf("| %c | %c | %c |\n",arr[0][0],arr[0][1],arr[0][2]);printf(" —————\n");printf("| %c | %c | %c |\n",arr[1][0],arr[1][1],arr[1][2]);printf(" —————\n");printf("| %c | %c | %c |\n",arr[2][0],arr[2][1],arr[2][2]);printf(" ——————\n");}int userPut(char arr[][3],int x,int y){if(arr[x-1][y-1]==' '){arr[x-1][y-1]='X';return 0;}//printf("该位置已有棋子,请重新输入!\n");return 1;}void pcPut(char arr[][3]){int x=rand()%3;int y=rand()%3;while(arr[x][y]!=' '){x=rand()%3;y=rand()%3;}arr[x][y]='0';printPan(arr);}int ifVictor(char arr[][3]){int i=0,j=0;for(i=0;i<3;i++){if((arr[i][0]=='X')){if(((arr[i][0]==arr[i][1])&&(arr[i][0]==arr[i][2]))){ //行相等 printf("恭喜您胜利了!\n");return 1; }}if(arr[0][i]=='X'){if((arr[0][i]==arr[1][i])&&(arr[0][i]==arr[2][i])){//列相等 printf("恭喜您胜利了!\n");return 1; }}if(arr[i][0]=='0'){if((arr[i][0]==arr[i][1])&&(arr[i][0]==arr[i][2])){//行相等 printf("很遗憾,你输了!\n");return -1; }}if(arr[0][i]=='0'){if((arr[0][i]==arr[1][i])&&(arr[0][i]==arr[2][i])){//列相等 printf("很遗憾,你输了!\n");return -1; }}}if((arr[0][0]=='X'||arr[0][0]=='0')&&((arr[0][0]==arr[1][1])&&(arr[0][0]==arr[2][2]))){if(arr[0][0]=='X'){printf("恭喜您胜利了!\n");return 1;}if(arr[0][0]=='0'){printf("很遗憾,你输了!\n");return -1; }}if((arr[0][2]=='X'||arr[0][2]=='0')&&((arr[0][2]==arr[1][1])&&(arr[0][2]==arr[2][0]))){if(arr[0][2]=='X'){printf("恭喜您胜利了!\n");return 1;}if(arr[0][2]=='0'){printf("很遗憾,你输了!\n");return -1; }}return 0; }int is_kon(char arr[][3]){int i=0,j=0,n=0;for(i=0;i<3;i++){for(j=0;j<3;j++){if(arr[i][j]==' '){return 0;}}}return 1;}void clr_arr(char arr[][3]){int i=0,j=0;for(i=0;i<3;i++){for(j=0;j<3;j++){arr[i][j]=' ';}}}int main(){char arr[3][3]={' ',' ',' ',' ',' ',' ',' ',' ',' '};int x=0,y=0;system("color fd"); printf("三子棋游戏\n游戏说明:连续三个一样的即胜利!输入坐标,坐标用空格隔开,然后回车;例如: 2 2\n按回车开始游戏\n");getchar();while(1){clr_arr(arr);while(1){system("cls");printPan(arr);printf("请输入位置:"); scanf("%d %d",&x,&y);if(userPut(arr,x,y)){continue;}if(ifVictor(arr)!=0){system("pause"); break;}if(is_kon(arr)==1){printf("平局!\n"); system("pause"); break;}pcPut(arr);if(ifVictor(arr)!=0){system("pause"); break;}}printf("还要继续吗?(按回车继续,'#'结束)\n");fflush(stdin);if(getchar()=='#'){break;} }printf("游戏结束!\n");system("pause"); return 0;}
阅读全文
0 0
- C语言小程序,三子棋
- C语言小程序
- C语言小程序
- C语言小程序
- c 语言小程序
- C语言小程序
- C语言小程序
- c语言小程序
- C语言小程序
- c语言小程序
- C语言小程序
- c语言小程序
- 【三子棋】C语言小程序三子棋
- c语言小程序之三子棋
- c 语言小的程序
- c语言小程序,请教!!???
- C语言经典小程序
- c语言小程序练习
- Problem6:ZigZag Conversion
- 左侧菜单切换后小图标跟随变化成选中的图标
- Python实现拉格朗日插值
- openlayers4 View fit:地图缩放问题
- 手把手带你实现Spring、Spring MVC与Mybatis整合工程的搭建
- C语言小程序,三子棋
- 揭开神秘面纱——深入浅出ThreadLocal
- LinearLayout界面放置过多控件,导致下方控件不可见的解决方法:
- 三层构架
- Git提交本地项目到GitHub上
- Koa 、Koa-router 学习整理
- Android系统源码研究
- Kafka Java Consumer实现(一)
- Linux vmstat命令实战详解