五子棋如何判斷勝負,五子棋判斷輸贏演算法問題

時間 2023-02-13 12:05:05

1樓:網友

就是橫豎斜成一排5個連續的子。

2樓:網友

一.簡明職業連珠五子棋比賽規則的解釋。

1 、五子棋是兩個人之間進行的競技活動,由於對黑方白方規則不同,黑棋必須先行。

2 、五子棋專用盤為 15×15 ,五連子的方向為橫、豎、斜。

3 、禁手是對局中被判為負的行棋手段。白棋無禁手。

4 、在棋盤上以對局雙方均不可能形成五連為和棋。

5 、在對局中,以在盤上落下的子又拿起來為拔子,判負。在對局中,一方自行終止比賽,判負。

6 、黑方在落下關鍵的第五子即形成五連的同時,又形成禁手。此時因黑方已成連五,故禁手失效,黑方勝。

7 、所謂黑方形成禁手,是指黑方一子落下同時形成兩個或兩個以上的活。

三、衝四及長連禁手。此時,白方應立即向黑方指出禁手,自然而勝。

3樓:蠟筆o_o小新

無禁手的話不管橫豎斜,只要誰先夠五個就算贏。

有禁手的話黑棋不能走禁手位,就是不能雙三,雙四和多餘五個以上的一排,白棋無規則。

五子棋判斷輸贏演算法問題 200

4樓:匿名使用者

提供一下大體思路,例如先判斷左右橫向是否達成,建立乙個計數標誌,以下的這粒棋子為中心,先向左判斷是否有同色的棋子,有就加1,沒有就結束判斷,再向右進行同樣的判斷,然後判斷計數標誌的數量,判斷斜向的棋子也同理,

5樓:網友

1,無禁手對弈中,誰執黑棋先輸,判定為執白水平高。

2,如果1成立,黑白對弈,六局內沒有分出勝負,再禁手。

想法基於:無禁手中,黑先勝率高,黑如果獲勝,是順勢,守本。換言之,如果白勝,是逆勢,計高。

6樓:匿名使用者

你在棋子下下去之後吧橫豎和斜著的都分別放乙個鍊表裡面,檢測到棋子就加入鍊表,最後檢驗鍊表裡面的元素是否大於5

7樓:小j要飛

不管是橫豎斜著的,連成5個就贏啊。

c#程式設計五子棋判斷勝負的問題!!!

8樓:網友

五年前編寫過,大概演算法是:

首先,棋盤是乙個二維陣列,當使用者在x,y座標處下了一顆棋后,就開始檢查是否有「五子連棋」的現象:

以x,y為中心,朝八個方向依次檢驗,先朝西北方向開始「突擊」,記下中心點(x,y)的棋色(棋子的顏色),然後檢查(x-1,y-1)的棋色,如果相同,急需檢查(x-2,y-2)的棋色,直到和中心點的棋色不同為止,假如檢查到(x-a,y-b)的位置,然後開始朝東南方向檢查,檢查方法一樣,但這次要有乙個計數器記錄顏色相同的棋子個數,即檢查(x+1,y+1)的棋色,棋色相同計數器加一,直到加到5或者棋色不同為止。

一共檢查4條直線上棋子的顏色,ok,有不明白pm me

用jq判斷五子棋勝負 20

五子棋j**a程式的判斷勝負的方法

9樓:網友

寫個演算法。

判斷矩陣橫豎斜。。。要顏色一樣,沒走一步都要判定。

做的更好點的話,可以連續4個就判定輸。

10樓:富貴很三良

每走一步,呼叫判斷方法。

思路為:首先你應該有乙個組的集合,就是橫、豎、斜三個方向,每5格一組,這個可以根據你的寬高計算出來。

迴圈這個集合。如果有同色連線5個,那麼為勝同時將五格中已有4個同色並且剩餘一格未操作的,放入乙個集合內,若上一步沒有結果,那麼判斷這個集合,如果有這個集合有兩條以上,並且未操作格座標不為同乙個,那麼同樣為勝。

這麼說明白不?

五子棋勝負規則

11樓:n笑靨如花

(1)無禁手房間。

無禁手房間採用最簡單古老的規則。該房間裡黑白雙方依次落子,任一方先在棋盤上形成橫向、豎向、斜向的連續的相同顏色的五個(含五個以上)棋子為勝。

這種規則非常簡單,容易理解,適合初學的業餘五子棋愛好者。但是在這種規則下黑棋勝算較大,甚至已經有人證明在黑白雙方都不出現錯誤的情況下,黑棋可以必勝。所以在這種房間裡一般要求連續玩兩盤以上,既任一方執黑、執白各一次。

(2)有禁手房間(走禁手算輸)

