首页 > 分享 > Java扑克牌小程序

Java扑克牌小程序

慕课网第三季作业

要求
1. 创建一副扑克牌,包括2-10,J,Q,K,A,黑桃,红桃,梅花,方片,不包括大小王。
2. 创建两名玩家,有name属性。
3. 洗牌,利用Collections.shuffle方法打乱顺序。
4. 发牌,从第一张开始,按照一人一张的方式,每人发两张牌。
5. 比牌,两人分别拿出手中最大牌比较,点数大者赢,若点数相同,则比较花色。

设计思路:
创建Cards类,Play类,Game类,Test类。
其中Game类中的Compare(Caed x,Card y)方法用来比较两张牌的大小

运行结果:
这里写图片描述

Cards类

package crad; public class Cards { /** * 卡牌类 */ private String color;//花色 private String number;//数字 public Cards(String color,String number){ this.color = color; this.number = number; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } @Override public String toString() { return getColor()+getNumber(); } }

1234567891011121314151617181920212223242526272829303132333435

Play类

package crad; public class Play { /** * 玩家类 */ private Integer id;//玩家ID private String name;//玩家姓名 public Play(Integer id,String name){ this.id = id; this.name = name; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }

12345678910111213141516171819202122232425262728

Game类

package crad; /** * 游戏主程序 */ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Random; import java.util.Scanner; //创建牌 CreateCards() //创建玩家 CreatePlays() //洗牌 ChangeCards() //发牌 SendCards() //判断输赢 GameKo() public class Game { Scanner input = new Scanner(System.in); List<Cards> CardsList = new ArrayList<Cards>(); List<Play> PlayList = new ArrayList<Play>(); List<Cards> nowCardsList = new ArrayList<Cards>(); String[] color =new String[] {"黑桃","红桃","梅花","方片"}; String[] number = new String[] {"2","3","4","5","6","7","8","9","10","J","Q","K","A"}; public void CreatePlays(){ System.out.println("说明:本游戏为2人游戏,双方玩家各发2张牌,取出最大的一张牌与对手比较,点数大者赢,若点数相同,按'黑,红,梅,方'比较大小"); for(int i=0;i<2;i++){ System.out.println("请输入玩家"+(i+1)+"的姓名"); PlayList.add(new Play(i, input.next())); } } public void CreateCards(){ System.out.println("正在创建扑克牌......"); for(int i=0;i<4;i++){ for(int j=0;j<13;j++){ CardsList.add(new Cards(color[i], number[j])); } } System.out.println("扑克牌有:"+CardsList.toString()); System.out.println("创建完成!"); } public void ChangeCards(){ System.out.println("开始洗牌......"); Random rm = new Random(); int x = rm.nextInt(10); for(int i=0;i<x;i++){ System.out.println("第"+(i+1)+"次洗牌"); //System.out.println("打乱前:"+CardsList.toString()); Collections.shuffle(CardsList); //System.out.println("打乱后:"+CardsList.toString()); } System.out.println("洗牌结束!"); } public void SendCards(){ System.out.println("开始发牌......"); for(int i=0;i<4;i++){ //nowCardsList.add(new Cards(color[i], number[i])); nowCardsList.add(CardsList.get(i)); System.out.println("玩家"+PlayList.get(i%2).getName()+"拿牌"+nowCardsList.get(i).toString()); } System.out.println("发牌结束!"); } public int Comparison(Cards x,Cards y){ int Comparison1=0,Comparison2=0;//比较数字 int Comparison3=0,Comparison4=0;//比较花色 //玩家的手牌1 for(int i=0;i<13;i++){ if(x.getNumber().equals(number[i])){ Comparison1 = i; } } for(int i=0;i<4;i++){ if(x.getColor().equals(color[i])){ Comparison3 = i; } } //玩家的手牌2 for(int i=0;i<13;i++){ if(y.getNumber().equals(number[i])){ Comparison2 = i; } } for(int i=0;i<4;i++){ if(y.getColor().equals(color[i])){ Comparison4 = i; } } //选出玩家2张牌中较大的一张 if(Comparison1<Comparison2){ return 2; }else if(Comparison1>Comparison2){ return 1; }else if(Comparison3<Comparison4){ return 2; }else{ return 1; } } public void GameKo(){ List<Cards> maxCard = new ArrayList<Cards>(); int last1=0,last2=0,last3=0; //玩家1最大手牌 last1 = Comparison(nowCardsList.get(0), nowCardsList.get(2)); if(last1==1){ maxCard.add(nowCardsList.get(0)); }else if(last1==2){ maxCard.add(nowCardsList.get(2)); } System.out.println("玩家"+PlayList.get(0).getName()+"的最大手牌是"+maxCard.get(0).toString()); //玩家2最大手牌 last2 = Comparison(nowCardsList.get(1), nowCardsList.get(3)); if(last2==1){ maxCard.add(nowCardsList.get(1)); }else if(last2==2){ maxCard.add(nowCardsList.get(3)); } System.out.println("玩家"+PlayList.get(1).getName()+"的最大手牌是"+maxCard.get(1).toString()); //双方比较 last3 = Comparison(maxCard.get(0), maxCard.get(1)); if(last3==1){ System.out.println("玩家"+PlayList.get(0).getName()+"获胜。"); }else if(last3==2){ System.out.println("玩家"+PlayList.get(1).getName()+"获胜。"); } } }

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147

Test类

package crad; public class test { public static void main(String[] args) { Game gm =new Game(); gm.CreatePlays(); gm.CreateCards(); gm.ChangeCards(); gm.SendCards(); gm.GameKo(); } } 12345678910111213

相关知识

基于Java的鲜花小程序
java计算机毕业设计“花知晓”鲜花销售小程序【附源码+远程部署+程序+mysql】
商城定制小程序
java计算机毕业设计花店管理系统(开题+程序+论文)
扑克牌花色符号
基于小程序128鲜花购物商城 电子商务系统微信小程序项目(源码+文档+运行视频+讲解视频)
java/php/node.js/python基于微信小程序的校园外卖系统的设计与实现【2024年毕设】
基于ssm+vue“花花世界”网站(开题报告+程序+论文+java)
基于ssm+vue表白墙(开题报告+程序+论文+java)
java计算机毕业设计公司员工管理系统(开题+程序+论文)

网址: Java扑克牌小程序 https://m.huajiangbk.com/newsview1094361.html

所属分类:花卉
上一篇: 最新表达爱意的浪漫诗句
下一篇: 白城兴安路花店