记录一下,自学两个星期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的简单扑克牌小游戏相关推荐

  1. java简单通讯录的实现02person类_用java实现简单的小游戏(你一定玩过)

    用java实现简单的小游戏(你一定玩过) 对于java初学者来说,通过一些学习小游戏来对swing学习以及对java基础的学习是一个好的方法,同时也给学习带来了很多的乐趣,接下来就给大家分享一个jav ...

  2. java实现简单窗体小游戏----球球大作战

    java实现简单窗体小游戏----球球大作战 需求分析 1.分析小球的属性: ​ 坐标.大小.颜色.方向.速度 2.抽象类:Ball ​ 设计类:BallMain-创建窗体 ​ BallJPanel- ...

  3. 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 ...

  4. 【lvgl游戏开发】用lvgl写了一个数字对拼图益智小游戏

    文章目录 游戏说明 实现原理 演示效果 实现代码 游戏说明 单击方格用于显示数字.匹配两个数字,方格将显示从而显示图像. 实现原理 // TODO 演示效果 [lvgl游戏开发]用lvgl写了一个数字 ...

  5. 一个Java练习的潜艇小游戏

    首先是主方法里定义的窗口(这些都是固定的格式,不会的也没什么事,直接Ctrl+c+v就行,基本上看一下数据都能看的懂) 写一个超类,超类里需要有潜艇,深水炸弹,水雷和战舰的宽,高,以及出场时的x,y坐 ...

  6. java实现简单窗口小游戏“扫雷”

    原创:享学课堂讲师 转载请声明出处! 前言 忘记是从何处看到过关于扫雷小程序的文章,所以这次也就跟着做一下.其实很简单的,如果有java入门的同学也可以尝试一下自己做这种java小程序.几行代码做几遍 ...

  7. Java语言编写扑克牌小游戏

    2.0版本 此次代码添加加了抛出异常在这里插入代码片的方法 package Java.demoTest01;public class Poker {private String point;priva ...

  8. java实现简单RPG小游戏的角色创建

    几乎所有的RPG游戏(一种源自<龙与地下城>的游戏类型)在进入游戏时都会让用户自己来创建自己喜欢的角色. 基本要求:本题目要求的游戏角色应有以下属性:名字.性别.种族.职业.力量.敏捷.体 ...

  9. java实现简单扫雷小游戏

    本文实例为大家分享了java实现扫雷游戏的具体代码,供大家参考,具体内容如下 import java.awt.BorderLayout; import java.awt.Color; import j ...

最新文章

  1. 使用PyTorch进行情侣幸福度测试指南
  2. 逆向而行—ASP的O/R MAPPING 使用解释
  3. 如何在网站建设时正确设置符合SEO优化的元素?
  4. openGL第四讲——像素格式管理
  5. Transformer性能优化:运算和显存
  6. 初识面向对象(理论1)
  7. 2021牛客第一场H.Hash Function—FFT求差值的卷
  8. 整数规划matlab实例,整数规划matlab
  9. 新鲜出炉 | 临床基因组学数据分析实战开课啦!!!
  10. 微信内测“群直播”;小米发布第三代屏下相机技术;马斯克宣布脑机接口重大突破 | 极客头条...
  11. 牛客练习赛20:A. 礼物(组合数学/小球与盒子问题)
  12. Tomcat运行原理
  13. 联想y470上三代cpu_联想Y470笔记本i3处理器能换i5或者i7处理器嘛?
  14. java 修改request中的参数_springcloud 中 zuul 修改请求参数信息的方法
  15. JAVA音视频解决方案----开源jtt1078源码与沟通群
  16. 计算机慢的解决方法,几种电脑变慢的解决方法
  17. 深度优先搜索(DFS) + DFS的应用:字符串的排列问题
  18. Android Vendor Test Suite (VTS) 的概念、作用及测试方法
  19. 计算机方向论文选题,初中计算机方向论文选题 初中计算机论文题目如何取
  20. 最大子段和之M子段和

热门文章

  1. 一招解决GitHub访问慢的情况
  2. DHCP静态绑定和ARP静态绑定
  3. Adavanced Installer 用户自定义行为——卸载时删除残留日志文件
  4. 【VS】Supercharger正确使用教程
  5. 聚丙烯酸叔丁酯修饰乳清白蛋白/肌白蛋白/豆清白蛋白/蓖麻蛋白/豌豆白蛋白1b ( PA1b)纳米粒
  6. [转载]Elsevier上发表论文的若干要求
  7. 投票作弊程序制作思路
  8. IDea中更改安卓虚拟机的安装位置
  9. 漫画 | Linux之父:财务自由以后,我失眠了!
  10. [附源码]计算机毕业设计springboot南通大学福利发放管理系统