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 ...
随机推荐
- leecode刷题(22)-- 反转数组
leecode刷题(22)-- 反转数组 反转数组 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3-> ...
- robot framework接口测试之二-四种常见的POST提交数据方式
写接口测试用例时,遇到以json格式提交数据时,报错,Request如下图: Response如下图: 改成form格式提交,可以正常运行,如下图: 代码如下: ------------------- ...
- Spring Boot启动过程(六):内嵌Tomcat中StandardHost、StandardContext和StandardWrapper的启动
看代码有助于线上出现预料之外的事的时候,不至于心慌... StandardEngine[Tomcat].StandardHost[localhost]的启动与StandardEngine不在同一个线程 ...
- PHP消息队列实现
一个经典的消息队列就是这样的,主要是入队出队操作. shell脚本日志输出 学习地址:http://www.imooc.com/article/19111
- [Objective-C语言教程]数据封装(27)
所有Objective-C程序都由以下两个基本要素组成 - 程序语句(代码) - 这是执行操作的程序的一部分,它们被称为方法(函数). 程序数据 - 数据是受程序功能影响的程序信息. 封装是一种面向对 ...
- django基础2
一. 使用原生sql,了解即可 使用原生sql的目的:解决一些复杂的sql不能用ORM方式写出的问题 有三种方式如下 1. extra: 结果集修改器,一种提供额外查询参数的机制 2. raw:执行原 ...
- asp.net c# 虾米音乐API
最近用到虾米音乐的功能,主要是做一个分享音乐功能,找到好多代码,但是比较杂,有用的很少,因 此在此记录下,方便以后自己使用. 对于第三方网站,只要获取了唯一标识,基本上能抓取一些信息. 虾米 音乐的I ...
- SQL Full Join 的 Where条件
SQL需求是损益视图串资产负债视图 用Excel透视表模拟出来的结果就是 用SQL查询如下: 当Where条件是左边的视图的时候 select 损益视图.年 ,损益视图.年月 ,损益视图.期间 ,损益 ...
- CODEVS-1215迷宫
迷宫 原题:传送门 题目描述 Description 在N*N的迷宫内,“#”为墙,“.”为路,“s”为起点,“e”为终点,一共4个方向可以走.从左上角((0,0)“s”)位置处走到右下角((n-1, ...
- Django中的Session--实现登录
Django中的Session--实现登录 Django Session Session Session 是什么 Session保存在服务端的键值对. 为什么要有 Session Cookie 虽然 ...