为了账号安全,请及时绑定邮箱和手机立即绑定

完整版简易扑克牌游戏代码开发

标签:
Java

卡牌类
package pukepai;

public class Cards implements Comparable<Cards>{
private String huase;
private String shuzi;
//定义扑克的所有属性
public static String[] HUASE = new String[]{"黑桃", "红桃", "梅花","方块"};
public static String[] DAXIAO = new String[]{"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
//Cards 构造函数 对属性进行赋值
public Cards(String huase, String shuzi) {
super();

    this.huase = huase;
    this.shuzi = shuzi;
}
public Cards() {
    // TODO 自动生成的构造函数存根
}
public String getHuase() {
    return huase;
}
public void setHuase(String huase) {
    this.huase = huase;
}
public String getShuzi() {
    return shuzi;
}
public void setShuzi(String shuzi) {
    this.shuzi = shuzi;
}
@Override
public String toString() {
    return this.huase+this.shuzi;
}

public int compareTo(Cards o) {
    // TODO 自动生成的方法存根

    if(getIntDaxiao(this)==getIntDaxiao(o)){
        if(getintHuase(this)<getintHuase(o))
            return 1;

    }else if(getIntDaxiao(this)<getIntDaxiao(o)){
        return -1;
    }else
    {
        return 0;
    }
    return 0;
}
//获得花色的数组索引号
int getintHuase(Cards card){
       for(int i = 0;i<4;i++){
           if(card.getHuase().equals(HUASE[i])){
               return i;
           }
       }
       return -1;
   }
//获得卡牌大小的数组索引号
int getIntDaxiao(Cards card){
    for(int i = 0;i <13; i++){
        if(card.getShuzi().equals(DAXIAO[i])){
            return i;
        }
    }
    return -1;
}
//比较较大的卡牌
Cards bigCard(Cards ca){
    if(this.getIntDaxiao(this)==ca.getIntDaxiao(ca)){
        if(this.getintHuase(this)==ca.getintHuase(ca)){
            return ca;
        }
    }else if(this.getIntDaxiao(this)<ca.getIntDaxiao(ca)){
        return ca;
    }else{
        return this;
    }
    return ca;
}

}
用户类
package pukepai;

import java.util.ArrayList;
import java.util.List;

public class Users implements Comparable<Users>{

private int ID;
private String name;

// 每个用户手中的手牌
public List<Cards> cards = new ArrayList<Cards>();

public Users(int iD, String name) {

    this.ID = iD;
    this.name = name;
}
public Users() {
    super();
}
public int getID() {
    return ID;
}
public void setID(int iD) {
    this.ID = iD;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
@Override
//重写比较方法
public int compareTo(Users o) {
    // TODO 自动生成的方法存根
    int compare = this.cards.get(1).compareTo(o.cards.get(1));
    return compare;
}

}
主类
package pukepai;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.InputMismatchException;
import java.util.List;
import java.util.Map;
import java.util.Scanner;

public class Main {

   static int k=0;

public static void main(String[] args) {
    // TODO 自动生成的方法存根
    //创建一个card 的引用
    Cards card = new Cards();
    //创造一副新扑克牌
    Cards[] cards = new Cards[52];
    //用于保存洗乱后的扑克牌
    Cards[] newCards = new Cards[52];
    //对扑克牌进行初始化

    for(int i = 0; i<52; i++){                                
        cards[i] = new Cards(card.HUASE[i/13],card.DAXIAO[i%13]);
    }
    System.out.println("----------创建扑克牌----------");
    System.out.println("---------初始化扑克牌---------");
    for(int i =0;i<52;i++){
        System.out.print(cards[i].toString()+" ");
    }

    //生成一组1-52的乱序数
    List<Integer> cardlist = new ArrayList<Integer>();
    List<Users> user = new ArrayList<Users>();
    Users user1 = new Users();
    Users user2 = new Users();
    user.add(user1);
    user.add(user2);
    for(int i = 0; i < 52; i++){
        cardlist.add(i);
    }
    //开始洗牌
    Collections.shuffle(cardlist);

    //洗牌结束
    System.out.println("\n--------------洗牌结束------------");
    for(int i = 0; i<52; i++){          
        newCards[i]=cards[cardlist.get(i)];
    }

// for(int i = 0; i<52; i++){
// System.out.print(newCards[i].toString()+" ");
// }

    Scanner input = new Scanner(System.in);
    System.out.println("\n--------------创建玩家------------");
    try{
    System.out.println("请输入第一个玩家的Id和姓名:");
    System.out.println("输入ID:");
    user1.setID(input.nextInt());
    System.out.println("输入姓名:");
    user1.setName(input.next());

    System.out.println("请输入第二个玩家的Id和姓名:");
    System.out.println("输入ID:");
    user2.setID(input.nextInt());
    while(user2.getID()==user1.getID()){
        System.out.println("输入错误!请重新输入:");
        user2.setID(input.nextInt());
    }
    System.out.println("输入姓名:");
    user2.setName(input.next());

    }catch(InputMismatchException e){
        System.out.println("输入类型不匹配!");
    }
    System.out.println("------欢迎玩家:"+user1.getName());
    System.out.println("------欢迎玩家:"+user2.getName());
    System.out.println("---------开始发牌---------");
    for(int i = 0; i < 4; i++){
        if(i%2==0){
            System.out.println("--------玩家:"+user1.getName()+"拿牌");
            user1.cards.add(newCards[k++]);
        }else{
            System.out.println("--------玩家:"+user2.getName()+"拿牌");
            user2.cards.add(newCards[k++]);
        }
    }

    System.out.println("-----------------发牌结束------------------");
    System.out.println("-----------------开始游戏------------------"); 

    //对手牌进行排序
    Collections.sort(user1.cards);
    Collections.sort(user2.cards);
    Collections.sort(user);
    System.out.println("---------恭喜玩家:"+user.get(1).getName()+"获胜");
    System.out.println("---------玩家:"+user1.getName()+"最大手牌为:"+user1.cards.get(1));
    System.out.println("---------玩家:"+user2.getName()+"最大手牌为:"+user2.cards.get(1));

    System.out.println("---------玩家:"+user1.getName()+"手牌为"+user1.cards.get(0)+" "+user1.cards.get(1));
    System.out.println("---------玩家:"+user2.getName()+"手牌为"+user2.cards.get(0)+" "+user2.cards.get(1));
    System.out.println("---------恭喜玩家:"+user.get(1).getName()+"获胜");

}

}

点击查看更多内容
3人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消