當前位置:編程學習大全網 - 編程語言 - 簡單的編程演示

簡單的編程演示

# include & ltiostream & gt

# include & ltiomanip & gt

使用?命名空間?std

const?int?x?=?21;?//棋盤行數

const?int?y?=?21;?//棋盤列數

夏爾?p[X][Y];//定義棋盤

int?m = 0;//定義壹個臨時點,保存輸入坐標。

int?n = 0;

作廢?Display()//輸出棋盤

{

for(int?I = 0;?我& ltx;?i++)

cout & lt& ltsetw(3)& lt;& ltsetfill('?')& lt& lt我;

cout & lt& ltendl

for(int?I = 1;?我& lty;?i++)

{

cout & lt& ltsetw(3)& lt;& ltsetfill('?')& lt& lt我;

for(int?j = 1;j & ltx;j++)

cout & lt& ltsetw(3)& lt;& ltsetfill('?')& lt& ltp[I][j];

cout & lt& ltendl

}

}

作廢?Black()//黑棋移動。

{

cout & lt& lt"請輸入黑色的放置位置:\n "

& lt& lt”請輸入行數:“;

CIN & gt;& gtm;

cout & lt& lt請輸入列數:“;

CIN & gt;& gtn;

如果(m & lt= 0 | | m & gt= X | | n & gt= Y | | n & lt=0)

{

cout & lt& lt“超出棋盤範圍,請重新輸入正確坐標!\ n ";

黑色();

}

不然呢?if((p[m][n]= = 1)| | p[m][n]= = 2)

{

cout & lt& lt“此處有棋子,請重新選擇移動點!\ n ";

黑色();

}

其他

p[m][n]= 1;?//黑邊用1表示。

系統(“cls”);

顯示();

}

作廢?Red()//紅方移動。

{

cout & lt& lt"請用紅色輸入位置:\n "

& lt& lt”請輸入行數:“;

CIN & gt;& gtm;

cout & lt& lt請輸入列數:“;

CIN & gt;& gtn;

如果(m & gt= X | | m & lt= 0 | | n & lt= 0 | | n & gt=Y)

{

cout & lt& lt“超出棋盤範圍,請重新輸入正確坐標!\ n ";

紅色();

}

不然呢?if((p[m][n]= = 1)| | p[m][n]= = 2)

{

cout & lt& lt“此處有棋子,請重新選擇移動點!\ n ";

紅色();

}

其他

p[m][n]= 2;?//紅色方塊用2表示。

系統(“cls”);

顯示();

}

int?evaluate()//只需要判斷以落點為中心的九點“m”是否連續。

{

int?k?=?0,r?=?0;

/*對角線判斷*/

for(k = 3;k & ltx-2;K++)//兩個,其中p[k][r]!='-'是消除漏洞的情況。

{

for(r = 3;r & lty-2;r++)

{

if(p[k][r]!= '-' & amp;& ampp[k-2][r-2]= p[k][r]& amp;& ampp[k-1][r-1]= p[k][r]& amp;& ampp[k+1][r+1]= p[k][r]& amp;& ampp[k+2][r+2]==p[k][r])

回歸?1;

不然呢?if(p[k][r]!= '-' & amp;& ampp[k+2][r-2]= p[k][r]& amp;& ampp[k+1][r-1]= p[k][r]& amp;& ampp[k-1][r+1]= p[k][r]& amp;& ampp[k-2][r+2]==p[k][r])

回歸?1;

}

}

/*水平線判斷*/

for(k = 1;k & ltx;k++)//p[k][r]!='-'是消除漏洞的情況。

for(r = 3;r & lty-2;r++)

if(p[k][r]!= '-' & amp;& ampp[k][r-2]= = p[k][r]& amp;& ampp[k][r-1]= = p[k][r]& amp;& ampp[k][r+1]= = p[k][r]& amp;& ampp[k][r+2]==p[k][r])

回歸?1;

/*垂直線判斷*/

for(k = 3;k & ltx-2;k++)//p[k][r]!='-'是消除漏洞的情況。

for(r = 1;r & lty;r++)

if(p[k][r]!= '-' & amp;& ampp[k-2][r]= = p[k][r]& amp;& ampp[k-1][r]= = p[k][r]& amp;& ampp[k+1][r]= = p[k][r]& amp;& ampp[k+2][r]==p[k][r])

回歸?1;

回歸?0;

}

int?主()

{

memset(p,'-',441);//初始化為“-”

cout & lt& lt"歡迎來到簡單的雙人五子棋遊戲\n "

& lt& lt“五子棋的棋分如下:\ n”;

顯示();

while(1)

{

紅色();

if(evalue())

{

cout & lt& lt“紅色勝利了!\ n ";

打破;

}

黑色();

if(evalue())

{

cout & lt& lt“黑棋贏了!\ n ";

打破;

}

}

回歸?0;

每個人都玩五子棋

  • 上一篇:十萬火急!!求論文思路,題目是”二次剩余的判定和解二次同余式方程“,求高手指點!!謝謝!!
  • 下一篇:浙江WEDM編程軟件定制
  • copyright 2024編程學習大全網