c语言五子棋坐标覆盖,跪求C语言五子棋悔棋部分实现
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
//將整個棋盤算出并儲存到緩沖器,然后調用Display函數顯示出來
{
int i,j;//循環變量
wl=0;
wp=0;
for(j=0;j<=MAXIMUS;j++)//寫入出交點左上角的字符,因為需要打印棋盤右下角,所以很以橫縱各多一次循環
{
for(i=0;i<=MAXIMUS;i++)
{
write(getCurse(i,j));//寫入左上角字符
if(j==0||j==MAXIMUS)//如果是棋上下盤邊緣則沒有連接的豎線,用空格填充位置
{
if(i!=MAXIMUS)
write(" ");
}
else//如果在棋盤中間則用豎線承接上下
{
if(i==0||i==MAXIMUS-1)//左右邊緣的豎線更粗
write("┃");
else if(i!=MAXIMUS)//中間的豎線
write("│");
}
}
if(j==MAXIMUS)//如果是最后一次循環,則只需要處理邊側字符,交點要少一排
{
break;
}
ln();//提行開始打印交點內容
write(" ");//用空位補齊位置
for(i=0;i
{
write(getStyle(i,j));//寫入交點字符
if(i!=MAXIMUS-1)//如果不在最右側則補充一個橫線承接左右
{
if(j==0||j==MAXIMUS-1)
{
write("━");//上下邊緣的橫線更粗
}
else
{
write("—");//中間的橫線
}
}
}
ln();//寫完一行后提行
}
Display();//將緩沖器內容輸出到屏幕
}
int Put(){//在當前光標位置走子,如果非空,則返回0表示失敗
if(p[Cx][Cy]==0)
{
p[Cx][Cy]=Now;//改變該位置數據
return 1;//返回1表示成功
}
else
{
return 0;
}
}
int Check()//勝負檢查,即判斷當前走子位置有沒有造成五連珠的情況
{
int w=1,x=1,y=1,z=1,i;//累計橫豎正斜反邪四個方向的連續相同棋子數目
for(i=1;i<5;i++)if(Cy+i
for(i=1;i<5;i++)if(Cy-i>0&&p[Cx][Cy-i]==Now)w++;else break;//向上檢查
if(w>=5)return Now;//若果達到5個則判斷當前走子玩家為贏家
for(i=1;i<5;i++)if(Cx+i
for(i=1;i<5;i++)if(Cx-i>0&&p[Cx-i][Cy]==Now)x++;else break;//向左檢查
if(x>=5)return Now;//若果達到5個則判斷當前走子玩家為贏家
for(i=1;i<5;i++)if(Cx+i
for(i=1;i<5;i++)if(Cx-i>0&&Cy-i>0&&p[Cx-i][Cy-i]==Now)y++;else break;//向左上檢查
if(y>=5)return Now;//若果達到5個則判斷當前走子玩家為贏家
for(i=1;i<5;i++)if(Cx+i0&&p[Cx+i][Cy-i]==Now)z++;else break;//向右上檢查
for(i=1;i<5;i++)if(Cx-i>0&&Cy+i=5)return Now;//若果達到5個則判斷當前走子玩家為贏家
return 0;//若沒有檢查到五連珠,則返回0表示還沒有玩家達成勝利
}
int RunGame()//進行整個對局,返回贏家信息(雖然有用上)
{
int input;//輸入變量
int victor;//贏家信息
Initialize();//初始化對局
while(1){//開始無限回合的死循環,直到出現勝利跳出
Print();//打印棋盤
input=getch();//等待鍵盤按下一個字符
if(input==27)//如果是ESC則退出程序
{
e
總結
以上是生活随笔為你收集整理的c语言五子棋坐标覆盖,跪求C语言五子棋悔棋部分实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux notepad 安装教程,U
- 下一篇: c语言总是说有一个错误,我的电脑上的c语