java蜘蛛纸牌课程设计_Java课程设计——蜘蛛纸牌

本文介绍了Java编程实现的蜘蛛纸牌课程设计,包括团队分工、项目简介、采用的技术、亮点和功能实现。项目提供简单、正常和复杂三种难度模式,并能显示可行的操作。在开发过程中遇到的问题和解决方案也进行了总结反思。
摘要由CSDN通过智能技术生成

一、团队名称、团队成员介绍、任务分配

团队名称:Panta

团队成员介绍

网络1713蔡炜明【组长】 201721123076

网络1713高枫    【组员】 201721123090

任务分配

网络1713 蔡炜明

蜘蛛纸牌界面设计

游戏帮助栏、规则栏设计

网络1713 高枫

主要负责蜘蛛纸牌主类设计及Git的提交

二、项目简介

该课程设计内容主要是模拟实现蜘蛛纸牌游戏,《蜘蛛纸牌》是由Oberon Games开发的一款休闲益智类游戏,该游戏已由Microsoft于2010年发行。同时该游戏也是Windows ME及后续版本所自带的小游戏,游戏目标是以最少的移动次数将牌面中的十叠牌以及待发的五副,共计八副牌整理移除。当所有牌都被移除整理之后,游戏获胜。

三、项目采用技术

JAVA

GUI

四、项目亮点

1、实现了简单、正常、复杂三种不同难度的玩法

8dd003b1de6d68bbf7df041d3f1829ef.png

a6eddd563a71e66729cfff5b53192721.png

c19d9bd2911e64f49d249eb964d4ee1a.png

200fe1ed2d356823cf4671c4086b74ff.png

2、可以显示可行性操作

6a9fd4eee37580ae04a8d2a6243adceb.png

cca70ddb545e8e628e986b3cbd5cebaf.png

五、项目git地址

https://gitee.com/xmgghhh/projects

六、项目git提交记录截图(要体现出每个人的提交记录、提交说明)

a70a1a9e51b2ee2a336af0eeab3db71c.png

七、项目功能架构图与主要功能流程图

7aa711a34e632c67c5acac9dafd5bb7c.png

八、项目主要类及关键代码

546e7b116743f68599210aa8485b72a6.png

//方法:显示可移动的操作

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

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值