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、纸牌初始化、发牌、回收过程中的算法。

 

posted on 2019-01-18 03:28  十号风球  阅读(1922)  评论(0编辑  收藏  举报