自己写了一个JAVA的简单扑克牌小游戏
记录一下,自学两个星期JAVA写了个简单的程序。
但是对List和Set掌握还是不是很好,希望大神能指导一下程序如何简化。
//Game 主体
package com.Garry;
import java.util.Scanner;
public class Game {
//创建玩家;
public void CreatePlayer(){
Scanner sr=new Scanner(System.in);
Player player1 = new Player(null);
player1.player_name=sr.next();
//将player1添加到Player中;
Player p = new Player(player1.player_name);
System.out.println("~~~~~~欢迎 "+player1.player_name+"~~~~~~~~~");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("欢迎来到Garry的扑克牌小游戏!");
System.out.println("游戏规则如下: ");
System.out.println("扑克牌四种花色,去除大小王,双方玩家轮流随机获得牌,最终通过比较玩家手中最大牌判断胜负。");
System.out.println("注:若双方玩家点数一致,则按照花色:黑桃>梅花>红心>方块判断胜负。");
System.out.println("====================开始游戏======================");
System.out.println("请创建玩家1,输入玩家姓名:");
Game player_1=new Game();
player_1.CreatePlayer();
System.out.println("请创建玩家2,输入玩家姓名:");
Game player_2=new Game();
player_2.CreatePlayer();
System.out.println("正在准备扑克牌~~~洗牌中------------------");
System.out.println("洗牌完毕,现在开始发牌");
PokerForPlayer p=new PokerForPlayer();
String p1_card1=p.addPoker(); // Player1_card1;
String p2_card1=p.addPoker();
String p1_card2=p.addPoker(); // Player1_card2;
String p2_card2=p.addPoker();
//发牌过程中牌不能重复;
System.out.println("----------------发牌结束。开始游戏-----------");
System.out.println("玩家1的卡片有:"+p1_card1+","+p1_card2);
System.out.println("玩家2的卡片有:"+p2_card1+","+p2_card2);
String max_1 =p.Max_card(p1_card1, p1_card2);
System.out.println("玩家1最大的牌是:"+max_1);
String max_2 =p.Max_card(p2_card1, p2_card2);
System.out.println("玩家2最大的牌是:"+max_2);
System.out.println("****************双方开始比较*****************");
p.Winner(max_1, max_2);
System.out.println("游戏结束啦!");
}
}
//保存玩家类
package com.Garry;
import java.util.HashSet;
import java.util.Set;
public class Player {
public String player_name; //玩家昵称
public Set<Poker> pokers; //玩家拥有的卡片; 卡片不重复,用HashSet即可。
public Player(String name){
this.player_name=name;
this.pokers=new HashSet<Poker>();
}
}
package com.Garry;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
//发牌给玩家
public class PokerForPlayer {
public List<Poker> PokerToPlayer;
public PokerForPlayer(){
//初始化PokerToPlayer
this.PokerToPlayer=new ArrayList<Poker>();
}
//随机添加一张牌给玩家;
public String addPoker(){
Random random = new Random();
Poker p_card = new Poker(null);
String card= p_card.Pokersuit[random.nextInt(53)];
Poker pcard = new Poker(card);
PokerToPlayer.add(pcard);
//牌不能重复,取出以后要避免; HashSet();
return card;
}
//输出玩家的卡片
public void DesplayCards(){
PokerForPlayer p =new PokerForPlayer();
System.out.println(p.addPoker());
}
//比较玩家手中的最大牌;
public String Max_card(String card_1, String card_2){
/**
* 1.优先比较数字,大的胜利,
* 2.数字一样比较花色,♠>♣>♥>♦
*/
char [] poker1 = card_1.toCharArray();
char [] poker2 = card_2.toCharArray();
if(poker1[2] == poker2[2])
{
//数字一样比较花色;
if(poker1[0]=='黑')
return card_1;
else if(poker1[0]=='梅' && poker2[0]!='黑' && poker2[0]!='梅')
return card_1;
else if(poker1[0]=='红'&& poker2[0]=='方')
return card_1;
else if(poker1[0]=='方' && poker2[0]!='方')
return card_2;
else
return card_2;
}
if(poker1[2] > poker2[2])
return card_1;
if(poker1[2] < poker2[2])
return card_2;
else
return null;
}
//Win
public void Winner(String maxcard1,String maxcard2){
String winner = null;
PokerForPlayer pfp = new PokerForPlayer();
winner = pfp.Max_card(maxcard1, maxcard2);
if( winner.equals(maxcard1))
System.out.println("玩家1获胜");
else
System.out.println("玩家2获胜");
}
}
自己写了一个JAVA的简单扑克牌小游戏相关推荐
- java简单通讯录的实现02person类_用java实现简单的小游戏(你一定玩过)
用java实现简单的小游戏(你一定玩过) 对于java初学者来说,通过一些学习小游戏来对swing学习以及对java基础的学习是一个好的方法,同时也给学习带来了很多的乐趣,接下来就给大家分享一个jav ...
- java实现简单窗体小游戏----球球大作战
java实现简单窗体小游戏----球球大作战 需求分析 1.分析小球的属性: 坐标.大小.颜色.方向.速度 2.抽象类:Ball 设计类:BallMain-创建窗体 BallJPanel- ...
- main java game,playgame 一个JAVA编写的飞行小游戏,有基本完整的 框架,适合初学者参照学习 Other s 其他 238万源代码下载- www.pudn.com...
文件名称: playgame下载 收藏√ [ 5 4 3 2 1 ] 开发工具: Java 文件大小: 7050 KB 上传时间: 2013-06-06 下载次数: 3 提 供 者: Lyq ...
- 【lvgl游戏开发】用lvgl写了一个数字对拼图益智小游戏
文章目录 游戏说明 实现原理 演示效果 实现代码 游戏说明 单击方格用于显示数字.匹配两个数字,方格将显示从而显示图像. 实现原理 // TODO 演示效果 [lvgl游戏开发]用lvgl写了一个数字 ...
- 一个Java练习的潜艇小游戏
首先是主方法里定义的窗口(这些都是固定的格式,不会的也没什么事,直接Ctrl+c+v就行,基本上看一下数据都能看的懂) 写一个超类,超类里需要有潜艇,深水炸弹,水雷和战舰的宽,高,以及出场时的x,y坐 ...
- java实现简单窗口小游戏“扫雷”
原创:享学课堂讲师 转载请声明出处! 前言 忘记是从何处看到过关于扫雷小程序的文章,所以这次也就跟着做一下.其实很简单的,如果有java入门的同学也可以尝试一下自己做这种java小程序.几行代码做几遍 ...
- Java语言编写扑克牌小游戏
2.0版本 此次代码添加加了抛出异常在这里插入代码片的方法 package Java.demoTest01;public class Poker {private String point;priva ...
- java实现简单RPG小游戏的角色创建
几乎所有的RPG游戏(一种源自<龙与地下城>的游戏类型)在进入游戏时都会让用户自己来创建自己喜欢的角色. 基本要求:本题目要求的游戏角色应有以下属性:名字.性别.种族.职业.力量.敏捷.体 ...
- java实现简单扫雷小游戏
本文实例为大家分享了java实现扫雷游戏的具体代码,供大家参考,具体内容如下 import java.awt.BorderLayout; import java.awt.Color; import j ...
最新文章
- 使用PyTorch进行情侣幸福度测试指南
- 逆向而行—ASP的O/R MAPPING 使用解释
- 如何在网站建设时正确设置符合SEO优化的元素?
- openGL第四讲——像素格式管理
- Transformer性能优化:运算和显存
- 初识面向对象(理论1)
- 2021牛客第一场H.Hash Function—FFT求差值的卷
- 整数规划matlab实例,整数规划matlab
- 新鲜出炉 | 临床基因组学数据分析实战开课啦!!!
- 微信内测“群直播”;小米发布第三代屏下相机技术;马斯克宣布脑机接口重大突破 | 极客头条...
- 牛客练习赛20:A. 礼物(组合数学/小球与盒子问题)
- Tomcat运行原理
- 联想y470上三代cpu_联想Y470笔记本i3处理器能换i5或者i7处理器嘛?
- java 修改request中的参数_springcloud 中 zuul 修改请求参数信息的方法
- JAVA音视频解决方案----开源jtt1078源码与沟通群
- 计算机慢的解决方法,几种电脑变慢的解决方法
- 深度优先搜索(DFS) + DFS的应用:字符串的排列问题
- Android Vendor Test Suite (VTS) 的概念、作用及测试方法
- 计算机方向论文选题,初中计算机方向论文选题 初中计算机论文题目如何取
- 最大子段和之M子段和
热门文章
- 一招解决GitHub访问慢的情况
- DHCP静态绑定和ARP静态绑定
- Adavanced Installer 用户自定义行为——卸载时删除残留日志文件
- 【VS】Supercharger正确使用教程
- 聚丙烯酸叔丁酯修饰乳清白蛋白/肌白蛋白/豆清白蛋白/蓖麻蛋白/豌豆白蛋白1b ( PA1b)纳米粒
- [转载]Elsevier上发表论文的若干要求
- 投票作弊程序制作思路
- IDea中更改安卓虚拟机的安装位置
- 漫画 | Linux之父:财务自由以后,我失眠了!
- [附源码]计算机毕业设计springboot南通大学福利发放管理系统