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 ...
随机推荐
- “java.lang.NullPointerException”异常分析
1.父类定义的某个属性,没有被子类使用,或者在子类中,又重新定义一次. 2.因为调用了一个object的方法,且此object的reference为null:比如说:String a=null; // ...
- “全栈2019”Java第一章:安装JDK11(Mac)
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 文章原文链接 “全栈2019”Java第一章:安装JDK11(Mac) 下一章 “全栈2019”Java ...
- python 取出字典的键或者值/如何删除一个字典的键值对/如何遍历字典
先定义一个字典并直接进行初始化赋值 my_dict = dict(name="lowman", age=45, money=998, hourse=None) 1.取出该字典所有的 ...
- php扩展memcache和memcached区别?以及memcached软件的介绍
引用“http://www.vicenteforever.com/2012/03/memcache-different-memcached/” memcached是一个软件,而PHP包括了memcac ...
- mysql 添加索引 mysql 如何创建索引
1.添加PRIMARY KEY(主键索引) mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2.添加UNIQUE(唯一索引 ...
- jmeter我们必须搞清楚的问题
我们从以下几个点来看jmeter: 1.jmeter是什么? 2.jmeter为什么我们要使用jmeter?他可以帮我们解决那些事情? 3.怎样使用jmeter做这些事情? 4.我们在什么时候会使用j ...
- GitHub创建项目,保存代码。
平时学习会写一些代码,虽然只是零零散散的功能,但是基本都是在一个项目下操作,偶尔会忘记代码编辑顺序.国庆这几天在家,想把GitHub用起来,实现自己代码的可追溯,可查询.学习本篇博客,你需要一点的Gi ...
- .NET Core容器化之多容器应用部署-使用Docker-Compose
原文补充: -- docker-compose.ymlversion: ' services: mvc-web: container_name: mvc.web.compose build: . re ...
- js 多个异步 的并发控制
今天在群里看到一个人发的面试题: 1,请实现如下的函数,可以批量请求数据,所有的URL地址在urls参数中,同时可以通过max参数 控制请求的并发度.当所有的请求结束后,需要执行callback回调. ...
- windows下python管理右键菜单
实现很简单,不记得什么时候写的了,贴出来希望能有所价值 """ Windows中创建右键菜单 """ import os import sy ...