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);
}
}
相关分类