try{ System.out.println("输入玩家1 id"); int i1=sc.nextInt(); id1.setId(i1);} catch(InputMismatchException ie){ System.out.println("请输入数字!"); }package imoocLx.easypk;import java.util.ArrayList;import java.util.Collections;import java.util.InputMismatchException;import java.util.List;import java.util.Random;import java.util.Scanner;/*1.创建一副扑克牌,不考虑大小王2.创建两名玩家,玩家至少要有ID、姓名、手牌等属性,手牌为扑克牌的集合3.洗牌,将之前创建的扑克牌顺序打乱4.发牌,将洗牌之后的扑克牌集合,从第一张开始,发给两名玩家,按照一人一张的方式,每人发两张 (改为每人发三张牌)5.开始游戏,比大小,大小相同比花色*/public class EasyPkp { List<Pkp> newPkp=new ArrayList<Pkp>(); static int XPPL=50; // 执行随机对调 的次数 Player id1,id2; //定义的玩家 //生成扑克牌 public void createPkp(){ System.out.println("--------生成扑克-----------------"); String[] hsArray={"红桃","方块","黑桃","梅花"}; for(String hs:hsArray){ for(int i=1;i<=13;i++) newPkp.add(new Pkp(i,hs)); } } //洗 牌,生成随机两对数,将其对调,执行50次 public void xPkp(){ System.out.println("---------------开始洗牌----------------------"); Random rand=new Random(); for(int i=0;i<XPPL;i++){ int a1=rand.nextInt(52); int a2=rand.nextInt(52); // System.out.println("a1"+a1+"/a2"+a2+"pkpsize:"+newPkp.size()); if((newPkp.size()>=52)&&(a1!=a2)){ Pkp pkpp=newPkp.get(a1); //得到 a1牌 Pkp pkpp1=newPkp.get(a2); //分别得到防止添加删除位置变化 newPkp.remove(a1); //删除a1位 newPkp.add(a1,pkpp1); //添加a2到a1 newPkp.remove(a2); //移除a2 newPkp.add(a2,pkpp); //添加a1 } } } //创建玩家 public void createPlayer(){ System.out.println("---------开始创建玩家-----------"); id1=new Player(); id2=new Player(); //@SuppressWarnings("resource") Scanner sc=new Scanner(System.in); try{ System.out.println("输入玩家1 id"); int i1=sc.nextInt(); id1.setId(i1);} catch(InputMismatchException ie){ System.out.println("请输入数字!"); } System.out.println("输入玩家1 name"); String name=sc.next(); id1.setName(name); System.out.println(id1+"创建完成!"); System.out.println("输入玩家2 id"); int i2=sc.nextInt(); id2.setId(i2); System.out.println("输入玩家2 name"); String name2=sc.next(); id2.setName(name2); System.out.println(id2+"创建完成!"); } //发牌 public void fPkp(Player p1,Player p2){ System.out.println("-------------系统开始发牌------------"); ArrayList<Pkp> par1=new ArrayList<Pkp>(); ArrayList<Pkp> par2=new ArrayList<Pkp>(); for(int i=0;i<6;i=i+2){ par1.add(newPkp.get(i)); par2.add(newPkp.get(i+1)); } p1.setSp(par1); p2.setSp(par2); showPlayerSp(p1); showPlayerSp(p2); } //显示玩家手牌 public void showPlayerSp(Player p){ ArrayList<Pkp> sp=p.getSp(); System.out.println(p.name+"手牌为:"); for(Pkp pkp:sp) System.out.println(pkp); } //输赢比较 public void getWin(Player p1,Player p2) { System.out.println("比对结果------------"); Collections.sort(p1.getSp()); Collections.sort(p2.getSp()); if((p1.getSp().get(2)).compareTo(p2.getSp().get(2))>0){ System.out.println(p1.getName()+"获胜!"); } else if((p1.getSp().get(2)).compareTo(p2.getSp().get(2))==0){ if((p1.getSp().get(1)).compareTo(p2.getSp().get(1))>0){ System.out.println(p1.getName()+"获胜!");} else if((p1.getSp().get(1)).compareTo(p2.getSp().get(1))==0) { if((p1.getSp().get(0)).compareTo(p2.getSp().get(0))>0) System.out.println(p1.getName()+"羸!"); else if((p1.getSp().get(0)).compareTo(p2.getSp().get(0))==0) System.out.println("平局!"); else System.out.println(p2.getName()+"获胜!"); } else System.out.println(p2.getName()+"获胜!"); }else System.out.println(p2.getName()+"获胜!"); /* ArrayList<Pkp> win=new ArrayList<Pkp>(); win.add(p1.getSp().get(2)); win.add(p2.getSp().get(2)); //2为第三张牌 Collections.sort(win); System.out.println("获胜者为:"+win.get(1));*/ } //显示生成扑克 public void showPkp(){ System.out.println("------显示当前扑克-----------------"); for(Pkp pkp:newPkp) System.out.print(pkp); } public static void main(String[] args) { // TODO Auto-generated method stub EasyPkp easyPkp=new EasyPkp(); easyPkp.createPkp(); easyPkp.createPlayer(); //easyPkp.showPkp(); easyPkp.xPkp(); //easyPkp.showPkp(); easyPkp.fPkp(easyPkp.id1, easyPkp.id2); //给玩家发牌 /* * 给两个玩家发同样的牌 * Player p1=new Player(2,"wge"); Player p2=new Player(3,"xm"); ArrayList<Pkp> sp=new ArrayList<Pkp>(); ArrayList<Pkp> sp2=new ArrayList<Pkp>(); sp.add(new Pkp(12,"黑桃")); sp.add(new Pkp(11,"黑桃")); sp.add(new Pkp(10,"黑桃")); sp2.add(new Pkp(12,"黑桃")); sp2.add(new Pkp(11,"黑桃")); sp2.add(new Pkp(10,"红桃")); p1.setSp(sp); p2.setSp(sp2); System.out.println("得到设定的手牌------"); easyPkp.getWin(p1, p2); */ easyPkp.getWin(easyPkp.id1,easyPkp.id2); }}
添加回答
举报
0/150
提交
取消