简单五子棋(单机版-C)
来源:互联网 发布:淘宝商城男鞋休闲潮鞋 编辑:程序博客网 时间:2024/05/01 11:37
简单五子棋(单机版-C)
一个简单的五子棋过程。
之实现了开局和判断胜负。缺少载入棋谱,保存棋谱。
#include <stdio.h>//图形输出棋盘printGraphicBoard(int b[9][9]){int i,j;for(i=0;i<9;i++){if(i==0)printf(" ①②③④⑤⑥⑦⑧⑨\n");switch (i){case 0:printf("⒈");break;case 1:printf("⒉");break;case 2:printf("⒊");break;case 3:printf("⒋");break;case 4:printf("⒌");break;case 5:printf("⒍");break;case 6:printf("⒎");break;case 7:printf("⒏");break;case 8:printf("⒐");break;}for(j=0;j<9;j++){if(i==0 && j==0 )if(b[i][j] == -1)printf("●");else if (b[i][j]==1)printf("○");elseprintf("┌");if(i==0 && (j>=1 && j<=7))if(b[i][j] == -1)printf("●");else if (b[i][j]==1)printf("○");elseprintf("┬");if(i==0 && j==8 )if(b[i][j] == -1)printf("●");else if (b[i][j]==1)printf("○");elseprintf("┐");if(j==0 && (i>=1 && i<=7))if(b[i][j] == -1)printf("●");else if (b[i][j]==1)printf("○");elseprintf("├");if(j==8 && (i>=1 && i<=7))if(b[i][j] == -1)printf("●");else if (b[i][j]==1)printf("○");elseprintf("┤");if(i!=0 && j!=0 && i!=8 && j!=8)if(b[i][j] == -1)printf("●");else if (b[i][j]==1)printf("○");elseprintf("┼");if(i==8 && j==0 )if(b[i][j] == -1)printf("●");else if (b[i][j]==1)printf("○");elseprintf("└");if(i==8 && (j>=1 && j<=7))if(b[i][j] == -1)printf("●");else if (b[i][j]==1)printf("○");elseprintf("┴");if(i==8 && j==8 )if(b[i][j] == -1)printf("●");else if (b[i][j]==1)printf("○");elseprintf("┘");}printf("\n");}}//根据b数组判断该棋局是否已胜,如果已经胜了,返回1;否则,返回0int isWin(int b[9][9]){int i,j,k;for(i=0;i<9;i++)for(j=0;j<9;j++){for(k=1;k<=8;k++)if (b[i][j]!=0)switch (k){case 1://左边if( j-4>=0 && b[i][j]==b[i][j-1] &&b[i][j]==b[i][j-2] &&b[i][j]==b[i][j-3] &&b[i][j]==b[i][j-4] ){printf("%s\n",b[i][j]==1?"白方获胜。":"黑方获胜。");return 1;//一方获胜返回1}break;case 2://右边if( j+4<=8 &&b[i][j]==b[i][j+1] &&b[i][j]==b[i][j+2] &&b[i][j]==b[i][j+3] &&b[i][j]==b[i][j+4] ){printf("%s\n",b[i][j]==1?"白方获胜。":"黑方获胜。");return 1;//一方获胜返回1}break;case 3://上面if( i-4>=0 &&b[i][j]==b[i-1][j] &&b[i][j]==b[i-2][j] &&b[i][j]==b[i-3][j] &&b[i][j]==b[i-4][j] ){printf("%s\n",b[i][j]==1?"白方获胜。":"黑方获胜。");return 1;//一方获胜返回1}break;case 4://downif( i+4 <= 8 &&b[i][j]==b[i+1][j] &&b[i][j]==b[i+2][j] &&b[i][j]==b[i+3][j] &&b[i][j]==b[i+4][j] ){printf("%s\n",b[i][j]==1?"白方获胜。":"黑方获胜。");return 1;//一方获胜返回1}break;case 5://左上if( i-4>=0 && j-4 >= 0 &&b[i][j]==b[i-1][j-1] &&b[i][j]==b[i-2][j-2] &&b[i][j]==b[i-3][j-3] &&b[i][j]==b[i-4][j-4] ){printf("%s\n",b[i][j]==1?"白方获胜。":"黑方获胜。");return 1;//一方获胜返回1}break;case 6://左下i+,j-if( i+4<=8 && j-4>=0 &&b[i][j]==b[i+1][j-1] &&b[i][j]==b[i+2][j-2] &&b[i][j]==b[i+3][j-3] &&b[i][j]==b[i+4][j-4] ){printf("%s\n",b[i][j]==1?"白方获胜。":"黑方获胜。");return 1;//一方获胜返回1}break;case 7://右上i-,j+if( i-4>=0 && j+4<=8 &&b[i][j]==b[i-1][j+1] &&b[i][j]==b[i-2][j+2] &&b[i][j]==b[i-3][j+3] &&b[i][j]==b[i-4][j+4] ){printf("%s\n",b[i][j]==1?"白方获胜。":"黑方获胜。");return 1;//一方获胜返回1}break;case 8://右下if( i+4<=8 && j+4 <=8 &&b[i][j]==b[i+1][j+1] &&b[i][j]==b[i+2][j+2] &&b[i][j]==b[i+3][j+3] &&b[i][j]==b[i+4][j+4] ){printf("%s\n",b[i][j]==1?"白方获胜。":"黑方获胜。");return 1;//一方获胜返回1}break;}}return 0;}void main(){int board[9][9]={0};int key;int i,j,x,y;int turn = -1;//1 游戏屏幕printf("=================================================\n");printf("* 1. 开局 *\n");printf("* 2. 载入 *\n");printf("* 3. 保存 *\n");printf("* 4. 退出 *\n");printf("=================================================\n");//输入选择scanf("%d",&key);//根据选择进入不同过程switch (key){case 1://图形化输出初始的棋盘//print boardprintGraphicBoard(board);//game startwhile(!isWin(board)){if (turn == -1){printf("请输入黑方落子点行(i,j)");scanf("%d",&x);scanf("%d",&y);if(board[x-1][y-1]==0)board[x-1][y-1] = -1;//记住一个黑子else{printf("此处不许落子!\n");turn = turn * -1;}//显示黑子printGraphicBoard(board);}else{//输入白字printf("请输入白方落子点行(i,j)");scanf("%d",&x);scanf("%d",&y);if(board[x-1][y-1]==0)board[x-1][y-1] = 1;//记住一个白子else{printf("此处不许落子!\n");turn = turn * -1;}//显示printGraphicBoard(board);}turn = turn * -1;//轮流下棋}//break;case 2:case 3:case 4:default:break;}}
0 0
- 简单五子棋(单机版-C)
- 单机版五子棋(JAVA)
- 单机版五子棋
- 单机版五子棋
- 单机版五子棋
- 单机版五子棋【JAVA】
- Java单机版五子棋
- Java单机版五子棋
- 【java】单机版五子棋
- 网页版双人单机五子棋
- c语言简单实现三子棋(五子棋)
- 利用VC制作单机版五子棋游戏
- 基于jquery的五子棋单机版
- 利用VC制作单机版五子棋游戏
- Qt平台编写的五子棋单机版
- 单机版五子棋游戏项目的实现
- 简单五子棋----C语言实现
- C语言简单实现五子棋
- [收藏] 深入浅出存储性能评估方法论
- 1007 Python之List中remove,pop,del区别分析
- Matlab实现基于内容的图像检索系统
- POJ1060 数组存储多项式+多项式乘法和取余,水
- 软件的三层架构
- 简单五子棋(单机版-C)
- 使用Nginx(OpenResty)转发域名到非80端口
- C++11 线程
- 在framework当中添加一个系统自定义服务,权限的问题
- 利用Python提取心跳节律信息
- HDU 2852 KiKi's K-Number [树状数组+二分答案]【数据结构】
- 二叉树的最小深度(递归)
- javascript基础笔记之(六)js数组
- ES2106新特性