/**

* 扑克牌类

* Created by yuyong on 2017/3/8.

*/

public class Card {

public String color; // 花色

public String number; // 牌数

public Card(String color, String number) {

this.color = color;

this.number = number;

}

@Override

public String toString() {

return color + number;

}

}

import java.util.ArrayList;

import java.util.List;

/**

* 玩家类

* Created by yuyong on 2017/3/8.

*/

public class Player {

public String id; // ID

public String name; // 姓名

public List playerCardList; // 玩家拿到的手牌

public Player(String id, String name) {

this.id = id;

this.name = name;

this.playerCardList = new ArrayList<>();

}

}

import java.util.Comparator;

/**

* 自定义比较规则类

* Created by yuyong on 2017/3/8.

*/

// 继承Comparator接口

public class CompareRule implements Comparator {

@Override

public int compare(Card o1, Card o2) {

String colors = "方块 梅花 红桃 黑桃";

String numbers = "A 2 3 4 5 6 7 8 9 10 J Q K";

// 比较数字的大小,选出较大的手牌

if (numbers.indexOf(o1.number) < numbers.indexOf(o2.number)) {

return -1;

} else if (numbers.indexOf(o1.number) > numbers.indexOf(o2.number)) {

return 1;

} else {

// 数字相同时,再比较花色的大小,选出较大的手牌

if (colors.indexOf(o1.color) < colors.indexOf(o2.color)) {

return -1;

} else if (colors.indexOf(o1.color) > colors.indexOf(o2.color)) {

return 1;

} else {

return 0;

}

}

}

}

import java.util.*;

/**

* 主函数

* Created by yuyong on 2017/3/8.

*/

public class Main {

// 定义cardList和playerList两个属性

public List cardList = new ArrayList<>();

public List playerList = new ArrayList<>();

/**

* 创建扑克牌

*/

public void createCard() {

System.out.println("========== 开始创建一副扑克牌(不含大小王) ==========");

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

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

for (String c : colors) {

for (int i = 0; i < numbers.length; i++) {

Card card = new Card(c, numbers[i]);

cardList.add(card);

}

}

StringBuilder builder = new StringBuilder();

for (Card card : cardList) {

builder.append(card.color + card.number + ",");

}

System.out.println("========== 扑克牌创建成功 ==========");

System.out.println("扑克牌为:【 " + builder.substring(0, builder.lastIndexOf(",")) + " 】");

System.out.println();

}

/**

* 洗牌

*/

public void randomCard() {

System.out.println("========== 开始洗牌 ==========");

Collections.shuffle(cardList);

System.out.println("========== 洗牌结束 ==========");

StringBuilder builder2 = new StringBuilder();

for (Card card : cardList) {

builder2.append(card.color + card.number + ",");

}

System.out.println("洗牌后为:【 " + builder2.substring(0, builder2.lastIndexOf(",")) + " 】");

System.out.println();

}

/**

* 创建两位玩家

*/

public void createPlayer() {

System.out.println("========== 开始创建玩家 ==========");

Scanner scanner = new Scanner(System.in);

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

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

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

String id = scanner.next();

while (true) {

if (!id.matches("\\d*")) {

System.out.println("错误的ID,请重新输入正整数!");

id = scanner.next();

} else {

break;

}

}

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

String name = scanner.next();

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

}

for (Player p : playerList) {

System.out.println("----欢迎玩家:" + p.id + " " + p.name);

}

System.out.println();

}

/**

* 发牌

* 每位玩家发两张牌

*/

public void assignCard() {

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

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

System.out.println("****玩家:" + playerList.get(0).name + " --拿牌");

playerList.get(0).playerCardList.add(cardList.get(2 * i));

System.out.println("****玩家:" + playerList.get(1).name + " --拿牌");

playerList.get(1).playerCardList.add(cardList.get(2 * i + 1));

}

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

System.out.println();

}

/**

* 游戏开始

*/

