
蜘蛛紙牌java注釋_GitHub-tangguangyaoSpiderSolitaire。。
。
SpiderSolitaire
蜘蛛紙牌源碼學(xué)習(xí)+注釋
源碼分析思路:
?先,?了2個(gè)構(gòu)造函數(shù)Spider和Poker
Spider構(gòu)造函數(shù)擁有以下?法:
init:函數(shù)初始化
start:游戲開始
continuous:檢測撲克牌是否連貫
dealing:發(fā)牌
record:記錄分?jǐn)?shù)和移動(dòng)步數(shù)
folding:收牌
adjustDistance:調(diào)整每列牌的間距
undo:退?步
replay:重新開始
win:游戲勝利
這?個(gè)功能函數(shù)
Poker構(gòu)造函數(shù)擁以下?法:
init:函數(shù)初始化
render:初始化占位符,牌堆,牌的樣式和擺放位置
moveTo:移動(dòng)牌
offt:獲取牌位置
soliOfft:獲取隊(duì)列中最后?張牌位置,并設(shè)置下?張的牌的位置
disable,enable:牌上?能否移動(dòng)的開關(guān)
expo:翻拍
listener:給牌冷酷的反義詞 上?加監(jiān)聽函數(shù)
dragStart,draging,dragEnd:拖拽牌的?系列判斷功能
初始化游戲:
?先Spider初始化時(shí)創(chuàng)建52張牌,牌有3個(gè)屬性pos(放置位置),style(花?,背?,或者占位符),num(牌的點(diǎn)數(shù));
利?(),洗牌。打亂初始化有規(guī)則的cloColl蘿卜丁 ection數(shù)組;
創(chuàng)建占位符和創(chuàng)建牌堆的樣式,這?調(diào)?Poker函數(shù)設(shè)置10個(gè)占位符和5個(gè)牌堆的樣式,并且給牌堆綁定點(diǎn)擊函數(shù);
點(diǎn)擊start開始發(fā)牌;
發(fā)牌規(guī)則從第6?第5列停?發(fā)牌,從5?第5列明牌顯?,其他則為暗牌;
cloCollection為未發(fā)牌隊(duì)列,每次發(fā)牌從牌堆中的取第?個(gè)元素;
每發(fā)?張牌麻辣排骨 利?Poker按照規(guī)則這是牌的樣式和發(fā)到的位置,同時(shí)這個(gè)過程利??個(gè)動(dòng)畫效果;
在Poker發(fā)牌時(shí),對于5?第5列后明牌顯?的牌,打開開關(guān)(移除fixed),此時(shí)牌堆上?可添加事件赤血長殷 ,這?添加了moudown事件,按下
?標(biāo)時(shí)可以執(zhí)?函數(shù)dragStart拖拽;
發(fā)牌完畢延遲60毫秒,讓牌堆數(shù)組的最后?組解除鎖定,打開開關(guān)(移除fixed),此時(shí)牌堆上?可添加事win10控制面板在哪 件;
此時(shí)就可以開始點(diǎn)擊牌堆繼續(xù)發(fā)牌,移動(dòng)明牌(重新開始,后退?步等稍后考慮):
繼續(xù)發(fā)牌:
通過Spider的dealing發(fā)牌函數(shù),并且結(jié)合Poker的soliOfft給新牌設(shè)置位置;
同時(shí)發(fā)完牌后減少?個(gè)牌堆,然后解鎖下?組牌堆,此牌堆上點(diǎn)擊可觸發(fā)發(fā)牌事件;
最后將這個(gè)事件添加到歷史記錄中;
則?次發(fā)體育教師工作計(jì)劃 牌事件完成。
另外?個(gè)操作是移動(dòng)明牌:
Poker的dragStart函數(shù)?先利?Spider的continuous判斷點(diǎn)擊的牌是否連續(xù),如果連續(xù)則可以拖動(dòng);
拖動(dòng)時(shí)新建?個(gè)容器dragBox,將點(diǎn)擊牌以及所在隊(duì)列的后續(xù)牌元素放到dragBox中,將點(diǎn)擊牌及所在隊(duì)列的后續(xù)牌從openCollection移
除,暫存到?個(gè)鳥語花香 臨時(shí)數(shù)組dragCollection中;
綁定兩個(gè)事件:moumove和mouup(這?我沒有弄明?是什么意思);
并且記住點(diǎn)擊牌所在隊(duì)列的上?張牌ker,移動(dòng)后這張牌就是這組對列中的最后?張;
記錄點(diǎn)擊時(shí)點(diǎn)擊事件的?標(biāo)位置;
綁定的moumove事件利?Poker的draging函數(shù)來拖動(dòng)牌;
綁定的mouup事件利?Poker的dragEnd來判斷,能否放置牌成功,當(dāng)牌移動(dòng)到?定范圍松開?標(biāo)時(shí),會(huì)判斷這個(gè)牌是否連貫(連貫就可
以?式),成功移動(dòng)牌后,開始?次記分,記錄這次操作歷史,判斷是否需要翻牌,移除創(chuàng)建存放拖動(dòng)牌元素的容器,判斷移動(dòng)成功的這?
列是否完整可以收牌等?系列規(guī)則判斷。
另外2個(gè)操作:
重新開始其實(shí)就是重新初始化函數(shù);
后退?步undo?較?煩,也是需要各種判斷:
讀取historyQueue歷史數(shù)據(jù)數(shù)組??的內(nèi)容,如果是翻牌dealing,直接將所有已發(fā)牌隊(duì)列的最后?張牌移除,并恢復(fù)待發(fā)牌,這?就需要
重新添加?個(gè)牌堆,并且將之前的牌堆關(guān)上點(diǎn)擊事件開關(guān);
如果不是翻牌,檢測翻牌歷史,如果有,則將重新讓翻轉(zhuǎn)?背?,測收牌歷史,如果有,則將收起的牌移回原隊(duì)列,移牌歷史處理。
總結(jié):
這個(gè)源碼寫的?常清晰,看上去很好理解,源碼讀起來也不是那么吃?,值得?看。
本文發(fā)布于:2023-03-20 09:10:12,感謝您對本站的認(rèn)可!
本文鏈接:http://m.newhan.cn/zhishi/a/1679274612151482.html
版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除。
本文word下載地址:spider是什么意思.doc
本文 PDF 下載地址:spider是什么意思.pdf
| 留言與評論(共有 0 條評論) |