java 把一副扑克牌打乱_java第三季的扑克牌游戏练习

功能描述:

1.创建一副扑克牌(包括4种花色,和13种点数)

2.创建2名玩家(含有姓名,id,手牌等属性,手牌是扑克牌集合)

3.洗牌(将扑克牌无序打乱)

4.发牌(玩家每人从牌的顶端依次拿取2张牌)

5.游戏(比较玩家手中点数最大的手牌,若是点数相同则比较花色,最后决出胜者)

第一部分 Puke类

public class Puke implements Comparable { //扑克类

private String ID; //点数

private Integer Inum; //点数大小

private String color; //花色

private Integer Cnum;

public Puke(String ID, Integer Inum,String color,Integer Cnum) {

this.ID = ID;

this.Inum = Inum;

this.color = color;

this.Cnum =Cnum;

}

public Integer getInum() {

return Inum;

}

public void setInum(Integer inum) {

Inum = inum;

}

public Integer getCnum() {

return Cnum;

}

public void setCnum(Integer cnum) {

Cnum = cnum;

}

public String getID() {

return ID;

}

public void setID(String iD) {

ID = iD;

}

public String getColor() {

return color;

}

public void setColor(String color) {

this.color = color;

}

@Override

public String toString() {

return ID+color;

}

@Override

public int compareTo(Puke o) {

if(Inum!=Inum)

return o.Inum.compareTo(Inum);

else return o.Cnum.compareTo(Cnum);

}

}

第二部分 Peopel类

import java.util.ArrayList;

import java.util.List;

import java.util.Set;

public class Peopel { //玩家类

private Integer id; //玩家id

private String name; //玩家姓名

public Listpukers;

public Peopel(Integer id,String name) {

super();

this.id = id;

this.name = name;

this.pukers = new ArrayList();

}

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;

}

public Set getPuke() {

return getPuke();

}

public List getPokers() {

return pukers;

}

public void setPokers(List pokers) {

this.pukers = pokers;

}

}

第三部分 PlayGame类

import java.util.Collections;

import java.util.InputMismatchException;

import java.util.ArrayList;

import java.util.Collection;

import java.util.List;

import java.util.Scanner;

import com.play.People;

import com.play.Poker;

public class PlayGame { //游戏类

private Listpukelist = new ArrayList();

public ListpeopleList = new ArrayList();

//创建一副扑克牌

private void createPoker() { System.out.println("------创建扑克牌------");

String[] colorlist= new String[] {"黑桃","红桃","梅花","方块"}; //权重由小到大

String[] IDlist = new String[] {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};//权重由小到大

for (int i = 0; i < colorlist.length; i++) {

for (int j = 0; j < IDlist.length; j++) {

pukelist.add(new Puke(colorlist[i],i,IDlist[j],j));

}

}

}

//提示创建成功并答应

public void creatsuccess() {

System.out.println("创建扑克牌成功");

// pukelist.toString();

System.out.println("为"+pukelist.toString());

// for (Puke puke : pukelist) {

// System.out.println("为:"+puke.toString());

// }

}

//提示洗牌--------洗牌结束

public void xipai() {

System.out.println("----开始洗牌----");

Collections.shuffle(pukelist);

System.out.println("----洗牌结束----");

}

//创建2名玩家

public void createPeopel() {

System.out.println("开始创建玩家");

Integer id;

String name;

for(int i = 0;i<2;i++) {

while(true) {

try {

System.out.println("输入"+(i+1)+"玩家ID");

Scanner console = new Scanner(System.in);

id = console.nextInt();

if(peopleList.contains(new Peopel(id,null))) {

System.out.println("此id已经存在");

continue;

}

break;

}catch(InputMismatchException e) {

System.out.println("请输入整数类型的id");

}

}

System.out.println("请输入玩家姓名");

Scanner console = new Scanner(System.in);

name = console.next();

peopleList.add(new Peopel(id,name));

}

System.out.println("添加成功!");

for (Peopel peopel : peopleList) {

System.out.println("欢迎玩家:"+peopel);

}

}

//提示发牌,并给玩家发牌

public void fapai() {

System.out.println("开始发牌!");

int i =2;

int j =0;

while(i>0) {

for (Peopel peopel : peopleList) {

System.out.println("玩家"+peopel.getName()+"得到手牌");

peopel.pukers.add(pukelist.get(j));

j++;

}

i--;

}

System.out.println("发牌结束");

}

//提示开始游戏

public void play() {

System.out .println("开始游戏");

for (Peopel peopel : peopleList) {

Collections.sort(peopel.pukers);

System.out.println("玩家"+peopel.getName()+"的最大手牌是:"+peopel.pukers.get(0));

}

}

//提示获胜

private void gameOver() {

List peopleBigPokerList = new ArrayList();

//所有玩家最大牌List

for (Peopel people : peopleList) {

peopleBigPokerList.add(people.pukers.get(0));

}

Collections.sort(peopleBigPokerList);

Puke bigPoker = peopleBigPokerList.get(0);

//所有玩家最大牌

for (Peopel people : peopleList) {

if(people.pukers.contains(bigPoker)) {

System.out.println("------玩家:"+people.getName()+"获胜!------");

}

}

System.out.println("玩家各自的手牌为:");

for (Peopel people : peopleList) {

System.out.println(people.getName()+":"+people.pukers.toString()); }

}

public static void main(String[] args) {

PlayGame p1 = new PlayGame();

p1.createPoker();

p1.creatsuccess();

p1.xipai();

p1.createPeopel();

p1.fapai();

p1.play();

p1.gameOver();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值