UNO卡牌游戏—个人博客
一、团队课程设计博客链接
Java课程设计——UNO卡牌游戏##
二、个人负责模块或任务说明
-
登录注册界面
-
游戏主界面
-
人机对战界面
三、自己的代码提交记录
四、自己负责模块或任务详细说明#
登录界面
通过读取文件匹配用户信息用于登录注册
游戏界面
登录成功进入游戏主界面,可以点击开始游戏,帮助(查看规则),排行榜(通过读取数据展示)
游戏菜单界面
可选择人机对战或者联网对战
人机对战界面
界面玩家在下面,人机在上面,中间为出牌区,背景色为和所出卡牌同一颜色,牌旁边为提示信息
五、主要代码
这是一开始用户界面的调用监听器的代码,通过得到按钮的事件源,然后调用相应的的自己写的方法,这样就可以实现传参,以及MVC模式,将监听器和界面代码分开,而且通过将父窗口传递进自己所写的方法,然后调用dispose方法,就可以关闭父窗口,但不影响子窗口
当游戏结束时,调用方法将分数信息写入文件,更新文件分数信息
因为万能牌会换颜色,所以出牌的table,需要跟出牌的颜色一致,所以为table写一个方法改变颜色
六、课程设计感想
这个课设我的主要工作是GUI界面,在完成GUI界面碰到挺多问题的,很多之前没用过的组件,所以只能借助百度来理解参数,学到的最多的东西就是swing了
我负责的是人机对战界面这一个模块,因为有找到uno的源码,所以人机很大部分都是借鉴其代码,做出的修改就是修改其中的bug,例如牌一共108张放在堆栈中,当牌用完就结束了
原本想再生成牌放进去,继续发牌,生成一个temp Stack存放牌,出现了空指针异常,后来就改成直接结束,并且通过所剩牌数进行判断谁是赢家;还有一些bug是没有修改成功的
例如PC有些时候不能判断自己的行为,需要人为干预,还有如果第一张牌为万能牌,底色就没有显示出来,这些bug是我发现的,但是因为找到的源码层层相扣,试探了很多修改的方式都没有实现成功
添加的功能就是增加了用户登录以及排行榜,只显示前十个人的分数,而且在用户赢得一局之后,对分数加加