UNO卡牌游戏—个人博客

一、团队课程设计博客链接

Java课程设计——UNO卡牌游戏##

二、个人负责模块或任务说明

  • 登录注册界面

  • 游戏主界面

  • 人机对战界面

三、自己的代码提交记录

四、自己负责模块或任务详细说明#

登录界面

通过读取文件匹配用户信息用于登录注册

游戏界面

登录成功进入游戏主界面,可以点击开始游戏,帮助(查看规则),排行榜(通过读取数据展示)

游戏菜单界面

可选择人机对战或者联网对战

人机对战界面

界面玩家在下面,人机在上面,中间为出牌区,背景色为和所出卡牌同一颜色,牌旁边为提示信息

五、主要代码


这是一开始用户界面的调用监听器的代码,通过得到按钮的事件源,然后调用相应的的自己写的方法,这样就可以实现传参,以及MVC模式,将监听器和界面代码分开,而且通过将父窗口传递进自己所写的方法,然后调用dispose方法,就可以关闭父窗口,但不影响子窗口

当游戏结束时,调用方法将分数信息写入文件,更新文件分数信息

因为万能牌会换颜色,所以出牌的table,需要跟出牌的颜色一致,所以为table写一个方法改变颜色

六、课程设计感想

这个课设我的主要工作是GUI界面,在完成GUI界面碰到挺多问题的,很多之前没用过的组件,所以只能借助百度来理解参数,学到的最多的东西就是swing了
我负责的是人机对战界面这一个模块,因为有找到uno的源码,所以人机很大部分都是借鉴其代码,做出的修改就是修改其中的bug,例如牌一共108张放在堆栈中,当牌用完就结束了
原本想再生成牌放进去,继续发牌,生成一个temp Stack存放牌,出现了空指针异常,后来就改成直接结束,并且通过所剩牌数进行判断谁是赢家;还有一些bug是没有修改成功的
例如PC有些时候不能判断自己的行为,需要人为干预,还有如果第一张牌为万能牌,底色就没有显示出来,这些bug是我发现的,但是因为找到的源码层层相扣,试探了很多修改的方式都没有实现成功
添加的功能就是增加了用户登录以及排行榜,只显示前十个人的分数,而且在用户赢得一局之后,对分数加加
posted @ 2020-01-10 10:55  Hyjjing  阅读(334)  评论(1编辑  收藏  举报