Java学习--扑克牌比大小的小游戏
实现:生成五十四张牌,然后进行洗牌,输入两名玩家,然后分别发两张牌,进行比较大小,两张牌中拥有较大一张牌的玩家获胜
Card.java代码如下:
package com.cardgame;
public class Card {
String suit= new String();
String num = new String();
public Card(String suit ,String num){
this.suit=suit;
this.num=num;
}
}
Player.java代码如下:
package com.cardgame; import java.awt.List;
import java.util.ArrayList; public class Player { String name= new String();
String id = new String();
java.util.List<Card> cards= new ArrayList<Card>(); public Player(String name,String id){
this.id=id;
this.name=name;
} }
MainClass.java代码如下:
package com.cardgame; import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import java.util.Scanner; public class MainClass { public List<Card> cards= new ArrayList<Card>();
public List<String> suitList= new ArrayList<String>();
public List<Card> upsetCards= new ArrayList<Card>(); /*
*
* 添加54张扑克牌
*
*/
public void add54Cards() {
for (int i = ; i < suitList.size(); i++) { String suit=suitList.get(i);
String num;
for (int j = ; j < ; j++) { if (j==) {
num="A";
}
else if (j==) {
num="J";
}
else if (j==) {
num="Q";
}
else if (j==) {
num="K";
}else {
Integer jInteger=(Integer)j+;
num=jInteger.toString();
} cards.add(new Card(suit, num));
}
}
cards.add(new Card(null, "小王")); cards.add(new Card(null, "大王"));
System.out.println("*洗牌前*");
for (int i = ; i < cards.size(); i++) {
Card card= cards.get(i); System.out.print(card.suit+card.num+","); }
System.out.println(); }
/*
*
* 打乱顺序
*
*/
public void breakOrder() {
int total = cards.size();
Random random = new Random();
int index;
for (int i = ; i < total; i++) {
index= random.nextInt(cards.size());
upsetCards.add(cards.get(index));
cards.remove(cards.get(index));
}
System.out.println("*开始洗牌*"); for (int i = ; i < upsetCards.size(); i++) {
Card card= upsetCards.get(i); System.out.print(card.suit+card.num+","); }
System.out.println();
System.out.println("*洗牌完成*"); }
/*
*
* 创建玩家,并发牌
*
*/
public void createPlayer(){
Scanner scanner = new Scanner(System.in); System.out.println("请输入一号玩家ID:");
String id1= scanner.next();
System.out.println("请输入一号玩家昵称:");
String name1= scanner.next();
Player first = new Player(name1, id1);
System.out.println("请输入二号玩家ID:");
String id2= scanner.next();
System.out.println("请输入二号玩家昵称:");
String name2= scanner.next();
Player second = new Player(name2, id2);
//发牌
for (int i = ; i <; i++) {
Random random = new Random();
//
int index1=random.nextInt(upsetCards.size());
first.cards.add(upsetCards.get(index1));
upsetCards.remove(index1);
//
int index2=random.nextInt(upsetCards.size());
second.cards.add(upsetCards.get(index2));
upsetCards.remove(index2); }
System.out.println("*发牌成功*");
System.out.println("玩家:"+first.name+" 获得的牌为:");
for (Card card : first.cards) {
System.out.print(card.suit+card.num+" ");
}
System.out.println();
System.out.println("玩家:"+second.name+"获得的牌为:");
for (Card card : second.cards) {
System.out.print(card.suit+card.num+" ");
}
System.out.println();
int card11=this.getNum(first.cards.get());
int card12=this.getNum(first.cards.get());
int card21=this.getNum(second.cards.get());
int card22=this.getNum(second.cards.get());
if ((card11>card12?card11:card12)>(card21>card22?card21:card22)) {
System.out.println("一号玩家获胜");
}else if ((card11>card12?card11:card12)<(card21>card22?card21:card22)) {
System.out.println("二号玩家获胜");
}else {
System.out.println("平局!");
}
} /*
*
* 获得牌权值:
*
*/
public int getNum(Card card) {
int num;
if (card.num=="A") {
num=;
}else if (card.num=="J") {
num=;
}else if (card.num=="Q") {
num=;
}else if(card.num=="K") {
num=;
}else if (card.num=="大王") {
num=; }else if (card.num=="小王") {
num=;
}else {
num=Integer.valueOf(card.num);
} /*
*
* 获取花色权值
*
*/
int suitC=; if (card.suit=="黑桃") {
suitC=;
}else if (card.suit=="红桃") {
suitC=;
}else if (card.suit=="梅花") {
suitC=;
}else if (card.suit=="方块") {
suitC=;
} int result = num*+suitC;
return result;
} public static void main(String[] args) {
// TODO Auto-generated method stub MainClass mClass=new MainClass();
mClass.suitList.add("黑桃");
mClass.suitList.add("红桃");
mClass.suitList.add("梅花");
mClass.suitList.add("方块"); mClass.add54Cards();
mClass.breakOrder();
mClass.createPlayer();
} }
运行结果

