五子棋總結

                              五子棋總結

 

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

現在就先做個小總結

簡單功能的介紹:

1.可以分爲  人人對戰和人機對弈;

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

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

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

 

棋局的初始界面:

 

 

 

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

 

 

 

 

 

遇到的問題:

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

 

2.      保存的過程就用到了文件流了,需將內存上的數據保存到硬盤上去。這裏主要搞清楚保存的數據什麼,要保證怎麼才能將棋局重現。我在打開的時候就犯了嚴重的錯誤,保存好了硬是打不開。後來經老師提醒,才知道是 將保存的數據讀取了,但是沒有利用,也就是我讀取了但又把它丟了,在後面重現的過程中沒有使用那些保存起來的數據。

 

 

3.      悔棋的過程,其實就是要找到最後下棋的位置。因爲我是用隊列來存放已下 的棋子,所以我們只要找到最後入隊列的棋子,將它從隊列中移除就基本差不多了。這裏稍微區分一下人人 和人機,因爲人機中,每次悔棋是同時悔兩個的。

 

4.      最讓我傷的是添加圖片了,因爲確實是自己完全不知道用,也不知道該怎麼用纔好。添加棋盤的圖片還好點,一到,添加棋子的圖片我就懵了,因爲根本就不知道怎麼將棋盤和棋子對上號來。後來實在不行,直接將它們的大小來計算,一步步的調試。。。。。

 

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