public void startGame() {

Player player1 = playerList.get(0);

Player player2 = playerList.get(1);

System.out.println("========== 开始游戏 ==========");

// 选出玩家1的最大的手牌

Collections.sort(player1.playerCardList, new CompareRule());

// 选出玩家2的最大的手牌

Collections.sort(player2.playerCardList, new CompareRule());

List bigCards = new ArrayList<>();

bigCards.add(player1.playerCardList.get(1));

bigCards.add(player2.playerCardList.get(1));

// 用两个玩家最大的手牌,进行比较

Collections.sort(bigCards, new CompareRule());

System.out.println("****玩家:" + player1.name + "最大的手牌为:" + player1.playerCardList.get(1).color + player1.playerCardList.get(1).number);

System.out.println("****玩家:" + player2.name + "最大的手牌为:" + player2.playerCardList.get(1).color + player2.playerCardList.get(1).number);

// 比较谁获胜

if (bigCards.get(1).equals(player1.playerCardList.get(1))) {

System.out.println("========== 玩家:" + player1.name + "获胜 ==========");

} else {

System.out.println("========== 玩家:" + player2.name + "获胜 ==========");

}

System.out.println();

// 两位玩家分别摊牌

System.out.println("玩家各自的手牌为:");

System.out.println(player1.playerCardList);

System.out.println(player2.playerCardList);

}

public static void main(String[] args) {

Main m = new Main();

m.createCard();

m.randomCard();

m.createPlayer();

m.assignCard();

m.startGame();

}

}

========== 开始创建一副扑克牌(不含大小王) ==========

========== 扑克牌创建成功 ==========

扑克牌为:【 方块A,方块2,方块3,方块4,方块5,方块6,方块7,方块8,方块9,方块10,方块J,方块Q,方块K,梅花A,梅花2,梅花3,梅花4,梅花5,梅花6,梅花7,梅花8,梅花9,梅花10,梅花J,梅花Q,梅花K,红桃A,红桃2,红桃3,红桃4,红桃5,红桃6,红桃7,红桃8,红桃9,红桃10,红桃J,红桃Q,红桃K,黑桃A,黑桃2,黑桃3,黑桃4,黑桃5,黑桃6,黑桃7,黑桃8,黑桃9,黑桃10,黑桃J,黑桃Q,黑桃K 】

========== 开始洗牌 ==========

========== 洗牌结束 ==========

洗牌后为:【 梅花A,红桃5,红桃7,红桃A,红桃2,梅花5,方块10,梅花Q,梅花8,梅花10,方块9,梅花9,梅花3,红桃8,方块6,梅花J,梅花7,方块4,黑桃A,黑桃K,方块2,红桃Q,梅花6,方块3,红桃9,方块A,方块8,梅花2,黑桃8,方块J,黑桃Q,梅花4,红桃10,方块7,黑桃6,黑桃4,黑桃7,黑桃2,黑桃3,梅花K,红桃3,方块K,黑桃5,红桃J,红桃6,黑桃9,红桃4,红桃K,黑桃J,方块Q,方块5,黑桃10 】

========== 开始创建玩家 ==========

** 请输入第1位玩家的ID和姓名 **

请先输入ID:

A

错误的ID,请重新输入正整数!

1

请再输入玩家姓名:

Billy

** 请输入第2位玩家的ID和姓名 **

请先输入ID:

2

请再输入玩家姓名:

Amanda

—-欢迎玩家:Billy

—-欢迎玩家:Amanda

========== 开始发牌 ==========

玩家:Billy –拿牌玩家:Amanda –拿牌

玩家:Billy –拿牌玩家:Amanda –拿牌

========== 发牌结束 ==========

========== 开始游戏 ==========

****玩家:Billy最大的手牌为:红桃7

========== 玩家:Billy获胜 ==========

玩家各自的手牌为:

[梅花A, 红桃7]

[红桃A, 红桃5]

