#include<stdio.h> #include<stdlib.h> int main() { void empty(char arr[][3]); void print(char arr[][3]); void player(char[][3]); void conplay(char[][3]); char check(char arr[][3]); char arr[3][3]; char key; printf("游戏开始"); printf("\n"); empty(arr); print(arr); do { player(arr); key=check(arr); if(key!=' ') break; conplay(arr); key=check(arr); print(arr); }while(key==' '); if(key=='X') { print(arr); printf("玩家胜出\n"); } else { print(arr); printf("电脑胜出\n"); } return 0; } void empty(char arr[][3]) { int i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) arr[i][j]=' '; } void print(char arr[][3]) { int i; for(i=0;i<3;i++) { printf(" %c | %c | %c ",arr[i][0],arr[i][1],arr[i][2]); printf("\n"); if(i!=2) printf("---|---|---"); printf("\n"); } } void player(char arr[][3]) { int i,j; printf("请输入所要下的位置:"); scanf("%d%d",&i,&j); if(i>3||j>3) { printf("输入错误,再重新输入\n"); player(arr); } if(arr[i-1][j-1]!=' ') { printf("此位置已被填充,请重新输入"); player(arr); } else arr[i-1][j-1]='X'; } void conplay(char arr[][3]) { int i,j; for(i=0;i<3;i++) { for(j=0;j<3;j++) { if(arr[i][j]==' ') arr[i][j]='O'; else continue; return 0; } } } char check(char arr[][3]) { int i; for(i=0;i<3;i++) { if(arr[i][0]==arr[i][1]&&arr[i][0]==arr[i][2]) return arr[i][1]; else if(arr[1][i]==arr[2][i]&&arr[1][i]==arr[0][i]) return arr[1][i]; else if(arr[0][0]==arr[1][1]&&arr[1][1]==arr[2][2]) return (arr[0][0]); else if(arr[2][0]==arr[1][1]&&arr[1][1]==arr[0][2]) return (arr[2][0]); } return ' '; }
函数封装(数组的使用,通过棋盘游戏)
原创
©著作权归作者所有:来自51CTO博客作者小止1995的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Java 中数组的使用(一维数组和二维数组)
本文详细的介绍了,在Java 中数组的使用,并对其内存存在形式进行了详细的分析。
数组 一维数组 二维数组 java基础 -
好玩的棋盘游戏
好玩的棋盘游戏
棋盘游戏 -
hdu 1281 棋盘游戏
将行和列的标号组成X和Y集合,然后如果x,y坐标可以放车,就在x和y点之间连一条
i++ #include ios -
bzoj 1457 棋盘游戏
SG函数
数据 #include sg函数 -
HDOJ 1281 棋盘游戏
拆点二分图匹配 棋盘游戏 Time Limit: 2000/1000 MS (Java/Others) Me
sed #include i++ 数据 java