十五、井字棋【问题描述】设计一个井字棋的游戏程序【基本要求】游戏规则是:从一个空的棋盘开始,人为x一方,计算机为o一方,人机双方轮流放置棋子,人下的时候,字符x将被放入棋盘中指定的位置,轮到计算机下时,程序将扫描棋盘,并将字符o放入扫描到的第一个空格,某一方有3枚棋子占据了一横行、一竖行或一对角线则获胜,若整个棋盘被占满还没有一方获胜则为和局。截图:代码://***@XU-pengcheng#include<>#include<>#include<>voidHelp();//帮助intPlay(charplayer,intchoice);//对弈voidInit();//初始化棋盘voidDisplay();//打印棋盘voidBlack(intchoice);//黑棋voidWhite(intchoice);//白棋voidBlock(intchoice);//添加选择框voidClear(intchoice);//清空之前的选择框intJudge(intchoice,charsymbol);//判断输赢返回值0为无结果,1为获胜,2为平局intFuncx(intchoice);//将标号转换为行号intFuncy(intchoice);//将标号转换为列号voidEnd(charsymbol);//结束intFound();//返回第一个没有棋子的位置的编号chara[31][64];//用数组存放棋盘和棋子,a[行][列]intb=0;//棋子个数intmain(){ charplayer; intchoice; system("title井字棋");//设置标题 system("modeconcols=64lines=35");//设置窗口大小 system("color70");//设置颜色 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\\n\n\t\t\\n\n\t\t\\n\n\t\t\\n\n\n\n\n\t\t请输入:"); player=getch(); if(player=='1'){ Init(); Block(5); choice=5; Play(player,choice); }elseif(player=='2'){ Init(); Play(player,choice); }elseif(player=='3'){ Help(); getch(); system("cls"); continue; }elseif(player=='4'){ return0; }else{ printf("\n\n\t\t输入错误请重新输入!"); Sleep(1000); system("cls"); continue; } } return0;}voidHelp(){ system("cls"); printf("\n\n\n\n\n\n\n\n\n\t\t\t帮助\n\n\n"); printf("\t'W'上移,'S'下移,'A'左移,'D'右移\n\n"); printf("\t\t游戏中按'4'退出"); printf("\n\n\n\n\t\t按任意键退出");}intPlay(charplayer,intchoice){//对弈 charget; charsymbol; intc=0;//Judge得出的结果 while(1){ system("cls");//每次循环清屏一次 Display(); if(player=='1'){//玩家下棋 while(1){//确定要下的位置 if((get=getch())!=''){ if(get=='4'){ system("cls"); return0; }elseif((get=='w'||get=='W')&&choice-3>=1){ Clear(choice); choice=choice-3; }elseif((get=='s'||get=='S')&&choice+3<=9){ Clear(choice); choice=choice+3; }elseif((get=='a'||get=='A')&&(choice+2)/3==(choice+1)/3){ Clear(choice); choice-=1; }elseif((get=='d'||get=='D')&&(choice-1)/3==choice/3){ Clear(choice); choice+=1; }else{ continue; } Block(choice); system(
C语言版井字棋 来自淘豆网www.taodocs.com转载请标明出处.