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 ...
随机推荐
- Syncthing源码解析 - 第三方库
1,AudriusButkevicius/cli 网址:https://github.com/AudriusButkevicius/cli 2,bkaradzic/go-lz4 网址:https:// ...
- mxonline实战7,模板继承和模板标签
对应github地址:https://github.com/pshyms/django/tree/master/mxonline/7_day 一. 定制不同页面中样式相同,内容不同的模 ...
- json和csv文件存储
一. json 1:基本概念 1.1 Json和Javascript JSON, 全称JavaScript Object Notation,它通过对象和数组的组合来表示数据.在JavaScript中一 ...
- 在linux云服务器上运行Jar文件
在linux服务器上运行Jar文件时通常的方法是: $ java -jar test.jar 这种方式特点是ssh窗口关闭时,程序中止运行.或者是运行时没法切出去执行其他任务,有没有办法让Jar在后台 ...
- (一)Python装饰器的通俗理解
在学习Python的过程中,我相信有很多人和我一样,对Python的装饰器一直觉得很困惑,我也是困惑了好久,并通过思考和查阅才能略有领悟,我希望以下的内容会对你有帮助,我也努力通过通俗的方式使得对Py ...
- oracle中表空间的相关操作
Oracle 创建表空间 注意点: 1.如果在PL/SQL 等工具里打开的话,直接修改下面的代码中[斜体加粗部分]执行 2.确保路径存在,比如[E:\app\Quentin\oradata\orcl] ...
- java集合中的HashMap源码分析
1.hashMap中的成员分析 transient Node<K,V>[] table; //为hash桶的数量 /** * The number of key-value mapping ...
- Centos7 DNS神奇的配置
文件 [root@iff etc]# cat /etc/named.conf // // named.conf // // Provided by Red Hat bind package to co ...
- linux下不同颜色文件的性质
绿色文件: 可执行文件,可执行的程序 红色文件:压缩文件或者包文件 蓝色文件:目录 白色文件:一般性文件,如文本文件,配置文件,源码文件等 浅蓝色文件:链接文件,主要是使用ln命令建立的文件 红色闪烁 ...
- Mac 10.12安装数据库管理工具MySQL Workbench
说明:跨平台的MySQL管理工具.别纠结是不是反人类的了,这款用熟了也很溜. 下载: (链接: https://pan.baidu.com/s/1b3VtmA 密码: 6hka)