java折叠自行车x1-auto,java入门第三季 7-1 简易扑克练习

比较方法

import java.util.Comparator;

public class CardComparator implements Comparator{

@Override

public int compare(Card o1, Card o2) {

// TODO Auto-generated method stub

int flag=0;

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

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

int x1=0,x2=0;

for(int i=0;i

if(o1.value==value[i])

x1=i;

if(o2.value==value[i])

x2=i;

}

if(x1>x2){

flag=1;

}

else if (x1

flag=-1;

}

else if(x1==x2) {

for(int i=0;i

if(o1.value==color[i])

x1=i;

if(o2.value==color[i])

x2=i;

}

if(x1>x2)

flag=1;

if(x1

flag=-1;

if(x1==x2)

flag=0;

}

return flag;

}

}

用户类

import java.util.ArrayList;

public class User {

public int id;

public String name;

ArrayList handCard;

public User(int id, String name) {

super();

this.id = id;

this.name = name;

handCard=new ArrayList();

}

}

卡片类

public class Card {

public String color;

public String value;

public Card(String color, String value) {

super();

this.color = color;

this.value = value;

}

@Override

public String toString() {

return color+value ;

}

}

测试类

import java.util.ArrayList;

import java.util.Collections;

import java.util.HashSet;

import java.util.Scanner;

import java.util.Set;

public class Test {

public ArrayList card;

public ArrayList users;

public ArrayList userA;

public ArrayList userB;

public void initiaCard() {

//卡片初始化

card=new ArrayList();

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

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

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

for(int j=0;j<13;j++){

card.add(new Card(color[i], value[j]));

}

}

System.out.println("卡片创建成功");

for (Card string : card) {

System.out.print(string);

}

Collections.shuffle(card);

System.out.println("洗牌完毕");

}

public void initiaUser() {

//添加用户

users=new ArrayList();

Scanner scanner=new Scanner(System.in);

for(int i=1;i<3;i++){

int id=0;

System.out.println("请输入第"+i+"位玩家的ID");

try {

id=scanner.nextInt();

} catch (Exception e) {

// TODO: handle exception

System.out.println("请输入整数类型的ID");

String rubish=scanner.next();//防止无限循环输出第一条语句

i--;

continue;

}

System.out.println("请输入第"+i+"位玩家的姓名");

String name=scanner.next();

User user=new User(id, name);

users.add(user);

}

System.out.println("用户创建成功");

}

public void faPai() {

System.out.println("开始发牌");

int j=0;

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

System.out.println(users.get(0).name+"拿牌");

users.get(0).handCard.add(card.get(j));

j++;

System.out.println(users.get(1).name+"拿牌");

users.get(1).handCard.add(card.get(j));

j++;

}

System.out.println("发牌结束");

//遍历玩家拿到的手牌

for (User user : users) {

System.out.println(user.name+"手牌为---"+user.handCard);

}

}

public void compare() {

CardComparator cardComparator=new CardComparator();

//分别用两个集合存储两个用户所得的卡牌

userA=new ArrayList();

userB=new ArrayList();

userA.add(users.get(0).handCard.get(0));

userA.add(users.get(0).handCard.get(1));

userB.add(users.get(1).handCard.get(0));

userB.add(users.get(1).handCard.get(1));

//判断第一个用户最大的卡牌是哪张

int x=cardComparator.compare(userA.get(0), userA.get(1));

Card aCard=null;

if(x==1){

aCard=userA.get(0);

}

else {

//包括相等的情况

aCard=userA.get(1);

}

System.out.println(users.get(0).name+"的最大卡牌为"+aCard);

//判断第二个用户最大的卡牌是哪张

int y=cardComparator.compare(userB.get(0), userB.get(1));

Card bCard=null;

if(y==1){

bCard=userB.get(0);

}

else {

//包括相等的情况

bCard=userB.get(1);

}

//把他们各自最大的卡牌拿出来比较

System.out.println(users.get(1).name+"的最大卡牌为"+bCard);

int result=cardComparator.compare(aCard, bCard);

if(result==1){

System.out.println(users.get(0).name+"获胜");

}else if (result==0) {

System.out.println(users.get(0).name+"与"+users.get(1).name+"平均");

}else {

System.out.println(users.get(1).name+"获胜");

}

}

public static void main(String[] args) {

// TODO Auto-generated method stub

Test test=new Test();

test.initiaCard();//初始化卡牌

test.initiaUser();//初始化用户

test.faPai();//发牌

test.compare();//比较大小并输出

}

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值