鑑於無禁手規則黑棋必勝,人們不斷採用一些方法限制黑棋先行的優勢,以平衡黑白雙方的形勢,於是針對黑棋的各種禁手逐漸形成。禁手簡單地說就是一手棋形成長連(連成五個以上連續相同的棋子),或兩個以上的活三,或兩個以上的四。但當禁與連五同時出現時為黑方取勝,禁手不成立。

禁手是針對黑棋而言的,白棋沒有任何禁手。例如,黑棋長連是禁手,白棋長連算贏棋。

國際比賽規則規定:對局中如黑方出現禁手,白方應立即指出禁手點,黑方即負;如白方在黑方出現禁手後,又落一步白子,黑棋禁手則不成立了。所以在「有禁手」的房間裡,如果黑方出現禁手,白方應立即按下「禁手」按鈕,程式會判黑方負;如果這時白方又在棋盤上落一子,黑棋禁手則不成立了。

為了簡化您對「禁手」按鈕的使用,也有「走禁手就輸」和「禁手不能落子」規則的房間,顧名思義,這裡不多介紹。雖然採取了禁手的限制,黑棋先行仍有優勢,所以如果您是高段位的棋手,或者想成為高手,一定要選擇網際上比賽選用的比賽標準,即三手交換、五手兩打。

(3)三手交換、五手兩打房間。

三手交換、五手兩打是在禁手規則的纂礎上進一步對黑棋先行的優勢加以限制。

在遊戲時白方如要求三手交換,可以在黑棋下盤面第3著棋后,按右上方「交換」按鈕隨即與黑棋交換。五手兩打時,黑棋連續落兩個子(必須是不同行的兩個點),白棋從這兩個子中選擇要拿走的一子,而後輪到白棋繼續走棋。

12樓:五子棋教學

五子棋規則中的索索夫規則是如何下的,為什麼要將山口規則改成索索夫規則,索索夫規則在國際和國內的情況如何。

13樓:快樂與寒暄

機@@災@乙烯烴乜野外套裝修張夏鷥乙醇酒量力而行阝B肝疫苗是不是我是的是我想到時。

關於c++五子棋判斷勝負

14樓:相思丶貓

#define black 1

#define white 2

#define n 19 //棋盤大小19*19int chess[n][n];

//現在在第i行第j列放下棋子,然後判斷。

bool check(int i, int j)for(int p = j - 1; p > 0; p--)if(n >=5) return true;

//垂直方向 **與上類似。

//左下角 --右上角 方向 **與上類似//左上角 --右下角 方向 **與上類似return false;}

15樓:網友

建議把全部**貼出來。。

c語言乙個關於判斷五子棋勝負問題,求教。。。

16樓:

本來想給你實現一下的 但是、、、陣列判斷對角的勝利太麻煩了,發現還得用到樹 唉 悲劇啊。

:如果你不嫌麻煩可以用陣列來實現這個 以數值來表示是否有棋子 0:空,1:白棋,2:黑棋。

用座標位置值相加的結果來表示勝利,sum是否等於 5||10, 祝你好運。

c語言五子棋判斷勝負模組要考慮哪些問題

17樓:鐘湃

判斷勝利的邏輯大體是:根據當前落下的棋子座標,以其為原點,左-右,上-下,左上-右下,右上-左下,四條線上統計自己的棋子連續的個數(當統計的時候遇到對手棋子,則停止統計,然後統計下乙個方向上的棋子個數),一旦滿足五個,即當前落棋者勝利,結束遊戲。感受下,歡迎追問。

五子棋勝負規則,五子棋比賽規則

信心的新手 對局開始時,先由執黑棋一方將一枚棋子落在天元點上,然後由執白棋一方在黑棋 周圍的交叉點上落子。但是,為了尊重對方和禮貌起見,持白棋的一方通常將盤面的第 二著棋佈在自己河界的一側,即直止或斜止。此後黑白雙方輪流落子,直到某一方首先 在棋盤的橫線 縱線或斜線上形成連續五子或五子以上 僅對白棋...

五子棋如何玩,怎樣玩五子棋?

五子棋的玩法是 五子棋分為白棋和黑棋,通過相互對壘取得勝利,任意方向滿五個即可勝利。如果堵住要道,就要重新選擇出路,一般敵方三個相連時,就要堵住。整個棋盤下滿時都沒有人達到五連,即為和棋也為平棋。五子棋是全國智力運動會競技專案之一,是一種兩人對弈的純策略型棋類遊戲。五子棋的棋具與圍棋通用,是一種傳統...

五子棋怎麼玩詳細,五子棋怎麼玩?

五子棋的玩法是 五子棋分為白棋和黑棋,通過相互對壘取得勝利,任意方向滿五個即可勝利。如果堵住要道,就要重新選擇出路,一般敵方三個相連時,就要堵住。整個棋盤下滿時都沒有人達到五連,即為和棋也為平棋。五子棋是全國智力運動會競技專案之一,是一種兩人對弈的純策略型棋類遊戲。五子棋的棋具與圍棋通用,是一種傳統...