1樓:望天涯
圍棋可不好編,特別是附帶ai的話,演算法如果沒有借鑑,自創的話任務量很大,且不一定成功,我沒這方面實踐經驗,但對於你的思路可以給你以下建議
1,第一條,是不可行的,建議你用gdi繪圖來繪製棋盤,這樣可以判斷座標,方便落子
2,棋子同樣採用動態繪圖,填充黑白兩色,落子與清除會很簡單,只要在滑鼠點選事件中,重繪棋盤,在滑鼠對應座標位置新畫一個棋子就好
3,圍棋我沒研究過,演算法不好說,但如果只是做個雙人圍棋,不涉及人機對戰,在前兩條的基礎上可以實現你想要的原則,但涉及人機對戰,ai演算法將是最大的難題,勉強編的話,機器會蠢如豬
另外不要自慚形穢,程式設計涉及多個方面,有些人玩資料庫,有些人玩繪圖,有些人樂於深挖控制元件的內行,還有些人喜歡研究高等數學的演算法,每個方面都需要積累,特別是自己積累的類庫,這些類庫是自己長期收集或者自創的函式與類的集合,高手之所以厲害,除了自己勤奮樂於研究外,還因為日積月累和站在前人肩上
2樓:匿名使用者
你說的東西,我明白了,不是深藍一樣,搞圍棋智慧對弈軟體。只是一個用來下棋的工具,這個沒有這麼複雜了。我以前剛學flash的時候就用flash做過可以下棋的flash。
所以,首先要有信心,我來說點具體的。
用picturebox做框架,你可以給這個弄張**。落子顯示**呼叫滑鼠事件。棋子先載入好**,弄成控制元件陣列,落子就加一個黑白子**。
滑鼠點選,需要計算是否在交叉點附近,這個判斷可以單獨做一個函式返回。
一、棋譜
用一個二維陣列儲存,每次落子後就更新這個二維陣列。用1表示黑,-1表示白,0表示空。
二、判斷死活
1、一個子的死活;落子位置,周圍四個點只要有一個點為0即活。
2、如果周圍都不是0,進入遍歷,周圍四個點當中任意一個和他自身相同值的子是活即活。由於這個遍歷函式是在周圍都不是0的情況下執行,所有隻要周圍的子也同樣沒有氣,則會自動遞迴。
3、建立一個二維陣列,儲存所有點的死活狀況,用來更新棋譜。
三、判斷禁著點
1、判斷是否劫爭; 當盤面上有1個子被提,則記錄該點座標。同時記錄落子提吃座標。如果新落子在剛剛被提位置,且造成對方剛剛落子位置1子被提,則判定為劫爭禁手。如非劫爭進入下一步。
2、落子後是死棋的,首先判斷周圍對手棋子是否被吃,如果被吃,更新棋譜。若吃1子,則為劫爭記錄座標和手數。(因為劫爭記錄只在下一手有效,停一手以後還可以吃)。
若周圍對手沒有棋子能被吃,該落點即判斷為禁手。
vb程式設計設計一個圍棋棋盤
3樓:匿名使用者
先傳個可執行檔案 你看看 行的話再上**
4樓:匿名使用者
給個簡單的例子你好了,很久前寫的,方法很傻
刪掉了通訊等**
vb圍棋源** 100
5樓:
你想想,如果別人讓你給他做一下午題,就給你一點積分,而且這些積分還不夠買一張餐巾紙,沒錯,是一張餐巾紙都不夠。
你會答應麼?
VB如何連續讀取串列埠資料,vb怎樣讀取串列埠資料並進行處理?
vb6.0mscomm控制元件可以利用oncomm事件連續獲取來自外設傳送的訊號。基於 1 mscomm控制元件的rthreshold 屬性不為0和恰當的接收 2 使用電腦主機板物理com口或pci多串列埠卡上的com口com,這樣的com口是全雙工的,傳送與接收不會衝突。3 高質量的接收 和符合通...
vb如何實時讀取csv檔案,請問VB6怎麼用ado讀取csv,txt檔案
private sub command1 click on error goto eh filepath d basename example.csv adodc1.commandtype adcmdtextadodc1.connectionstring provider microsoft.jet...
(VB如何實現滑鼠模擬,怎樣用VB程式碼實現滑鼠單擊的效果
通過鍵盤輸入一個自然數,求該數的因子數 vb模擬滑鼠點選 不知道想幹什麼,滑鼠點的那個位置有什麼用啊 怎樣用vb 實現滑鼠單擊的效果 給你寫了一個示例,你自己可以看明白的 private declare sub mouse event lib user32 byval dwflags as long...