ITPub博客

首页 > IT职业 > IT图书 > java入门第三季简易扑克牌程序--欢迎交流

java入门第三季简易扑克牌程序--欢迎交流

IT图书 作者:xiaojun63 时间:2021-09-09 08:57:03 0 删除 编辑

//扑克牌类
public class Card implements Comparable {
private String name;//牌名称
private int value;//点数
private int keyvalue;//花色值,黑桃,红桃,梅花,方块分别对应4,3,2,1

public Card(String name, int value, int keyvalue) {
    super();
    this.name = name;
    this.value = value;
    this.keyvalue = keyvalue;
}

public String getName() {
    return name;
}

public int getValue() {
    return value;
}

public int getKeyvalue() {
    return keyvalue;
}

@Override
public int compareTo(Card o) {
    if (this.value!=o.value) {return this.value-o.value;}
    else {return this.keyvalue-o.keyvalue;}
}

}

//玩家类
import java.util.ArrayList;
import java.util.List;

public class Player {
private int id;//玩家id
private String name;//玩家姓名
private List mycards;//玩家手中的牌
public Player(int id, String name) {
super();
this.id = id;
this.name = name;
this.mycards = new ArrayList();
}
public int getId() {
return id;
}
public void setMycards(List mycards) {
this.mycards = mycards;
}
public String getName() {
return name;
}
public List getMycards() {
return mycards;
}
}

//主要游戏逻辑
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class CardGame {

public List cards;//扑克牌
public List cardsindex;//牌的顺序
public Player player1;//玩家1
public Player player2;//玩家2

public void playGame() {
    System.out.println("--------开始游戏-------------");
    List card1=player1.getMycards();
    List card2=player2.getMycards();
    Collections.sort(card1);
    Collections.sort(card2);
    Card max1=card1.get(1);
    Card max2=card2.get(1);
    System.out.println("玩家:"+player1.getName()+"最大手牌为:"+max1.getName());
    System.out.println("玩家:"+player2.getName()+"最大手牌为:"+max2.getName());
    if (max1.compareTo(max2)>0){
        System.out.printf("---------玩家:%s获胜!----------n",player1.getName());
    }else{
        System.out.printf("---------玩家:%s获胜!----------n",player2.getName());
    }
    System.out.println("玩家各自的手牌为:");
    System.out.printf("%s:[%s,%s]n",player1.getName(),card1.get(0).getName()
            ,card1.get(1).getName());
    System.out.printf("%s:[%s,%s]n",player2.getName(),card2.get(0).getName()
            ,card2.get(1).getName());
}

public void dealcards() {
    System.out.println("---欢迎玩家:"+player1.getName());
    System.out.println("---欢迎玩家:"+player2.getName());
    System.out.println("--------开始发牌-------------");
    System.out.println("---玩家"+player1.getName()+"拿牌");
    System.out.println("---玩家"+player2.getName()+"拿牌");
    System.out.println("---玩家"+player1.getName()+"拿牌");
    System.out.println("---玩家"+player2.getName()+"拿牌");

    List tempycards=new ArrayList();
    tempycards.add(cards.get(cardsindex.get(0)));
    tempycards.add(cards.get(cardsindex.get(2)));
    player1.setMycards(tempycards);

    List tempycards2=new ArrayList();
    tempycards2.add(cards.get(cardsindex.get(1)));
    tempycards2.add(cards.get(cardsindex.get(3)));
    player2.setMycards(tempycards2);
    System.out.println("--------发牌结束-------------");
}

public Player creatplayer(int i) {
    System.out.println("请输入第"+i+"位玩家的id和姓名:");
    int id;String name;
    while (true){
        try{
            Scanner input=new Scanner(System.in);
            System.out.println("输入id:");
            id=input.nextInt();
            System.out.println("输入姓名:");
            name=input.next();
            break;
            }
        catch(Exception e){
            System.out.println("输入整数类型的ID!");
        } 
    }
    return new Player(id,name);
}

public void washcards() {
    System.out.println("--------开始洗牌-------------");
    cardsindex=new ArrayList();
    for (int i=0;i();
    String[] color=new String[]{"黑桃","红桃","梅花","方块"};
    String[] valueNumber=new String[]{"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
    for (int i=0;i

}

//程序入口类
public class StartGame {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    CardGame cardgame=new CardGame();

    cardgame.creatcardslist();//创建扑克牌

    cardgame.washcards();//洗牌

    System.out.println("--------创建玩家-------------");
    cardgame.player1=cardgame.creatplayer(1);//创建玩家1
    cardgame.player2=cardgame.creatplayer(2);//创建玩家2

    cardgame.dealcards();//开始发牌

    cardgame.playGame();//开始游戏对战
}

}

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/658/viewspace-2798049/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-12

  • 博文量
    243
  • 访问量
    3073