ITPub博客

首页 > IT职业 > IT图书 > JAVA入门之简易扑克牌游戏

JAVA入门之简易扑克牌游戏

IT图书 作者:soloxiao 时间:2021-09-09 09:00:45 0 删除 编辑
创建CardsPlayer类

用来记录玩家ID、姓名、获得的手牌组合以及手牌面值及其对应的索引值

package PlayingCards;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

public class CardsPlayer {
    public String id;
    public String name;
    public Set cards;   //用来记录玩家获得的手牌
    public Map values;           //用来记录值和索引键值对
    //public Set labels;          //用来记录获得手牌的索引
    //public Set values;          //用来记录获得手牌的值
    public CardsPlayer(String id, String name){
        this.id = id;
        this.name = name;
        this.cards = new HashSet();
        //this.labels = new HashSet();
        //this.values = new HashSet();
        this.values = new HashMap();
    }
}
简易扑克牌游戏主程序

包括生成扑克牌、创建玩家、洗牌和发牌、输出各玩家获得手牌情况并比较手牌大小四部分

package PlayingCards;

import java.util.HashMap;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.util.Random;
import java.util.Scanner;
import java.util.Set;

public class PlayingCards {
    public String[] value = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
    public String[] type = {"黑桃","红桃","梅花","方片"};
    public int amount;        //用来记录给每个玩家发牌的数量
    public int[] values = new int[52];      //用来记录扑克牌的值
    public List cards = new ArrayList();       //用来记录生成的扑克牌
    public Map players = new HashMap();     //用来记录玩家信息
    public List playersID = new ArrayList();     //用来记录玩家的ID
    /*
     * 生成扑克牌
     * 创建花型和数值数组,遍历数组生成扑克牌
    */
    public void createCard(){
        System.out.println("---------创建扑克牌---------");
        String str;
        for (int i=0; i=0; label--){
            if (num[0][label] == num[1][label]){
                if ((int)players.get(id[0]).values.get(num[0][label])  (int)players.get(id[1]).values.get(num[1][label])){
                    System.out.println("玩家"+players.get(id[1]).name+"的牌更大,为"+cards.get((int)players.get(id[1]).values.get(num[1][label]))); 
                    break;
                }
            }
            if (num[0][label] > num[1][label]){
                System.out.println("玩家"+players.get(id[0]).name+"的牌更大,为"+cards.get((int)players.get(id[0]).values.get(num[0][label])));
                break;
            }
            if (num[0][label] 
进一步优化:

1.CardsPlayer类中可以将扑克牌、扑克牌面值、扑克牌对应的索引记录在一个成员变量里面,定义为HashMap或数组均可
2.主程序中用来记录玩家信息的变量players可定义为CardsPlayer类的数组,这样通过索引即可获得所需信息,简化程序

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

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

注册时间:2019-04-16

  • 博文量
    122
  • 访问量
    824