黑白棋求使新狀態己方子最多的落子位置

2021-08-11 13:33:51 字數 1263 閱讀 5026



描述下面我們來編寫黑白棋的乙個比較重要的模組,對於某個棋盤狀態,我們將要下乙個子時,最樸素的考慮就是我下了這個子後棋盤上我方顏色的子盡量的多(如果大家對於黑白棋有一定研究,會發現這樣走並不優)。我們這裡要求大家程式設計實現找出可以使我方下完乙個子後,棋盤上的我方顏色的子最多的位置,如果有多個這樣的位置,請輸出行數和列數最小的(優先比較行號,如果行號相同再比較列號)。 輸入

首先讀入的是當前棋盤的狀態,共8行,每行8個數字,1代表白棋,2代表黑棋,0代表為空格(未下子)。第9行有1個數字n代表將要下子的顏色。 輸出

下子的行號和列號,中間用空格分隔開。如果無法落子,請輸出impossible

輸入樣例

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 1 2 0 0 0

0 0 0 2 1 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 1

輸出樣例

2 4#include

#include

using namespace std;

int map[8][8] = ;

//1234左下右上  5678 左上 左下 右下 右上

int a[100] = ;

int dr[8]=;

int dc[8]=;

int r , c , color,  counter = 0 , flag = 0 ;

void input() ;

int judge() ;

void output();

int main()

void input() } 

cin >> color ;

for(k = 0 ; k < 8 ; k++)  }

}}int judge ()

for(i=0;i<8;i++)

else

if(map[x][y]==color)

else

break;}}

}}if(flag > 0 )

return 0 ;

}void output()

, c[100] = ;

for(i = 1 ; i <= counter ; i++)

}for(j = 1 ; j <= counter ; j++)}}

if(min1 == 100)

else

}

黑白棋遊戲

黑白棋遊戲 time limit 10000ms memory limit 65536k total submit 9 accepted 5 case time limit 1000ms description 問題描述 黑白棋遊戲的棋盤由4 4方格陣列構成。棋盤的每一方格中放有1枚棋子,共有8枚白...

黑白棋遊戲

用c 封裝了一下,只完成了乙個雛形,有很多功能沒有新增上,但 的行數已經縮短了很多了。include include include includeusing namespace std class chess int counter 計數器,計算棋子個數 const friend void dra...

黑白棋遊戲

include include using namespace std char e 30 30 int a 30 30 int c 30 int x 30 int y 30 intf int n,int sum int pos sum 2 n int cnt 0 int flag 0 int w ...