首页 > IT职业 > IT图书 > JAVA入门之简易扑克牌游戏
用来记录玩家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/ ,如需转载,请注明出处,否则将追究法律责任。