java简易扑克牌游戏设计报告_Java第三季 简易扑克牌游戏 练习完成(已自测通过)...
/**
* 扑克牌类
* 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第三季 简易扑克牌游戏 练习完成(已自测通过)...相关推荐
- java贪吃蛇课程设计报告_java贪吃蛇课程设计报告().doc
java贪吃蛇课程设计报告() <Java应用开发> 课程设计报告 题 目: JAVA小游戏 - 贪吃蛇 指导老师: 姓 名: 专 业: 班 级: 日 期: 目 录 一.系统总体设计1 ( ...
- java文本编辑器课程设计报告_java课程设计报告 心得体会——计算器、文本编辑器.doc...
java课程设计报告 心得体会--计算器.文本编辑器.doc 还剩 24页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内 ...
- java台球游戏设计原理_Java实现简单台球游戏
Java实现简单台球桌问题,供大家参考,具体内容如下 需求: 使小球可以在桌面上移动,移动到桌面边缘将被弹回,显示小区的移动 素材: 小球照片 桌球照片 程序源代码: package 桌球游戏; im ...
- java贪吃蛇课程设计报告_Java课程设计贪吃蛇讲解
Java课程设计是必不可少的一个重要学习环节,Java程序设计的目的就是加深Java学习者对Java理论基础内容的理解和掌握.今天我们要讲的Java课程设计就是贪吃蛇的小程序设计,以下是具体讲解: 1 ...
- java简单计算器课程设计报告_JAVA课程设计之计算器设计报告
题 目: 计算器 院(系):xxx学院 年级专业:xxx班 学生姓名:xxx 指导老师:xx老师 开始时间:200x-xx-xx 完成时间:200x-xx-xx 目 录 1. 摘 要 2. 概要设计 ...
- Java课程设计——挖地雷游戏设计报告
源文件: 大学生Java课程设计--挖地雷游戏设计报告源文件-其它文档类资源-CSDN文库 目 录 摘 要. 1 一.引言. 2 1.设计任务和基本要求. 2 二.报告正文. 3 1.需求分析. 3 ...
- java qq课程设计报告_JAVA课程设计报告语音QQ仿真
JAVA课程设计报告语音QQ仿真 <Java 程序设计>课程设计报告 题 目: 语音 QQ 仿真 学 院:计算机科学与工程 专 业:物联网工程 学生姓名: xx 学 号: 13003701 ...
- java课设推荐,《Java程序设计》课程设计报告推荐.docx
<Java程序设计>课程设计报告推荐 <Java程序设计>课程设计报告2015-2016学年 第一学期设计题目整数进制转换学生姓名邹晓刚学 号0专业班级信管1303指导教师 姜 ...
- C语言小游戏设计报告
C语言小游戏设计报告 课程设计名称:贪吃蛇小游戏 专业班级:计科15-2 学号:150809229 姓名:XXX 一.设计目标 通过设计,培养学生对电脑的动手能力,使学生巩固<C语言程序设计&g ...
最新文章
- getrlimit读取进程能打开的最大文件描述符
- 3、HTML导入外部样式表(HTML导入CSS文件)
- 增大iphone音量技巧_原来苹果手机隐藏功能这么好用!调整这个设置,一键增大外放音量...
- antd动态隐藏表格中的一列_有很多excel表格,如何快速合并到一张表格里?
- php 地图 距离,PHP计算百度地图两个GPS坐标之间距离的方法
- Laravel框架中的路由和控制器
- 国内程序员加班严重!听听外国网友怎么说。
- vue调用手机相机相册_移动端vue调用照相机及相册
- 用shell脚本一键搭建LNMP环境实战
- eclipse或Myeclipse中web项目没有run on server时怎么办?
- 信贷常用风控报表(一)
- idea拦截了html中的静态资源,IDEA配置静态资源热加载操作(Springboot修改静态资源不重启)...
- 曼昆:宏观经济学简史(转)
- solidworks分析视频教程-结构应力仿真有限元虚拟样机及流场分析
- 草图大师(2018)
- 1064用ctype库解决
- 计算机装系统找不到硬盘分区,解决安装系统找不到硬盘的问题(图文)
- FSA(有限状态自动机)python代码实现 自然语言处理作业
- 无监督图像分类《SCAN:Learning to Classify Images without》代码分析笔记(1):simclr
- MS-DOS系统下的autoexec.bat
热门文章
- Linux下CGroup进行CPU内存等资源控制
- python金融应用的好书推荐卡_十大金融好书推荐
- 白下高新区妇联、科协举办亲子活动,小朋友们走进云创大数据
- Excel在统计分析中的应用—第十二章—回归分析与预测-运用LINEST函数进行多元线性回归分析
- 51页大数据湖总体规划及大数据湖一体化运营管理方案
- 简转繁等中文转换(Golang)
- 包裹侠快递查询_全球顶尖技术精英汇聚菜鸟 准备帮助快递攻破体积测量难题...
- vue-currency-input 金额组件的安装及使用
- 6174C语言编程,关于6174的C语言程序怎么办? 爱问知识人
- Collections.singleton