一、團隊名稱、團隊成員介紹、任務分配
團隊名稱:Panta
團隊成員介紹
網絡1713蔡煒明【組長】 201721123076
網絡1713高楓 【組員】 201721123090
任務分配
網絡1713 蔡煒明
蜘蛛紙牌界面設計
游戲幫助欄、規則欄設計
網絡1713 高楓
主要負責蜘蛛紙牌主類設計及Git的提交
二、項目簡介
該課程設計內容主要是模擬實現蜘蛛紙牌游戲,《蜘蛛紙牌》是由Oberon Games開發的一款休閑益智類游戲,該游戲已由Microsoft於2010年發行。同時該游戲也是Windows ME及后續版本所自帶的小游戲,游戲目標是以最少的移動次數將牌面中的十疊牌以及待發的五副,共計八副牌整理移除。當所有牌都被移除整理之后,游戲獲勝。
三、項目采用技術
JAVA
GUI
四、項目亮點
1、實現了簡單、正常、復雜三種不同難度的玩法
2、可以顯示可行性操作
五、項目git地址
https://gitee.com/xmgghhh/projects
六、項目git提交記錄截圖(要體現出每個人的提交記錄、提交說明)
七、項目功能架構圖與主要功能流程圖
八、項目主要類及關鍵代碼
//方法:顯示可移動的操作
public void showEnableOperator(){
int x = 0;
out: while (true){
Point point = null;
PKCard card = null;
do{
if (point != null){
n++;
}
point = this.getLastCardLocation(n);
while (point == null){
point = this.getLastCardLocation(++n);
if (n == 10) n = 0;
x++;
if (x == 10) break out;
}
card = (PKCard) this.table.get(point);
}
while (!card.isCardCanMove());
while (this.getPreviousCard(card) != null
&& this.getPreviousCard(card).isCardCanMove()){
card = this.getPreviousCard(card);
}
if (a == 10){
a = 0;
}
for (; a < 10; a++){
if (a != n){
Point p = null;
PKCard c = null;
do{
if (p != null){
a++;
}
p = this.getLastCardLocation(a);
int z = 0;
while (p == null){
p = this.getLastCardLocation(++a);
if (a == 10) a = 0;
if (a == n) a++;
z++;
if (z == 10) break out;
}
c = (PKCard) this.table.get(p);
}
while (!c.isCardCanMove());
if (c.getCardValue() == card.getCardValue() + 1){
card.flashCard(card);
try{
Thread.sleep(800);
}
catch (InterruptedException e){
e.printStackTrace();
}
c.flashCard(c);
a++;
if (a == 10){
n++;
}
break out;
}
}
}
n++;
if (n == 10){
n = 0;
}
x++;
if (x == 10){
break out;
}
}
}
九、總結與反思
小組成員自身能力有限導致了課設進行過程出現了許多問題,剛開始進度緩慢,在參考了許多網上的代碼和其他同學的幫助后,才勉強完成任務,自身有很多不足,需要在以后的學習中慢慢改進。
需要注意的開發中的問題
1、像紙牌游戲菜單欄添加監視器及處理事件的方法的實現
2、幫助欄功能的實現
3、紙牌初始化、發牌、回收過程中的算法。