版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lily960427/article/details/66479442
要求:
1、创建牌,分四个花色,每个花色13张,没有大小王
2、创建玩家,玩家有ID和姓名,每个人两张牌
3、洗牌,打乱牌序 利用Collections.shuffle方法,加个随机数循环多次洗牌,保证不重复。
4、发牌,发前四张
5、游戏规则:每个人选出两张中最大的进行比较,大的胜利(若大小相等则比较花色)
过程:
1、分为Card类,Player类,Game主类
2、Game类中包含CreateCards();CreatePlayers();ChangeCards();SendCards();Gameis();Compare(Caed x,Card y);这些方法
Card类:
package com.card;
public class Card {
private String color;
private String number;
public Card(){
}
//构造器,把传进来的花色和大小传给本类的花色和属性
public Card(String color,String number){
this.color=color;
this.number=number;
}
//返回花色
public String getColor() {
return color;
}
//返回大小
public String getNumber() {
return number;
}
}
Player类:
package com.card;
public class Player {
private String id;
private String name;
//空构造器
public Player(){
}
public Player(String id,String name){
this.id=id;
this.name=name;
}
//返回id
public String getId() {
return id;
}
//返回姓名
public String getName() {
return name;
}
}
Game类:
package com.card;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
import java.util.Collections;
//创建牌、玩家 CreateCards() CreatePlayers()
//洗牌 打乱顺序 ChangeCards()
//发牌 顺序发牌 SendCards()
//判断输赢 Gameis()
public class Game {
public List<Card> CardList= new ArrayList<Card>();
public List<Player> PlayerList=new ArrayList<Player>();
public List<Card> nowCardList=new ArrayList<Card>();//当前玩家拿的牌
public String[] color={"黑桃","红桃","梅花","方片"};
public String[] number={"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
public void CreateCards(){
System.out.println("----开始创建扑克牌----");
System.out.println("----正在创建扑克牌....");
for (int i = 0; i < 4; i++)
for (int j = 0; j < 13; j++)
CardList.add(new Card(color[i], number[j]));
System.out.println("----完成创建扑克牌----");
}
public void CreatePlayers(){
System.out.println("请输入玩家的信息");
Scanner input= new Scanner(System.in);
for(int i=1;i<3;i++){
System.out.println("请输入第"+i+"名玩家的ID");
String id=input.next();
System.out.println("请输入第"+i+"名玩家的名字");
String name=input.next();
PlayerList.add(new Player(id,name));
}
}
public void ChangeCards(){
System.out.println("----开始洗牌....");
Random ran =new Random();
int x=ran.nextInt(10);
for(int i=0;i<x;i++)
Collections.shuffle(CardList);//引用Collections类中的shuffe方法打乱顺序
System.out.println("----洗牌结束----");
}
public void SendCards(){
System.out.println("----开始发牌----");
for(int i=0;i<4;i++){
nowCardList.add(new Card(color[i],number[i]));
System.out.println("玩家"+PlayerList.get(i%2).getName()+"拿牌"+nowCardList.get(i).getColor()+nowCardList.get(i).getNumber());
}
System.out.println("----发牌结束----");
}
public int Compare(Card x,Card y){
int local1=0,local2=0,last=0;
int local3=0,local4=0;
for(int i=0;i<13;i++){
if(x.getNumber().equals(number[i])) local1=i;//卡牌1的数字
}
for(int i=0;i<4;i++){
if(x.getColor().equals(color[i])) local3=i;
}
for(int i=0;i<13;i++){
if(y.getNumber().equals(number[i])) local2=i;//卡牌2的数字
}
for(int i=0;i<4;i++){
if(y.getColor().equals(color[i])) local4=i;
}
if(local1<local2){
return 2;
}else if(local1>local2){
return 1;
}else{
if(local3<local4){
return 2;
}else{
return 1;
}
}
}
public void Gameis(){
List<Card> maxCardList= new ArrayList<Card>();
int last1=0;
last1=Compare(nowCardList.get(0),nowCardList.get(2));
if(last1==1){
maxCardList.add(nowCardList.get(0));
}else if(last1==2){
maxCardList.add(nowCardList.get(2));
}
System.out.println("玩家"+PlayerList.get(0).getName()+"最大的手牌是"+maxCardList.get(0).getColor()+maxCardList.get(0).getNumber());
int last2=0;
last2=Compare(nowCardList.get(1),nowCardList.get(3));
if(last2==1){
maxCardList.add(nowCardList.get(1));
}else{
maxCardList.add(nowCardList.get(3));
}
System.out.println("玩家"+PlayerList.get(1).getName()+"最大的手牌是"+maxCardList.get(1).getColor()+maxCardList.get(1).getNumber());
int last3=0;
last3=Compare(maxCardList.get(0),maxCardList.get(1));
if(last1==1){
System.out.println("玩家"+PlayerList.get(0).getName()+"获胜");
}else{
System.out.println("玩家"+PlayerList.get(1).getName()+"获胜");
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Game playgame=new Game();
playgame.CreateCards();
playgame.CreatePlayers();
playgame.ChangeCards();
playgame.SendCards();
playgame.Gameis();
}
}