Java学习--扑克牌比大小的小游戏的更多相关文章
- 一个简单的猜大小的小游戏 python
初学python,用python写了一个简单的猜大小的小游戏 #!/usr/bin/env python #-*- coding:utf-8 -*- print "------------- ...
- python摇骰子猜大小的小游戏
#小游戏,摇筛子押大小的小游戏玩家初始有1000块钱,可以压大压小作为赌注 import random #定义摇筛子的函数: def roll_dice(number = 3,points = Non ...
- Java 课程设计 "Give it up"小游戏(团队)
JAVA课程设计 "永不言弃"小游戏(From :Niverse) 通过Swing技术创建游戏的登陆注册界面,使用mySQL数据库技术完成用户的各项信息保存和游戏完成后的成绩保存. ...
- Java数组重修,猜数小游戏改进和打印正三角形
数组重修,猜数小游戏 要求:从键盘输入一个数,判断数组是否包含此数,运用随机数 我们可能会这样写 import java.util.Random; import java.util.Scanner; ...
- Java 用java GUI写一个贪吃蛇小游戏
目录 主要用到 swing 包下的一些类 上代码 游戏启动类 游戏数据类 游戏面板类 代码地址 主要用到 swing 包下的一些类 JFrame 窗口类 JPanel 面板类 KeyListener ...
- Java学习之利用集合发牌小练习
/* * 思路: * A:创建一个HashMap集合 * B:创建一个ArrayList集合 * C:创建花色数组和点数数组 * D:从0开始往HashMap里面存储编号,并存储对应的牌同时往Arra ...
- 【java】控制台实现贪吃蛇小游戏-LinkedList、Scanner
package com.myproj.snake; public class Node { private int i,j; public Node(){} public Node(int i, in ...
- Java 课程设计 "Give it up"小游戏设计(个人) 201521123077
1.团队课程设计博客链接 http://www.cnblogs.com/agts/p/7067948.html 2.个人负责模块或任务说明 个人任务:实现游戏画面的制作,游戏逻辑的编写,以及一些模块与 ...
- 学习unity的第一个小游戏(Roll the ball)的笔记
1.摄像机的跟随运动,逻辑就是保持摄像机跟主角的距离不变(Undate()函数). offset=trandform.position-player.position. Undate() { tran ...
随机推荐
- Windows系统设置临时环境变量
path f:\newtest;%path% ---在Path内容中增加一个新的可执行文件搜索路径 从菜鸟到高手,CMD命令行修改临时环境变量:path
- eclipse打包jar文件
论文仿真做线性回归分类在人脸识别中应用与研究,在单机下实现LRC算法后,又在Hadoop云平台下实现了该算法.在比较实验结果时候需要放在相同硬件条件下比较.但是LRC单机算法是在windows下的ec ...
- 孩子们各显神通对付 iOS 12「屏幕使用时间」的限制
简评:2018 年秋季,苹果公司推出了 iOS 12,其中备受好评的一项改变是:增加了屏幕使用时间限制,以减轻沉迷手机的状况.三个月过去后,这项功能似乎并没有对孩子造成太多困扰,道高一尺魔高一丈,孩子 ...
- D01——C语言基础学PYTHON
C语言基础学习PYTHON——基础学习D01 20180705内容纲要: 1 PYTHON介绍 2 PYTHON变量定义规则 3 PYTHON文件结构 4 PYTHON语句及语法 5 字符编码 6 ...
- POJ 2192
#include <iostream> #include <string> #define MAXN 500 using namespace std; bool dp[MAXN ...
- RDD转换成为DataFrame
方式一: 通过case class创建DataFrames(反射) TestDataFrame1.scala package com.bky // 隐式类的导入 // 定义case class,相当于 ...
- docker入门之基础操作
docker,我们可以把docker当作是简单的虚拟机.但这个虚拟机不像vm一样安装系统.所以我们又称之为容器.你可以理解成,容器就是虚拟机 docker与vm的对比 vmware:下载镜像——安装系 ...
- 【性能测试】:关于Sockets协议的脚本的开发
一,关于Sockets协议的脚本,首先对报文的解析是一个关键, 报文的解析一般对着接口文档,弄清楚每个字段代表什么意思,如下一段报文,放在data.ws中 "\x00\x00\x01\x5C ...
- Docker for Windows 启动失败,提示Kubernetes证书无效
起因 部署服务器到一台很久未更新的系统(windows 10),安装docker后,恰好系统自动更新,重启后docker不能启动,提示Kubernetes证书无效(未截到图,抱歉) 排查 因为没有开启 ...
- 服务器端控件同html控件的区别
●ASP.NET中共有几种类型的控件? 三种:1-asp.net控件(动态) 2-标准的html控件(静态) 3-标准的html控件加runat="server"属性(动态) 动态 ...