比较方法

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();//比较大小并输出

}

}

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

  1. java怎么实现打牌_JAVA入门第三季实战:简易扑克牌

    本程序使用了ArrayList .HashMap,简单应用了Java第三季的集合框架 首先创建一个卡牌类 /** * 扑克类 */ public class Poker { public Poker( ...

  2. 黑桃k游戏java实战_JAVA入门第三季综合实战-简易扑克游戏

    自己写加参考,解决了抛异常只抛一次的问题 ,使程序更加完整 卡片类 package practice; public class Card { @Override public int hashCod ...

  3. java基础实战练习_JAVA入门第三季第七章实战练习

    首先,先创建一个Gammer类与一个Poker类. /* * Gammer类包含int类型的id属性与String类型的name属性! * id用int类型是为了测试后面创建用户时输入异常的情况. * ...

  4. 阿克斯java表_java 入门第三季的6-5 作业, 希望大家指点

    java 入门第三季的6-5 作业, 希望大家指点 public static void main(String[] args) { // TODO Auto-generated method stu ...

  5. book类 借书 java_模拟借书系统(Java入门第三季第一章练习)

    程序流程图我就不放上来了,慕友们将就着看看吧,注释还算清晰. 这段代码是Java入门第三季异常与异常处理这一章的练习题, 代码尚有不足,请多多指教. /** * 功能:模拟借书系统 * 要求: * 1 ...

  6. java了解异常_ID检测_Java入门第三季7-1简易扑克牌游戏(自定义玩家个数,玩家个数和ID异常检测)...

    玩家类: package playingCardsGame; import java.util.ArrayList; import java.util.List; /* * 玩家类 */ public ...

  7. 用java统计任一书名次数_Java入门第三季 借书系统源代码 加入了限制重输次数 欢迎指教交流...

    昨天刷完了关于异常的视频,感觉讲的太跳跃了,让我这个新手有点不适应,摸索了很久才完成了这个借书系统,擅自命名为达达借书系统,我还没习惯写备注,如果有看不懂的地方,欢迎大家留言指教. 建立 JieShu ...

  8. java 记牌_JAVA入门第三季——简易扑克牌

    package PlayingCards; /** * * * 定义扑克牌类 * @author Administration * */ public class Card { private int ...

  9. java编程10以内随机数字乘除_随机生成10个长度为10以内的字符串并排序(Java入门第三季集合下作...

    作业要求: 实现代码: package JiHe; import java.util.List; import java.util.Collections; import java.util.Arra ...

最新文章

  1. 使用Java API创建(create),查看(describe),列举(list),删除(delete)Kafka主题(Topic)--转载...
  2. redis高并发抽奖
  3. JAVA线程池的分析和使用--笔记
  4. jQuary总结11:jQuery插件封装---jQuery封装 手风琴 动画插件
  5. 【Java】如何理解Java中的异常机制?
  6. LaTeX:equation, aligned 书写公式换行,顶部对齐
  7. (125)FPGA面试题-熟悉AXI总线吗,介绍AXI
  8. 蒟蒻7.16题解(选值+遛狗+树上博弈)
  9. 背景建模与前景检测之二(Background Generation And Foreground Detection Phase 2)
  10. Typora基本技巧
  11. 2018-2019-2 20165205《网络对抗技术》Exp4 恶意代码分析
  12. java连连看代码_Java版连连看
  13. 创建第一个mybatis程序 遇到的问题
  14. 安警官的IP地址是怎样定位到莽村附近的?
  15. Kali Linux查看信息
  16. 【论文整理】小样本学习Few-shot learning论文整理收藏(最全,持续更新)
  17. Linux进程管理之“四大名捕”
  18. sql的datetime 数据类型
  19. 2020算法面经问题汇总
  20. Verilog之从BMP图片中读取RGB数据

热门文章

  1. 字节跳动宣布取消大小周;淘宝、支付宝等阿里系App取消开屏广告;Python 3.10 beta 4 发布|极客头条...
  2. 大道至简:微众银行区块链全栈技术体系纵览
  3. 已被骗数百万美金!App Store 中诈骗应用横行,网友:“苹果只顾抽成!”
  4. 你还在为查询滑动窗口最大值发愁吗?点开看最高效率解法!
  5. 推动隐私计算技术,360数科提出分割式神经网络框架
  6. 涨知识!Google 黑客常用搜索语句一览 | 原力计划
  7. 程序员惊魂 12 小时:“���”引发线上事故
  8. “弃用 Google AMP!”
  9. 给 Python 开发者的四条忠告!| CSDN 博文精选
  10. 数据有为 智在决策 | 观远数据2019智能决策峰会圆满落幕