俄羅斯方塊練習要點總結

2021-05-23 11:03:42 字數 939 閱讀 6453

自定義類:

但用來作為key時:private mapmap;卻出現錯誤,無法正確索引。

如果需要自己編寫乙個類作為hashmap中的key,需要重寫函式:hashcode和equals

原來你的類是繼承object的.使用object的hashcode生成的雜湊碼.它預設是使用物件的位址計算雜湊碼的.因此.兩次new的mykey的雜湊碼是不一樣的.用string物件作為hashmap的key,則不會出現這種情況,這是因為string類過載了hashcode函式。

重寫equals函式是因為當比較兩個類時,如果這個類中沒有equals函式,則到它的上一級去找,而如果自定義類繼承自object類,則呼叫object類的equals,結果是按照這兩個物件的位址比較的,自然是不會相等的。

改寫如下:

這裡的17有人說是任意質數,37可能是雜湊係數,暫未確定,稍後有時間再細研究

。使用set儲存bicoordinate物件。當依次繪製出來時,發現物件順序不正確,如下圖

【image】

可用繼承comparable介面的方法解決。

publicinte***cecomparable

int compareto(object o): 比較當前例項物件與物件 o ,如果位於物件 o 之前,返回負值,如果兩個物件在排序中位置相同,則返回 0 ,如果位於物件 o 後面,則返回正值。

這裡方塊的排序順序為[0,0]<[1,0][0,1]<[2,0][1,1][0,2]<……,因此原理可編輯如下:

這裡有人建議使用執行緒的sleep,此方法以後再研究。由於練習難度不高,目前使用的是timer。

timer.schedule(

task,  //timertask

delay,//延遲啟動時間

cycle  //重複週期

簡單使用例項:

俄羅斯方塊總結

1,先定義乙個struct shapeshapes 該形狀的下乙個序號 shapes i next 那麼下乙個形狀就應該是 struct shape shapeid shapes shapes index next shapeid.xy i 1 這樣寫是可以的,但是如果直接寫成shapes shap...

俄羅斯方塊總結

俄羅斯方塊前後花費了較長的時間,中間由於個人原因耽擱了進度,這是個人第乙個小專案,現在總結一下 整個過程中我是自己編寫,背景和顯示使用opencv,開發平台使用vs2010,語言使用c 從一開始自己繪製背景,到最後的實現 如果不是時間太長了,會稍微有一點成就感 整個專案的思路是這樣的,先完成了需求分...

俄羅斯方塊高階 AI俄羅斯方塊

前文回顧 致青春 python實現俄羅斯方塊 人工智慧大火的今天,如果還是自己玩俄羅斯方塊未免顯得太low,為什麼不對遊戲公升級,讓機器自己去玩俄羅斯方塊呢?有了這個想法之後利用週六週日兩天的時間去蒐集了大量的資料,在電腦宕機好多次之後終於將ai俄羅斯方塊實現了。所謂讓機器自己去玩俄羅斯方塊,就是讓...