• 从零开始学java(小游戏 石头剪刀布)


    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,这个可以说是其的加深应用。。。你们也可以试试看!

    博主在分享个免费翻墙软件

    欢迎访问我的个人博客--付博瀚的个人博客   波涛浩瀚

  • 相关阅读:
    数独高阶技巧入门之六——ALS
    数独高阶技巧入门之七——AIC & Nice Loop
    数独-链的理解顺序
    数独高阶技巧入门之三——Fish
    数独·唯一性技巧(Uniqueness)-2
    游戏剧本从入门到放弃
    Electron和NW.js入门笔记
    Spring boot Access-Control-Allow-Origin 问题解决
    Materialize -- 基于Material Design的主流前端响应式框架
    Ubuntu 安装 nvm
  • 原文地址:https://www.cnblogs.com/bohanfu/p/5693016.html
Copyright © 2020-2023  润新知