日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Hex棋

發布時間:2023/12/29 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 Hex棋 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Hex棋,又叫六角棋,譯作海克斯棋。據說這個游戲是約翰·納什發明的。網上并沒有太多介紹,第一次聽說是在“中國大學生計算機博弈大賽”官網上。

棋盤為11×11的六邊形小格子組成,它是一種兩人添子類游戲(跟五子棋一樣)。

它的游戲規則是:兩人輪流下子,直到有一方用棋子溝通了兩條邊(比如先手溝通上下兩邊則勝利,后手溝通左右兩邊則勝利)

這是一個先手必勝的游戲
這是一個沒有和棋的游戲(我認為這就是這個游戲的魅力所在,我們要證明的就是它到底是先手必勝還是先手必敗)
如何證明這個游戲不可能和棋呢?
這個問題等價于“給定一個下滿棋盤的Hex棋,必然能夠找到一條線溝通兩邊”
實際上,對于一個平面圖,要想隔斷兩條邊必然要連接另兩條邊。這句話就是證明。
Hex棋顯然是一個平面圖,因為它的棋盤邊沒有交叉。

如何證明這個游戲先手必勝呢?
假設這個游戲后手必勝,那么先手從第一個子就模擬后手的必勝走法,從而先手必勝。推出矛盾,所以這個游戲先手必勝。
一言以蔽之,這個游戲是一個子越多越好的游戲。如果這個游戲子多反而是一種累贅,那么先手不一定必勝。

這是一個狀態挺多的游戲,一般添子類游戲狀態都很多。
它的狀態數多達10的56次冪之多,比象棋(中象國象差不多)的10的40次冪還要多,但是感覺Hex比象棋簡單多了。

下面統計一下添子類游戲(不包括圍棋,圍棋是添子吃子類游戲,象棋是不添子吃子類游戲)的狀態數

0 0
1 0
2 13.0
3 2509.0
4 5183757.0
5 82109232401.0
6 1.2159122802580694e+16
7 1.6639278209049916e+22
8 2.0909903631443116e+29
9 2.4017537903420486e+37
10 2.5134265191388166e+46
11 2.390899903133055e+56
12 2.063808117058896e+67
13 1.6144415223776914e+79
14 1.1433467158917951e+92
15 7.324613324267597e+105
16 4.24188344332279e+120
17 2.2195633321116892e+136
18 1.0488619415965058e+153
19 4.4745506430191615e+170

python代碼如下

def c(x, y):
    ans = 1
    for i in range(1, y + 1):
        ans = ans * (x + 1 - i) / i
    return ans


for n in range(20):
    print(n,sum([c(n * n, i) * c(n * n - i, i) for i in range(n * n // 2)]))

這個游戲的棋盤其實可以變成如下這樣:

from  PIL import Image, ImageDraw

w = 30
n = 11

img = Image.new("RGBA", (w * n, w * n), "orange")
draw = ImageDraw.ImageDraw(img)
for i in range(n):
    draw.line((w / 2, w / 2 + i * w, w / 2 + (n - 1) * w, w / 2 + i * w), 'black', 3)
    draw.line((w / 2 + i * w, w / 2, w / 2 + i * w, w / 2 + (n - 1) * w), 'black', 3)
    draw.line((w / 2, w / 2 + i * w, w / 2 + i * w, w / 2), "black", 3)
    draw.line((w / 2 + (n - 1) * w, w / 2 + i * w, w / 2 + i * w, w / 2 + (n - 1) * w), "black", 3)
img.show()
img.save("haha.jpg")

總結

以上是生活随笔為你收集整理的Hex棋的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。