java创建一副牌_创建一副简单的扑克牌游戏

Player.java

import java.util.ArrayList;

import java.util.List;

public class Player {

public int id;//ID

public String name;//名字

public Listcards;//手牌

public Player(int id, String name){

this.id = id;

this.name = name;

this.cards = new ArrayList();

}

public String size() {

// TODO 自动生成的方法存根

return null;

}

}

Puke.java

public class Puke implements Comparable {

public String color;//牌的花色

public String num;//牌的点数

public Puke (String color,String num){

this.color = color;//牌的花色

this.num = num ;//牌的点数

}

/*

* 定义扑克牌的规则

* @see java.lang.Comparable#compareTo(java.lang.Object)

*/

public int compareTo(Puke o) {

if (this.num == o.num)

{

if (this.color.equals("黑桃"))

{

return 1;

}

else if (this.color.equals("红桃"))

{

if (o.color.equals("黑桃"))

{ return -1;

}

else {

return 1;

}

}

else if (this.color.equals("梅花"))

{

if (o.color.equals("黑桃") || o.color.equals("红桃"))

{

return -1; }

else

{

return 1;

}

}

else

{

return -1;

}

}

else

{

if (this.num.equals("A"))

{

return 1;

}

else if (this.num.equals("K"))

{

if (o.num.equals("A"))

{

return -1;

}

else

{

return 1;

}

}

else if (this.num.equals("Q"))

{

if (o.num.equals("A") || o.num.equals("K"))

{

return -1;

}

else

{

return 1;

}

}

else if (this.num.equals("J"))

{

if (o.num.equals("A") || o.num.equals("K") || o.num.equals("Q"))

{

return -1;

}

else { return 1;

}

}

else if (this.num.equals("10"))

{

if (o.num.equals("A") || o.num.equals("K") ||

o.num.equals("Q") || o.num.equals("J"))

{

return -1;

}

else

{

return 1;

}

}

else

{

return this.num.compareTo(o.num);

}

}

}

}

PlayGames.java

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

import java.util.Scanner;

/*

* 扑克牌游戏:

* 1、创建一副扑克牌,除去大小王

* 2、登录两位玩家

* 3、随机洗牌

* 4、顺序发牌

* 5、先比较点数,再比较花色 黑桃>红桃>梅花>方片

*

*/