java简易扑克牌游戏设计报告_Java第三季 简易扑克牌游戏 练习完成(已自测通过)...相关推荐

  1. java贪吃蛇课程设计报告_java贪吃蛇课程设计报告().doc

    java贪吃蛇课程设计报告() <Java应用开发> 课程设计报告 题 目: JAVA小游戏 - 贪吃蛇 指导老师: 姓 名: 专 业: 班 级: 日 期: 目 录 一.系统总体设计1 ( ...

  2. java文本编辑器课程设计报告_java课程设计报告 心得体会——计算器、文本编辑器.doc...

    java课程设计报告 心得体会--计算器.文本编辑器.doc 还剩 24页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内 ...

  3. java台球游戏设计原理_Java实现简单台球游戏

    Java实现简单台球桌问题,供大家参考,具体内容如下 需求: 使小球可以在桌面上移动,移动到桌面边缘将被弹回,显示小区的移动 素材: 小球照片 桌球照片 程序源代码: package 桌球游戏; im ...

  4. java贪吃蛇课程设计报告_Java课程设计贪吃蛇讲解

    Java课程设计是必不可少的一个重要学习环节,Java程序设计的目的就是加深Java学习者对Java理论基础内容的理解和掌握.今天我们要讲的Java课程设计就是贪吃蛇的小程序设计,以下是具体讲解: 1 ...

  5. java简单计算器课程设计报告_JAVA课程设计之计算器设计报告

    题 目: 计算器 院(系):xxx学院 年级专业:xxx班 学生姓名:xxx 指导老师:xx老师 开始时间:200x-xx-xx 完成时间:200x-xx-xx 目 录 1. 摘 要 2. 概要设计 ...

  6. Java课程设计——挖地雷游戏设计报告

    源文件: 大学生Java课程设计--挖地雷游戏设计报告源文件-其它文档类资源-CSDN文库 目 录 摘 要. 1 一.引言. 2 1.设计任务和基本要求. 2 二.报告正文. 3 1.需求分析. 3 ...

  7. java qq课程设计报告_JAVA课程设计报告语音QQ仿真

    JAVA课程设计报告语音QQ仿真 <Java 程序设计>课程设计报告 题 目: 语音 QQ 仿真 学 院:计算机科学与工程 专 业:物联网工程 学生姓名: xx 学 号: 13003701 ...

  8. java课设推荐,《Java程序设计》课程设计报告推荐.docx

    <Java程序设计>课程设计报告推荐 <Java程序设计>课程设计报告2015-2016学年 第一学期设计题目整数进制转换学生姓名邹晓刚学 号0专业班级信管1303指导教师 姜 ...

  9. C语言小游戏设计报告

    C语言小游戏设计报告 课程设计名称:贪吃蛇小游戏 专业班级:计科15-2 学号:150809229 姓名:XXX 一.设计目标 通过设计,培养学生对电脑的动手能力,使学生巩固<C语言程序设计&g ...

最新文章

  1. getrlimit读取进程能打开的最大文件描述符
  2. 3、HTML导入外部样式表(HTML导入CSS文件)
  3. 增大iphone音量技巧_原来苹果手机隐藏功能这么好用!调整这个设置,一键增大外放音量...
  4. antd动态隐藏表格中的一列_有很多excel表格,如何快速合并到一张表格里?
  5. php 地图 距离,PHP计算百度地图两个GPS坐标之间距离的方法
  6. Laravel框架中的路由和控制器
  7. 国内程序员加班严重!听听外国网友怎么说。
  8. vue调用手机相机相册_移动端vue调用照相机及相册
  9. 用shell脚本一键搭建LNMP环境实战
  10. eclipse或Myeclipse中web项目没有run on server时怎么办?
  11. 信贷常用风控报表(一)
  12. idea拦截了html中的静态资源,IDEA配置静态资源热加载操作(Springboot修改静态资源不重启)...
  13. 曼昆:宏观经济学简史(转)
  14. solidworks分析视频教程-结构应力仿真有限元虚拟样机及流场分析
  15. 草图大师(2018)
  16. 1064用ctype库解决
  17. 计算机装系统找不到硬盘分区,解决安装系统找不到硬盘的问题(图文)
  18. FSA(有限状态自动机)python代码实现 自然语言处理作业
  19. 无监督图像分类《SCAN:Learning to Classify Images without》代码分析笔记(1):simclr
  20. MS-DOS系统下的autoexec.bat

热门文章

  1. Linux下CGroup进行CPU内存等资源控制
  2. python金融应用的好书推荐卡_十大金融好书推荐
  3. 白下高新区妇联、科协举办亲子活动,小朋友们走进云创大数据
  4. Excel在统计分析中的应用—第十二章—回归分析与预测-运用LINEST函数进行多元线性回归分析
  5. 51页大数据湖总体规划及大数据湖一体化运营管理方案
  6. 简转繁等中文转换(Golang)
  7. 包裹侠快递查询_全球顶尖技术精英汇聚菜鸟 准备帮助快递攻破体积测量难题...
  8. vue-currency-input 金额组件的安装及使用
  9. 6174C语言编程,关于6174的C语言程序怎么办? 爱问知识人
  10. Collections.singleton