您的位置:首页 > 编程语言 > Java开发

Java之简易扑克游戏

2016-08-04 21:07 441 查看
package cardGame;

/**
* 扑克牌类,用来储存扑克牌
*/
public class Card {
private String color;
private String cardnum;
public  static String[] color_name ={ new String("黑头"),
new String("红头"),
new String("梅花"),
new String("方片")};
public static String[] num_name = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
/**
* 扑克牌构造器
*/
public Card(){

}
public Card(String color, String cardnum) {
this.color = color;
this.cardnum = cardnum;
}

/**
* 获取color属性
*/
public String getColor() {
return color;
}

/**
* 获取cardnum属性
*/
public String getCardnum() {
return cardnum;
}
}

package cardGame;

/**
* 玩家类,用来记录玩家的信息
*/
public class Player {
private String id;
private String name;
public Player(){

}
public Player(String id,String name){
this.id=id;
this.name=name;
}
public String getId(){
return id;
}
public String getName(){
return name;
}
}

package cardGame;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Scanner;

/**
* 打扑克牌类
* 1.实现创建一副牌的功能
* 2.实现随机发牌功能
* 3.实现判定输赢功能
*/
public class PlayGame extends Thread {
// Card类型的List用来储存扑克牌
public List<Card> CardList = new ArrayList<Card>();
// 用来储存玩家信息
public List<Player> PlayerList = new ArrayList<Player>();
// 用来储存玩家手中的牌
public List<Card> playCardList = new ArrayList<Card>();

/**
* 创建两个玩家的方法
*/
@SuppressWarnings("resource")
public void CreatPlayer() {
System.out.println("输入玩家信息");
Scanner input = new Scanner(System.in);
int i = 1;
while (i < 3) {
System.out.println("请输入第" + i + "位玩家的ID和姓名:");
System.out.println("输入ID:");
String id = input.next();
System.out.println("输入姓名:");
String name = input.next();
PlayerList.add(new Player(id, name));
i++;
}
}

/**
* 实现创建一副扑克牌的方法
*/
public void CreatCard() {
System.out.println("创建扑克牌!");
for (int i = 0; i < 4; i++)
for (int j = 0; j < 13; j++)
CardList.add(new Card(Card.color_name[i], Card.num_name[j]));
System.out.println("正在创建扑克牌...");
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("扑克牌创建成功!");
}

/**
* 实现随机发牌的方法
*/
public void dealCard() {
System.out.println("开始洗牌...");
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("洗牌结束,开始发牌!每位玩家依次发两张牌!");
System.out.println("开始发牌...");
Random random = new Random();
int m, n;
for (int i = 0; i < 4; i++) {
do {
m = random.nextInt(4);
n = random.nextInt(13);
} while (playCardList.contains(new Card(Card.color_name[m], Card.num_name
)));
playCardList.add(new Card(Card.color_name[m], Card.num_name
));
System.out.println("玩家:" + PlayerList.get(i % 2).getName() + "拿牌");
}
System.out.println("发牌结束!");
}

/**
* 实现游戏规则的方法
*/
public void PlayGameRule() {
int max1 = 0, max2 = 0, min1 = 0, min2 = 0;
int k=0,r=1;
for (int i = 0; i < 13; i++) {
if (playCardList.get(0).getCardnum().equals(Card.num_name[i]))
max1 = i;
if (playCardList.get(1).getCardnum().equals(Card.num_name[i]))
max2 = i;
if (playCardList.get(2).getCardnum().equals(Card.num_name[i]))
min1 = i;
if (playCardList.get(3).getCardnum().equals(Card.num_name[i]))
min2 = i;
}
if(max1<min1){
max1=min1;
k=2;
}
if(max2<min2){
max2=min2;
r=3;
}
System.out.println("开始游戏!");
System.out.println("玩家:"+PlayerList.get(0).getName()
+"最大的手牌为:"+playCardList.get(k).getColor()
+playCardList.get(k).getCardnum());
System.out.println("玩家:"+PlayerList.get(1).getName()
+"最大的手牌为:"+playCardList.get(r).getColor()
+playCardList.get(r).getCardnum());
if(max1>max2)
System.out.println("玩家:"+PlayerList.get(0).getName()+"获胜!");
else if(max1==max2){
int m=0,n=0;
for(int i=0;i<4;i++){
if(playCardList.get(k).getColor().equals(Card.color_name[i]))
m=i;
if(playCardList.get(r).getColor().equals(Card.color_name[i]))
n=i;
}
if(m<n)
System.out.println("玩家:"+PlayerList.get(0).getName()+"获胜!");
else if(m>n)
System.out.println("玩家:"+PlayerList.get(1).getName()+"获胜!");
else
System.out.println("游戏出现异常!!!");
}
else
System.out.println("玩家:"+PlayerList.get(1).getName()+"获胜!");
System.out.println("玩家各自的手牌为:");
System.out.println(PlayerList.get(0).getName()+":["+playCardList.get(0).getColor()
+playCardList.get(0).getCardnum()+","+playCardList.get(2).getColor()
+playCardList.get(2).getCardnum()+"]");
System.out.println(PlayerList.get(1).getName()+":["+playCardList.get(1).getColor()
+playCardList.get(1).getCardnum()+","+playCardList.get(3).getColor()
+playCardList.get(3).getCardnum()+"]");
}

/**
*
* @param args
*/
public static void main(String[] args) {
PlayGame playgame = new PlayGame();
playgame.CreatCard();
playgame.CreatPlayer();
playgame.dealCard();
playgame.PlayGameRule();

}

}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: