Game.java

package com.java;
import java.util.Scanner;
public class Game {   
    private Player player;   
    public Game(Player player){
        this.player=player;
    }   
        public void start(){
        System.out.println("开始游戏");
        System.out.println(player.getName()+"进入游戏,初始积分为:"+player.getScore());
        String[] arr=new String[]{"剪刀","石头","布"};
        Scanner sc=new Scanner(System.in);       
        while(true){
        System.out.println("请输入剪刀、石头、布其中个之一");
        String s1=sc.next();//玩家输入
        if(!filter(s1)){
            System.out.println("您输入的命令有误,请重新输入");
            continue;
        }
        if(s1.equals("exit")){
            break;
        }       
        int count=(int)(Math.random()*3);
        String s2=arr[count];
        int flag=rule(s1,s2);
        System.out.println("您出的是:"+s1+",系统出的是:"+s2);
        if(flag>0){
            System.out.println("恭喜"+player.getName()+"赢了,奖励10积分");
            player.setScore(player.getScore()+10);
        }else if(flag<0){
            System.out.println("对不起"+player.getName()+"输了,扣除10积分");
            player.setScore(player.getScore()-10);
        }else{
            System.out.println("打平了");
        }       
        System.out.println(player);
    }
    System.out.println(player.getName()+"退出游戏,当前积分为:"+player.getScore());
        }
    public boolean filter(String s){            
        if("剪刀".equals(s)||"石头".equals(s)
                ||"布".equals(s)||"exit".equals(s)){
            return true;}
        else{        return false;
                    }
        }
/**
 * 游戏规则
 * @return
 */
    public int rule(String s1,String s2){

if(s1.equals(s2)){
            return 0;
        }
        if(s1.equals("剪刀")){
            if(s2.equals("石头")){
                return -1;
            }
            if(s2.equals("布")){
                return 1;
            }
        }
        if(s1.equals("石头")){
            if(s2.equals("剪刀")){
                return 1;
            }
            if(s2.equals("布")){
                return -1;
            }
        }
        if(s1.equals("布")){
            if(s2.equals("剪刀")){
                return -1;
            }
            if(s2.equals("石头")){
                return 1;
            }       
           return 0;  
     
    }
        return 0;
    }  
}

Player.java

package com.java;

public class Player {
    
    private String name;//玩家姓名
    private int score;//积分
    
    public Player(String name, int score) {
        super();
        this.name = name;
        this.score = score;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getScore() {
        return score;
    }
    public void setScore(int score) {
        this.score = score;
    }
    public String toString(){
        
        return this.getName()+":"+this.getScore();
    }

}

Test.java

package com.java;

public class test {
    public static void main(String[] args){
    Player p=new Player("王**",100);
    Game g=new Game(p);
    g.start();
    }
}
这个小游戏和我上个写到的猜数字游戏核心思想一样都是用到了Math.random,这个可以说是其的加深应用。。。你们也可以试试看!

博主在分享个免费FQ软件

免费FQ软件

从零开始学java(小游戏 石头剪刀布)的更多相关文章

  1. 从零开始学 Java - Spring 集成 ActiveMQ 配置(一)

    你家小区下面有没有快递柜 近两年来,我们收取快递的方式好像变了,变得我们其实并不需要见到快递小哥也能拿到自己的快递了.对,我说的就是类似快递柜.菜鸟驿站这类的代收点的出现,把我们原来快递小哥必须拿着快 ...

