java扑克牌游戏的规则说明_Java简易扑克牌游戏(控制台)

一、创建扑克牌的Class

public class Pok {

public String point;

public String color;

public Pok(String point,String color){

this.color=color;

this.point=point;

}

}

二、创建玩家类

public class Player {

public int id;

public String name;

List handCards =new ArrayList();

public Player(int id,String name){

this.id =id;

this.name =name;

}

三、比较方法,重写compare方法,自定义扑克牌之间比较大小规则

具体是通过比较点数的大小,四个花色也通过数字来比较大小

import java.util.Comparator;

public class Compare implements Comparator{

@Override

public int compare(Pok o1, Pok o2) {

String[] color = {"方块","梅花","红桃","黑桃"};

String[] point=new String[]{"2","3","4","5","6","7","8","9","10","J","Q","K","A"};

int temp1 =0;

int temp2 =0;

for(int i=0;i

if(o1.point.equals(point[i])) temp1 +=i*10;

if(o2.point.equals(point[i])) temp2 +=i*10;

}

for(int i=0;i

if(o1.color.equals(color[i])) temp1 +=i;

if(o2.color.equals(color[i])) temp2 +=i;

}

if(temp1>temp2) return 1;

if(temp1==temp2)

return 0;

else

return -1;

}

//写个主方法测试下

public static void main(String[] args){

Compare c= new Compare();

Pok p1= new Pok("3","梅花");

Pok p2= new Pok("3","方块");

int a= c.compare(p1, p2);

System.out.println(a);

}}

四、游戏按步骤(方法)开始:

①:创建牌组

②:洗牌:用Collections.shuffle();打乱序列的排序

③:创建两名玩家(从控制台输入时,注意可能出现的异常)

④:给玩家各发两张牌

⑤:对玩家的手牌进行排序,比较最大值即可判断出获胜者!!!

mport java.util.ArrayList;

import java.util.Collections;

import java.util.List;

import java.util.Scanner;

public class GameStart {

String[] color = {"方块","梅花","红桃","黑桃"};

String[] point=new String[]{"2","3","4","5","6","7","8","9","10","J","Q","K","A"};

Scanner input= new Scanner(System.in);

List poklist= new ArrayList();

List playerlist= new ArrayList();

public void pokSet(){

System.out.println("————————————————组建牌组:");

for(int i=0;i

for(int j=0;j

poklist.add(new Pok(point[j],color[i]));

}

}

int i=0;

for (Pok p : poklist) {

System.out.print(p.color+p.point+" ");

i++;

if(i%13==0)

System.out.println("");

}

}

public void shuffle(){

System.out.println("——————————————————开始洗牌喽:");

Collections.shuffle(poklist);

int i=0;

for (Pok p : poklist) {

System.out.print(p.color+p.point+" ");

i++;

if(i%13==0)

System.out.println("");

}

}

public void playerSet(){

System.out.println("————————————————创建两名玩家:");

for(int i=0;i<2;i++){

System.out.println("请输入玩家ID:");

int id= 0;

try{

id= input.nextInt();

}catch(Exception e){

System.out.println("输错了,欧尼酱!");

input= new Scanner(System.in);

i--;

continue;

}

System.out.println("请输入玩家姓名:");

String name= input.next();

playerlist.add(new Player(id,name));

}input.close();

}

//给俩玩家发牌,即把无序的牌组的前四张 按顺序添加到他们手牌中

public void deal(){

playerlist.get(0).handCards.add(poklist.get(0));

playerlist.get(1).handCards.add(poklist.get(1));

playerlist.get(0).handCards.add(poklist.get(2));

playerlist.get(1).handCards.add(poklist.get(3));

System.out.println("——————————————发牌结束,来看看他俩的手牌吧:");

for(Player p:playerlist){

System.out.println(p.name+":");

for(Pok pk:p.handCards){

System.out.print(pk.color+pk.point+" ");

}

System.out.println("");

}

}

//对玩家的手牌排序,然后比较他们手牌中最大的一张即可

public void sort(){

Collections.sort(playerlist.get(0).handCards,new Compare());

Collections.sort(playerlist.get(1).handCards,new Compare());

//创建一个max序列,存放俩玩家手牌中最大的一张,然后给max排序,判断其第一张是谁的牌即可

List max= new ArrayList();

max.add(playerlist.get(0).handCards.get(0));

max.add(playerlist.get(1).handCards.get(0));

Collections.sort(max,new Compare());

System.out.println("———————————————对两位玩家手牌进行比较");

if(max.get(0)==playerlist.get(0).handCards.get(0)){

System.out.println("则获胜方为:"+playerlist.get(0).name);

}else{

System.out.println("则获胜方为:"+playerlist.get(1).name);

}

}

public static void main(String[] args){

GameStart game= new GameStart();

game.pokSet();

game.shuffle();

game.playerSet();

game.deal();

game.sort();

}}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值