欢迎下载
欢迎下载 PAGE #
十五、井字棋
【问题描述】
设计一个井字棋的游戏程序
【基本要求】
游戏规则是:从一个空的棋盘开始,人为 x一方,计算机为0—方,人机双方轮 流放置棋子,人下的时候,字符x将被放入棋盘中指定的位置,轮到计算机下时, 程序将扫描棋盘,并将字符o放入扫描到的第一个空格,某一方有3枚棋子占据 了一横行、一竖行或一对角线则获胜,若整个棋盘被占满还没有一方获胜则为和 局。
截图:
:叮井宇棋?Iu L回
1 -玩家先手
电脑先手
帮助
退出
谙输入:
代码:
〃@author GXU-pe ngche ng
#in clude
#in clude
#in clude
void Help();〃 帮助
int Play(char player,int choice);// 对弈
void Init();〃初始化棋盘
void Display。;// 打印棋盘
void Black(int choice);// 黑棋
void White(int choice);// 白棋
void Block(int choice);// 添加选择框
void Clear(int choice);//清空之前的选择框
int Judge(int choice,char symbol);//判断输赢返回值0为无结果,1为获胜,2为平局
int Funcx(int choice);//将标号转换为行号
int Funcy(int choice);//将标号转换为列号
void End(char symbol);// 结束
int Found();〃返回第一个没有棋子的位置的编号
char a[31][64];〃用数组存放棋盘和棋子,a[行][列]
int b=0;〃棋子个数
int mai n(){
char player;
int choice;
system("title井字棋");//设置标题
system("mode con cols=64 lines=35");〃 设置窗口大小
system("color 70");// 设置颜色
while(1){
printf("\n\n\n\n\n\n\t\t\t井\t 字\t 棋");
printf("\n\n\n\n\n\n\n\n\t\t\t1.玩家先手 \n\n\t\t\t2. 电脑先手 \n\n\t\t\t3.
帮 助 \n\n\t\t\t4. 退 出 \n\n\n\n\n\t\t请输入:");
player=getch();
if(player=='1'){
In it();
Block(5);
choice=5;
Play(player,choice);
}else if(player=='2'){
In it();
Play(player,choice);
}else if(player=='3'){
Help();
getch();
system("cls");
con ti nue;
}else if(player=='4'){
return 0;
}else{
prin tf("\n\n\t\t输入错误请重新输入!”);
Sleep(1000);
system("cls");
con ti nue;
}
}
return 0;
void Help(){
system("cls");
prin tf("\n\n\n\n\n\n\n\n\n\t\t\t帮助 \n\n\n");
printf("\t'W 上移,'ST移,'A'左移,'D右移 \n\n");
printf("\t\t游戏中按 4退出");
printf("\n\n\n\n\t\t按任意键退出”);
} int Play(char player,int choice){〃 对弈
char get;
char symbol;
int c=0;//Judge得出的结果
while(1){
system("cls");//每次循环清屏一次
Display();
if(player=='1'){// 玩家下棋
while(1){//确定要下的位置
if((get=getch())!=' '){
if(get=='4'){
system("cls");
return 0;
}else if( (get=='w'||get==W) &&choice-3>=1){ Clear(choice);
choice =choice-3;
}else if((get=='s'||get=='S') &&choice+3<=9){
Clear(choice);
choice = choice+3;
}else if((g