  2. 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)

    硬盘和内存的作用是什么 硬盘的作用毫无疑问我们大家都清楚,不就是用来存储数据文件的么?如照片.视频.各种文档或等等,肯定也有你喜欢的某位岛国老师的动作片,这个时候无论我们电脑是否关机重启它们永远在那里 ...

  3. 从零开始学 Java - 利用 Nginx 负载均衡实现 Web 服务器更新不影响访问

    还记得那些美妙的夜晚吗 你洗洗打算看一个小电影就睡了,这个时候突然想起来今天晚上是服务器更新的日子,你要在凌晨时分去把最新的代码更新到服务器,以保证明天大家一觉醒来打开网站,发现昨天的 Bug 都不见 ...

  4. 寒假答辩作品:Java小游戏

    目录 java入门小游戏[test] 游戏界面 前言 (可直接跳到程序介绍) 前期入门小项目 前期收获 后期自创关卡 后续 java入门小游戏[test] 游戏界面 github地址: https:/ ...

  5. 从零开始学 Java - Spring 集成 Memcached 缓存配置(二)

    Memcached 客户端选择 上一篇文章 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)中我们讲到这篇要谈客户端的选择,在 Java 中一般常用的有三个: Memc ...

  6. 从零开始学 Java - 我放弃了 .NET ?

    这不是一篇引起战争的文章 毫无疑问,我之前是一名在微软温暖怀抱下干了近三年的 .NET 开发者,为什么要牛(sha)X一样去搞 Java 呢?因为我喜欢 iOS 阿!哈哈,开个玩笑.其实,开始学 Ja ...

  7. 从零开始学 Java - Spring 集成 ActiveMQ 配置(二)

    从上一篇开始说起 上一篇从零开始学 Java - Spring 集成 ActiveMQ 配置(一)文章中讲了我关于消息队列的思考过程,现在这一篇会讲到 ActivMQ 与 Spring 框架的整合配置 ...

  8. 从零开始学 Java - log4j 项目中的详细配置

    你还会用笔来写字么 我是不怎么会了,有时候老是拿起笔之后不知道这个字怎么写,这时候就会拿起手机去打出来:有时候还会写出来这个字之后越看越不像,这时候就开始怀疑自己的能力了:有时候写出来了一大堆字之后, ...

  9. 从零开始学 Java - Spring 支持 CORS 请求踩的坑

    谁没掉进过几个大坑 记得好久之前,总能时不时在某个地方看到一些标语,往往都是上面一个伟人的头像,然后不管是不是他说的话,下面总是有看起来很政治正确且没卵用的屁话,我活到目前为止,最令我笑的肚子痛得是下 ...

  10. 从零开始学 Java - Spring MVC 实现跨域资源 CORS 请求

    论职业的重要性 问:为什么所有家长都希望自己的孩子成为公务员? 答:体面.有权.有钱又悠闲. 问:为什么所有家长都希望自己的孩子成为律师或医生? 答:体面.有钱.有技能. 问:为什么所有家长都不怎么知 ...

随机推荐

  1. 我的VSTO之路(二):VSTO程序基本知识

    原文:我的VSTO之路(二):VSTO程序基本知识 开始之前,首先我介绍一下我的开发环境:VS2010 + Office 2010,是基于.Net framework 4.0和VSTO 4.0.以下的 ...

  2. hdu-4638-Group(树状数组)

    题意 找到区间里有多少组连续数字串 分析: (转)思路:显然,我们要使得value最大,就要尽量将连续的ID分在一组,所以问题转化为求一个区间中连续ID区间的个数.我们从左往右扫描,依次考虑右端点为i ...

  3. weblogic启动报错之未修改hosts产生错误

    报错如下: Enter username to boot WebLogic server:weblogic Enter password to boot WebLogic server: <Ju ...

  4. FFT(快速傅里叶变换):HDU 4609 3-idiots

    3-idiots Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  5. UVa11248 Frequency Hopping(最大流+最小割)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=33206 [思路] 最大流最小割. 可以确定的是如果不可行需要修改的 ...

  6. 软工UML学习札记

    UML模型由:事物.关系和图组成 (1)类(class)── 类用带有类名.属性和操作的矩形框来表示. (2)主动类(active class)── 主动类的实例应具有一个或多个进程或线程,能够启动控 ...

  7. 堆排序中建堆过程时间复杂度O(n)怎么来的?

    首先这个循环是从i = headsize/2 -> 1,也就是说这是一个bottom-up的建堆.于是,有1/2的元素向下比较了一次,有1/4的向下比较了两次,1/8的,向下比较了3次,.... ...

  8. 阿基米德项目ALS矩阵分解算法应用案例

    转自:https://github.com/ceys/jdml/wiki/ALS 阿基米德项目ALS矩阵分解算法应用案例 编写人:ceys/youyis 最后更新时间:2014.5.12 一.算法描述 ...

  9. android studio c++ 自动补全

    这两天弄起来了Android ndk,可这东西的配置实在是个问题.对于Eclipse可以通过makefile进行编译,也比较成熟.但是对Android studio来说就蛋疼了,官方是想通过gradl ...

  10. wp-content-index文章目录插件使用效果调整

    安装好wp-content-index后进行如下设置: 其中标红处必须标红,用于检索锚点.在文章页面添加如下js代码: $(function() { var wpindex = $("#co ...