Java課程設計——蜘蛛紙牌


一、團隊名稱、團隊成員介紹、任務分配

團隊名稱: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、紙牌初始化、發牌、回收過程中的算法。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM