<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了C語言實現簡單五子棋遊戲的具體程式碼,供大家參考,具體內容如下
五子棋大家都玩兒過,所以規則就不介紹了
今天遇到一個學弟在實現的時候遇到一些問題,所以將實現的過程記錄下
水平有限,僅供參考,互相交流,共同進步。
#include<stdio.h> #include<windows.h> int main() { int i,j;//表示棋盤橫縱座標 /************************************************* * *繪製表格需要的字元:┌ ┬ ┐├ ┼ ┤└ ┴ ┘│─●○ *陣列的值0表示黑棋,1表示白棋,2表示該位置沒有棋 * */ int qipan[20][20]; int color=0;//0表示黑棋(圓圈),1表示白棋 int iTemp = 0,jTemp = 0,countTemp = 0; int colorFlag = 0; char op; again: for(i=0;i<20;i++) for(j=0;j<20;j++) qipan[i][j]=2; while(1) { printf("請輸入棋子位置(棋盤大小為20*20),如2,2: "); scanf("%d,%d", &i,&j); if(i<1 || i >20 || j<1 || j>20) { printf("輸入的位置超出了棋盤的範圍,請重新輸入!n"); continue; } if((2 != qipan[i-1][j-1])) { printf("提示:該位置已經有棋子了!n"); fflush(stdin); continue; } color=(color+1)%2;//獲取棋盤棋子屬性 qipan[i-1][j-1]=color;//將該位置棋子屬性給棋盤 //根據棋盤對應位置屬性,繪製最新狀態的棋盤,一行行繪製,邊緣特別處理 for(i=1;i<=20;i++) { //第一行 if(i==1) { //第一列 if(qipan[i-1][0]==1) printf("●"); if(qipan[i-1][0]==0) printf("○"); if(qipan[i-1][0]==2) printf("┌ "); //第2-19列 for(j=2;j<=19;j++) { if(qipan[i-1][j-1]==1) printf("●"); if(qipan[i-1][j-1]==0) printf("○"); if(qipan[i-1][j-1]==2) printf("┬ "); } //第20列 if(qipan[i-1][j-1]==1) printf("●"); if(qipan[i-1][j-1]==0) printf("○"); if(qipan[i-1][j-1]==2) printf("┐ "); printf("n"); } //第2-19行 if(i<=19 && i>=2) { //第一列 if(qipan[i-1][0]==1) printf("●"); if(qipan[i-1][0]==0) printf("○"); if(qipan[i-1][0]==2) printf("├ "); //第2-19列 for(j=2;j<=19;j++) { if(qipan[i-1][j-1]==1) printf("●"); if(qipan[i-1][j-1]==0) printf("○"); if(qipan[i-1][j-1]==2) printf("┼ "); } //第20列 if(qipan[i-1][j-1]==1) printf("●"); if(qipan[i-1][j-1]==0) printf("○"); if(qipan[i-1][j-1]==2) printf("┤ "); printf("n"); } //第20行 if(i==20) { if(qipan[i-1][0]==1) printf("●"); if(qipan[i-1][0]==0) printf("○"); if(qipan[i-1][0]==2) printf("└ "); for(j=2;j<=19;j++) { if(qipan[i-1][j-1]==1) printf("●"); if(qipan[i-1][j-1]==0) printf("○"); if(qipan[i-1][j-1]==2) printf("┴ "); } if(qipan[i-1][j-1]==1) printf("●"); if(qipan[i-1][j-1]==0) printf("○"); if(qipan[i-1][j-1]==2) printf("┘ "); printf("n"); } } //判斷輸贏 for(i=0;i<20;i++) { for(j=0;j<20;j++) { //count = 0; //如果檢測到該有棋子,則檢查與該棋子有關的是否可以贏 if(2 != qipan[i][j] ) { colorFlag = qipan[i][j]; countTemp = 1; iTemp = i; jTemp = j; //該棋子橫向上是否可以贏 while((++jTemp<20 )&&( 5 != countTemp )) { if(colorFlag == qipan[i][jTemp]) { countTemp++; if(5 == countTemp) { if(0 == colorFlag) { printf("黑棋贏了!n"); } else if(1 == colorFlag) { printf("白棋贏了!n"); } goto whileEnd; } } else { countTemp = 0; break; } } //縱向可以贏 iTemp = i; jTemp = j; countTemp = 1; while((++iTemp<20 )&&(5 !=countTemp)) { if(colorFlag == qipan[iTemp][j]) { countTemp++; if(5 == countTemp) { if(0 == colorFlag) { printf("黑棋贏了!n"); } else if(1 == colorFlag) { printf("白棋贏了!n"); } goto whileEnd; } } else { countTemp= 0; break; } } //斜向,從左上到右下方向檢查 iTemp = i; jTemp = j; countTemp = 1; while((++iTemp<20 )&&(++jTemp<20 )&&(5 !=countTemp)) { if(colorFlag == qipan[iTemp][jTemp]) { countTemp++; if(5 == countTemp) { if(0 == colorFlag) { printf("黑棋贏了!n"); } else if(1 == colorFlag) { printf("白棋贏了!n"); } goto whileEnd; } } else { countTemp = 0; break; } } //斜向,從右上到左下方向檢查 iTemp = i; jTemp = j; countTemp = 1; while((++iTemp>=0 )&&(--jTemp>=0)&&(5 !=countTemp)) { if(colorFlag == qipan[iTemp][jTemp]) { countTemp++; if(5 == countTemp) { if(0 == colorFlag) { printf("黑棋贏了!n"); } else if(1 == colorFlag) { printf("白棋贏了!n"); } goto whileEnd; } } else { countTemp = 0; break; } } } } } } whileEnd: printf("重新開始,還是退出?重新開始請按y/Y,退出請按任意鍵:"); fflush(stdin); op = getchar(); if(('y' == op) ||( 'Y' == op)) { system("cls"); printf("已經重新開始了,請輸入第一顆棋子的座標:nnn"); goto again; } }
效果圖:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45