public class PlayGames {

public Listallpuke;

public void playgames(){

this.allpuke = new ArrayList();

}

List allpukes=new ArrayList();

public Listplayers = new ArrayList();

/*

* 创建一副扑克牌

*/

public void porke(){

{

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

allpukes.add("方片A");

allpukes.add("梅花A");

allpukes.add("红桃A");

allpukes.add("黑桃A");

for(int i=2;i<11;i++)

{

allpukes.add("方片"+i);

allpukes.add("梅花"+i);

allpukes.add("红桃"+i);

allpukes.add("黑桃"+i);

}

allpukes.add("方片J");

allpukes.add("梅花J");

allpukes.add("红桃J");

allpukes.add("黑桃J");

allpukes.add("方片Q");

allpukes.add("梅花Q");

allpukes.add("红桃Q");

allpukes.add("黑桃Q");

allpukes.add("方片K");

allpukes.add("梅花K");

allpukes.add("红桃K");

allpukes.add("黑桃K");

String str=allpukes.toString();

System.out.println("---------扑克牌创建成功:--------\n"+str);

}

}

/*

* 打乱顺序

*/

public void shuffle(){

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

//随机打乱顺序用List方法

Collections.shuffle(allpukes);

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

}

/*

* 创建玩家ID 和玩家姓名

*/

public void PutPlayers(){

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

for (int i = 1; i < 3; i++)

{

System.out.println("请输入第" + (i) + "位玩家的ID和姓名:");

System.out.println("输入ID:");

int id = 0; ;

Scanner scanner = new Scanner(System.in);

while(true)

{

try{

id = Integer.parseInt(scanner.nextLine().trim());;

break;

}

catch (NumberFormatException e)

{

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

System.out.println("重新输入ID:"); continue; }

}

System.out.println("输入姓名:");

String name = scanner.nextLine();

Player player = new Player(id, name);

players.add(player);

}

System.out.println("----欢迎玩家:" + players.get(0).name);

System.out.println("----欢迎玩家:" + players.get(1).name);

}

/*

* 开始发牌

*/

public void dealCard(){

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

System.out.println("---------玩家"+players.get(0).name+"拿牌-----");

players.get(0).cards.add(allpukes.get(0));

System.out.println("---------玩家"+players.get(1).name+"拿牌-----");

players.get(1).cards.add(allpukes.get(1));

System.out.println("---------玩家"+players.get(0).name+"拿牌-----");

players.get(0).cards.add(allpukes.get(2));

System.out.println("---------玩家"+players.get(1).name+"拿牌-----");

players.get(1).cards.add(allpukes.get(3));

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

}

/*

* 开始游戏

*/

@SuppressWarnings("unchecked")

public void starGame(){

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

Collections.sort(players.get(0).cards);

String maxCard= players.get(0).cards.get(1).toString();

System.out.println("玩家:"+players.get(0).name+"最大的手牌是:"+maxCard);

Collections.sort(players.get(1).cards);

String maxCard1= players.get(1).cards.get(1).toString();

System.out.println("玩家:"+players.get(0).name+"最大的手牌是:"+maxCard1);

ListgameCard = new ArrayList();

gameCard.addAll(players.get(0).cards);

gameCard.addAll(players.get(1).cards);

Collections.sort(gameCard);

if(players.get(0).cards.contains(gameCard.get(gameCard.size()-1))){

System.out.println("-------玩家"+players.get(0).name+"赢了--------");

}else

{

System.out.println("-------玩家"+players.get(1).name+"赢了--------");

}

}

/*

* 查看玩家的牌

*/

public void checkplayerCard(){

System.out.println("-------------各位玩家的牌是-----------------");

Collections.sort(players.get(0).cards);

String playerCard1= players.get(0).cards.toString();

System.out.println("玩家"+players.get(0).name+"的牌是"+players.get(0).cards);

Collections.sort(players.get(1).cards);

String playerCard2= players.get(1).cards.toString();

System.out.println("玩家"+players.get(1).name+"的牌是"+players.get(1).cards);

}

public static void main(String[] args) {

// TODO 自动生成的方法存根

System.out.println("-------欢迎来到扑克牌王国----------");

System.out.println("-------------是否要开始游戏----------");

System.out.println("-------------是请按:1 --- 否请按:0-------");

Scanner scanner= new Scanner(System.in);

int a = scanner.nextInt();

if(a == 1){

while(true){

PlayGames pl = new PlayGames();

pl.porke();

//pl.foreachPuke();

pl.shuffle();

pl.PutPlayers();

pl.dealCard();

System.out.println("-------是否开始出牌--是请按:1------");

int b = scanner.nextInt();

if(b == 1)

pl.starGame();

pl.checkplayerCard();

System.out.println("--------是否要继续游戏---------");

System.out.println("------继续请按:1-----退出请按:0------");

int c = scanner.nextInt();

if(c == 1){

continue;

}

else{

break;

}

}

System.out.println("---------感谢您的参与---------");

}

else{

System.out.println("----------欢迎下次再来!-----------------");

}

}

}

看完第三季,对于很多方法的实践用法不怎么懂,一开始确实无从动手,然后回看了视频里面的讲解,和参照自己敲的代码,再加上参照了一下其他人的代码最后完成了这个扑克牌游戏,希望能给大家作为参考! 大家一起努力,共同进步!

AAffA0nNPuCLAAAAAElFTkSuQmCC

AAffA0nNPuCLAAAAAElFTkSuQmCC

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值