❶ 將黑白兩色棋子分成三堆,每堆棋子一樣多,結果,第一堆里的黑子和第二堆里的白子一樣多,第三堆里的黑
第一堆里的黑子和第二堆里的白子一樣多,也就是說前兩堆中黑子和白子各佔一半,而第三堆里的黑子佔全部黑子的一半,黑子佔全部棋子的2分之1,白子佔全部棋子的2分之1
❷ 在一個盒子里,混裝了數量相等的圍棋白子和黑子。現在要用自動分揀系統吧白子和黑子分開。該系統設有兩個
實質上是兩個進程的同步問題,設信號量S1和S2分別表示可揀白子和黑子,不失一般性,若令先揀白子。
var S1,S2:semaphore;
S1:=1;S2:=0;
cobegin
{
process P1
begin
repeat
P(S1);
揀白子
V(S2);
until false;
end
process P2
begin
repeat
P(S2);
揀黑子
V(S1);
until false;
end
}
coend.
❸ 黑白棋的設計思路
關鍵是電腦演算法的問題,其實要實現雙人對戰是很簡單的。至於電腦下子的演算法..這個你得個專門的論文看看,要對黑白棋有很深的了解,或者直接剽竊別人的研究結果也可以,呵呵
設計思路
1.main()主函數
在主函數中,棋盤狀態用數組a[8][8],初值為0,表示空格。用圖形系統畫出棋盤,調用playtoplay()人人對弈函數開始游戲,一旦游戲結束後,關閉圖形系統,程序結束。
2.DrawQp()畫棋盤函數
背景顏色設為藍色,從坐標(100,100)開始每隔40個單位用白色畫一條水平直線,一條垂直線,構成棋盤,用循環語句實現。函數setfillstyle()可以設置填充模式和填充顏色,fillellipse(int x,int y,xradius,int yradius)以x和y為圓心,xradius和yradius為水平和垂直軸畫一填充橢圓,當xradius和yradius相等時,則畫出的是圓,用它表示棋子。
3.SetPlayColor()設置棋子的顏色
函數的參數為整型變數t,根據t的值來設計填充棋子的當前顏色,值為1代表白棋,值為2代表黑棋。
4.MoveColor()恢復原來格子的狀態
由於棋手在走棋的時候,他的棋子總是首先出現在棋盤的左上角,棋手要通過移動游標走到要落子的位置,在經過的路程上顯示當前棋子,就會覆蓋原來的棋盤狀態,所以一旦棋子走過後,就應恢復原來的狀態,是空格的依然顯示空格,是棋子的就顯示原來棋子的顏色。因為棋子移動過程並沒有改變數組元素的值,所以可以根據數組元素的值判定原來的狀態,如果值是1,就恢復白色棋子,值是2則恢復黑色棋子,否則恢復藍色空格。
5.playtoplay()人人對戰函數
這是游戲進行的函數,主要是接收棋手的按鍵消息,其處理過程如下:
按Esc鍵程序可以隨時結束。
按上下左右游標鍵,則改變棋子移動的坐標值。
按回車鍵後判斷。
6.QpChange()判斷棋盤變化
當棋手按回車鍵落子後,就要分別往8個方向判斷是否包圍住對方棋子,如果是,則改變棋盤,也就是棋盤上黑白棋子的個數要發生變化。如果所有方向都判斷過,並且沒有引起棋盤的變化,則棋盤變化標志值yes為0,返回yes,結束本函數。
7.DoScore()處理分數
根據當前數組元素的值判斷分數,也就是各方棋子的個數,如果數組元素值為1,白棋棋子數累加;如果數組元素值為2,則黑棋棋子數累加。
8.PrintScore()輸出成績
利用設置實體填充模式填充矩形條清除掉前次的成績,再利用sprintf()函數將整數轉換為字元串的形式,再利用outtextxy()函數將成績輸出。
9.playWin()輸出勝利者結果
根據分數值score1和score2的大小得出下棋的結果,輸出贏者信息。
❹ 黑白棋怎麼玩
把自己顏色的棋子放在棋盤的空格上,而當自己放下的棋子在橫、豎、斜八個方向內有一個自己的棋子,則被夾在中間的對方棋子全部翻轉會成為自己的棋子。
夾住的位置上必須全部是對手的棋子,不能有空格。並且,只有在可以翻轉棋子的地方才可以下子。一步棋可以在數個方向上翻棋,任何被夾住的棋子都必須被翻轉過來,棋手無權選擇不去翻某個棋子必須是剛下的子夾對方才能夠翻對方的子,因翻轉對方的棋子而夾住的子是不能被翻的。
翻轉棋子時,有一個棋子的翻轉動畫大概顯示1秒左右每次下子最少必須翻轉對方一個棋子,若棋局中下子都不能翻轉對方棋子,則輪空。若二個玩家都不能下子翻轉對方棋子,游戲結束。
❺ 把一副圍棋的黑白棋子混放在一個口袋裡,問一次至少取出幾只棋子才能保證有10隻棋子顏色相同
如果是18枚,最壞的結果是9枚白棋9枚黑棋,不能保證百分之百的有10枚棋子顏色相同。如果是19枚,那至少能保證有10枚棋子顏色相同。
❻ 下棋機器人怎麼區分黑白棋子顏色
看你說的是什麼機器人,一種是打造出來的機器,這個可以使用機器視覺分辨,機器視覺類似人的眼睛,可以分辨出圖像。
一種是人工智慧程序,這種程序在下棋過程中會記錄下對方,和己方下棋的位置數據或者說標記好。用以區分。