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. C#技术分享【PDF转换成图片——13种方案】(2013-07-25重新整理)

    原文:C#技术分享[PDF转换成图片--13种方案](2013-07-25重新整理) 重要说明:本博已迁移到 石佳劼的博客,有疑问请到 文章新地址 留言!!! 写在最前面:为了节约大家时间,撸主把最常 ...

  2. java根据本地Ip获取mac地址

    import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; impo ...

  3. ikely()与unlikely() 都等同于if, 此处只是做编译优化

    ikely()与unlikely()在2.6内核中,随处可见,那为什么要用它们?它们之间有什么区别呢? 首先明确: if (likely(value))等价于if (value)if (likely( ...

  4. HDU 5501 背包问题

    需要按照B/C的值从大到小排序. #include<cstdio> #include<cstring> #include<iostream> #include< ...

  5. 【模拟】NEERC15 E Easy Problemset (2015-2016 ACM-ICPC)(Codeforces GYM 100851)

    题目链接: http://codeforces.com/gym/100851 题目大意: N个人,每个人有pi个物品,每个物品价值为0~49.每次从1~n顺序选当前这个人的物品,如果这个物品的价值&g ...

  6. cache的工作原理

    http://www.360doc.com/content/11/0307/21/3791508_99049437.shtml TLB(Translation Lookaside Buffer,也称快 ...

  7. HDOJ(HDU) 2113 Secret Number(遍历数字位数的每个数字)

    Problem Description 有一天, KIKI 收到一张奇怪的信, 信上要KIKI 计算出给定数各个位上数字为偶数的和. eg. 5548 结果为12 , 等于 4 + 8 KIKI 很苦 ...

  8. bzoj 1264 [AHOI2006]基因匹配Match(DP+树状数组)

    1264: [AHOI2006]基因匹配Match Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 793  Solved: 503[Submit][S ...

  9. 《Mathematical Olympiad——数论》——整除

    数论这个东西吧,虽说也是高中IMOer玩的数学游戏,颇具美学性的证明比较多.就目前所知,它在算法里是一些加密技术的基础,不多言,开始具体题目的分析. 问题一:已知数列{an},且a0 = 2 , a1 ...

  10. Java实现人民币大写代码解析

    想要实现人民币大写,在发票等场景中使用?? 1234.56显示为:壹仟贰佰叁拾肆元伍角陆分,那就往下看看吧! 本程序可以实现 0 到 9999 9999 9999.994 以内的人民币大写转换,精确到 ...