墨尔本大学COMP90041课业解析
题意:
使用JAVA编写一个扑克牌游戏。从52张扑克(除了大小王)中抽取5张牌,这五张手牌可能会有9种得分从高到低的组合:同花顺,有四张一样,三带二,同花,顺子,三张一样,两双,一双,除以上之外的任意手牌。这个程序就是提示玩家输入5张牌,然后按照这些组合特定的输出格式进行输出,如果有多个玩家,则还会对手牌进行判断最后谁会赢。
解析:
这是一个字符处理问题,五个字符串当作一个玩家的手牌,如果输入的字符串不符合卡牌的规则或者少于多余5张都应该输出一些报错信息。而且需要支持多个玩家,就应该对输入的每五个字符串当作一个组手牌,private boolean check()与 private int index(String[] arr, String key) 作为检查函数判断内容与长度是否合理,每五张进行一次处理,首先是查找字符串在数组的位置然后判断是否是顺序(等差数列的判断),按照给定的顺序进行冒泡排序即可比较大小,其次用private boolean is_same(String[] arr)判断数组元素是否一致(同花判断),其他玩法类似。将手牌对应到9种组合中,给每个玩家一个分数,最后分数高的胜出。
涉及知识点:
字符串处理,JAVA,数组
更多可加微信讨论
微信号:alexa_au
原文 https://segmentfault.com/a/1190000020501845