五子棋總結

2021-08-25 20:20:24 字數 1562 閱讀 2800

五子棋總結

之前做的五子棋中,棋盤是畫的二維**,棋子是用filloval畫的填充圓。現在是在原來的基礎上,稍微做了下修改。不過,功能還是很弱,還需繼續完善!

現在就先做個小總結。

簡單功能的介紹:

1.可以分為

人人對戰和人機對弈;

2.當覺得自己下的位置不是很理想時,可以悔棋,直到棋盤上沒有棋子為止。

3.基於上面的悔棋,當下的棋子有很多時,這時若覺得整局已經不想下下去了的時候,就可以重來一局。

4.在下棋的過程中,如果因為其他的事,需要暫停時,我們就可以將它先儲存起來,下次再開啟繼續未完的棋局。

棋局的初始介面:

當某方贏了,棋局結束的介面:

遇到的問題:

1.

之前未加時,在整個過程中,對於人人還好點,來了個人機就搞的我很悽慘,主要是糾結機器下棋位置的演算法。首先要提供當前棋局的局勢,也就是告訴機器現在哪些位置上可以下棋,當然這樣還不夠,還需讓機器做出判斷,哪個位置是比較理想的。這裡,老師建議我們使用權值,其實我也不是很懂。所以,我的演算法也很糾結,也就是說,這個機械人的智商還不高。還需繼續努力完善。

2.

儲存的過程就用到了檔案流了,需將記憶體上的資料儲存到硬碟上去。這裡主要搞清楚儲存的資料什麼,要保證怎麼才能將棋局重現。我在開啟的時候就犯了嚴重的錯誤,儲存好了硬是打不開。後來經老師提醒,才知道是

將儲存的資料讀取了,但是沒有利用,也就是我讀取了但又把它丟了,在後面重現的過程中沒有使用那些儲存起來的資料。

3.

悔棋的過程,其實就是要找到最後下棋的位置。因為我是用佇列來存放已下

的棋子,所以我們只要找到最後入佇列的棋子,將它從佇列中移除就基本差不多了。這裡稍微區分一下人人

和人機,因為人機中,每次悔棋是同時悔兩個的。

4.

最讓我傷的是新增了,因為確實是自己完全不知道用,也不知道該怎麼用才好。新增棋盤的還好點,一到,新增棋子的我就懵了,因為根本就不知道怎麼將棋盤和棋子對上號來。後來實在不行,直接將它們的大小來計算,一步步的除錯。。。。。

哎。。。。求那位高手指點指點啊!!!

五子棋專案結束總結 五子棋活動總結

五子棋活動總結 篇一 五子棋興趣小組活動總結 五子棋興趣小組活動總結 在這個學期裡,我們五子棋興趣小組的活動提高了學 生活動興趣,增長學生棋藝水平,陶冶學生的性情。現將本 小組的活動情況總結如下 一 基本情況 參加本學期五子棋興趣小組活動的同學分別來自四年 級一 二 三班,他們都自覺按照老師的要求,...

下五子棋的bot 五子棋演算法

include include include include include include jsoncpp json.h c 編譯時預設包含此庫 define n 7 每個節點的分支數 以下為各棋型的識別碼 權重 define win 1 4000 define lose 2 4000 defi...

窮舉五子棋

本想窮舉五子棋必勝點,可惜呀,這貨窮舉太不現實了,寫出來了,根本沒辦法執行出來結果 include include include define rl 17 char s 14 int five rl rl void init void void print void int cs int i,in...