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 ...
随机推荐
- python开发工具之分析
开发工具篇之工具分析 任务:开发python程序环境:编辑器+解释器 [原始开发python] 环境:安装python (提供python解释器,命令行shell窗口,简易python编译器,第三方库 ...
- android frame的学习
http://blog.csdn.net/littletigerat/article/details/6318365 //2011年Android Activity生命周期学习笔记 http:// ...
- java中集合
一. List集合: 一次只存储一个元素 1.常用的list集合是ArrayList (1)在创建这个集合的对象时, 需要指定这个集合存储的数据类型! 否则这个集合的数据是不安全的. (2)与数组的 ...
- eclipse打包jar文件
论文仿真做线性回归分类在人脸识别中应用与研究,在单机下实现LRC算法后,又在Hadoop云平台下实现了该算法.在比较实验结果时候需要放在相同硬件条件下比较.但是LRC单机算法是在windows下的ec ...
- js 正则(自己一点点的笔记)
alert(/[abc]/.test("c")); //true alert("a bat ,a Cat,a fAt bat ,a faT cat".match ...
- LeetCode 101 对称二叉树的几种思路(Python实现)
对称二叉树 给定一个二叉树,检查它是否是镜像对称的. 例如,二叉树 [1,2,2,3,4,4,3] 是对称的. 1 / \ 2 2 / \ / \3 4 4 3 但是下面这个 [1,2,2 ...
- IECapt、CutyCapt 生成网页快照
IECapt.CutyCapt 生成网页快照 http://iecapt.sourceforge.net/ http://cutycapt.sourceforge.net/ 1.以管理员身份 运行c ...
- POJ 2209
#include<iostream> #include<stdio.h> #include<algorithm> #include<math.h> #d ...
- OpenFoam+CFDEM+Liggghts安装耦合
这里安装的时间节点为:2018.10.29,安装的是目前的最新版本CFDEM,支持到与OpenFoam-5.x的耦合. 1. 先安装openfoam:https://openfoam.org/down ...
- Android之build.prop属性详解
注:本篇文章是基于MSD648项目(AndroidTV)的prop进行说明. Android版本:4.4.4 内核版本:3.10.86 1.生成build.prop build.prop的生成是由ma ...