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

java简易扑克牌游戏,慕课第三季作业

2017-03-26 21:02 585 查看
要求:

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();

}

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