Java自制人机小游戏——————————剪刀、石头、布

package com.hello.test;

import java.util.Scanner;

public class TestGame {

    public static void main(String[] args)
    {
        Player p = new Player() ; //实例化玩家对象

        Game g = new Game(p) ;//实例化游戏对象

        g.startGame();//调用方法
    }

}

//游戏类
class  Game
{
    private Player p ;  //设置玩家

    public Game(Player p)
    {
        this.p =p ;
    }

    //制定游戏规则
    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;
    }

    public boolean panduan(String s)
    {
        if("剪刀".equals(s)||"布".equals(s)||"石头".equals(s)||"esc".equals(s))
        {
            return true ;
        }
        else
        {
            return false ;
        }
    }

    //游戏开始方法
    public void startGame()
    {
        System.out.println("开始游戏");

        System.out.println("请输入您的游戏昵称:");

        Scanner s = new Scanner(System.in) ;

        String sg = s.nextLine() ;

        p.setName(sg);

        p.setScore(100);

        System.out.println("恭喜您注册成功,您的初始积分为100");

        System.out.println(p.getName()+"进入游戏");

        while(true)
        {
            String[ ] array = new String[ ] {"剪刀","石头","布"} ;

            System.out.println("请输入剪刀、石头或布,结束请输入esc");

            Scanner sc = new Scanner(System.in) ; //提供输入窗口

            String s1 = sc.nextLine() ;

            if(!panduan(s1))
            {
                System.out.println("输入有误,重新输入!");
                continue ;
            }

            if(s1.equals("esc"))
            {
                break ;
            }

            int a = (int)(Math.random()*3) ; //随机0,1,2作为索引

            String s2 = array[a] ;

            int it = rule(s1,s2) ;

            if(it>0)
            {
                System.out.println("您出的是"+s1+"电脑出的是"+s2);
                System.out.println("恭喜"+p.getName()+"赢了,奖励10积分");
                p.setScore(p.getScore()+10);
            }
            else if(it<0)
            {
                System.out.println("您出的是"+s1+"电脑出的是"+s2);
                System.out.println("对不起"+p.getName()+"您输了,扣除10积分为");
                p.setScore(p.getScore()-10);
            }
            else
            {
                System.out.println("您出的是"+s1+"电脑出的是"+s2);
                System.out.println("打平了");
                p.setScore(p.getScore());
            }
            System.out.println(p);
        }
        System.out.println(p.getName()+"退出了游戏,当前积分为:"+p.getScore());
    }

}

//玩家类
class Player
{
    private String name ;         //玩家姓名

    private int score ;            //玩家积分

    //setting、getting
    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;
    }

    @Override
    public String toString() {
        return "玩家:" + name + ", 当前积分:" + score;
    }

}

时间: 2024-08-26 11:45:36

Java自制人机小游戏——————————剪刀、石头、布的相关文章

自制Unity小游戏TankHero-2D(3)开始玩起来

自制Unity小游戏TankHero-2D(3)开始玩起来 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的.仅为学习Unity之用.图片大部分是自己画的,少数是从网上搜来的.您可以到我的github页面(https://github.com/bitzhuwei/TankHero-2D)上得到工程源码. 本篇主要记录金币.按钮.坦克工厂.小地图等小部件,让整个场景初步成为一个可玩的游戏. 在本篇在制作过程中,

自制Unity小游戏TankHero-2D(5)声音+爆炸+场景切换+武器弹药

自制Unity小游戏TankHero-2D(5)声音+爆炸+场景切换+武器弹药 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的.仅为学习Unity之用.图片大部分是自己画的,少数是从网上搜来的.您可以到我的github页面(https://github.com/bitzhuwei/TankHero-2D)上得到工程源码. 本篇主要记录声音.场景切换.武器弹药等. 关于碰撞 先插一句.上一篇记录了Unity3

自制Unity小游戏TankHero-2D(4)关卡+小地图图标+碰撞条件分析

自制Unity小游戏TankHero-2D(4)关卡+小地图图标+碰撞条件分析 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的.仅为学习Unity之用.图片大部分是自己画的,少数是从网上搜来的.您可以到我的github页面(https://github.com/bitzhuwei/TankHero-2D)上得到工程源码. 本篇主要记录关卡解析器.小地图图标和对碰撞的原理的探索,需要耐心分析. 关卡解析器 在

软件设计之基于Java的连连看小游戏(一)——开题及游戏首页的制作

原本计划紧张忙碌的考试月在图书馆和实验室度过,结果突如其来为期两周的软件设计把课余时间几乎捆绑在了机房.软设没有太多知识上的要求,只要成品简洁美观.实用准确即可.考虑了很久决定要用Java swing做一个完善的连连看小游戏. (一)工作计划安排: 1.16周完成游戏界面的制作以及图形消除功能的实现. 2.17周完成连线的显示以及菜单功能的实现(退出.再来一局等功能),并进行界面及性能的优化. 今天第一天确定了具体的实施方案,决定了游戏界面要达到的效果,并开始着手制作游戏首页的界面. (二)目前

python小游戏,石头/剪子/布

#从控制台输入石头(1)/剪子(2)/布(3) player=int(input("玩家出拳 石头(1)/剪子(2)/布(3)")) #电脑随机出拳 computer computer == 1 print("玩家出的拳是%d - 电脑出的拳是%d" %(player , computer)) #玩家选择出拳%d player if (player == 1 and computer == 2)or(player == 2 and computer == 3)or(

自制Unity小游戏TankHero-2D(1)制作主角坦克

我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的.仅为学习Unity之用.图片大部分是自己画的,少数是从网上搜来的.您可以到我的github页面(https://github.com/bitzhuwei/TankHero-2D)上得到工程源码. 本篇主要记录制作主角坦克(TankHero)的一些重点. 2D游戏布局 如上图所示,红色矩形围起来的是主角坦克,白色的一圈是围墙,坦克和围墙在同一平面上.地面背景放到

自制Unity小游戏TankHero-2D(2)制作敌方坦克

我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的.仅为学习Unity之用.图片大部分是自己画的,少数是从网上搜来的.您可以到我的github页面(https://github.com/bitzhuwei/TankHero-2D)上得到工程源码. 本篇主要记录制作敌方坦克(Tank1)的一些重点. 原本制作敌方坦克是很简单的,只要把TankHero复制一份,改改贴图就差不多了.不过考虑到代码的简洁和可重用,本篇

Java贪吃蛇小游戏

一.团队课程设计博客链接 二.个人负责模块或任务说明 1)游戏主体 a.主界面 代码分析: ●Game类: (1)蛇移动 (2)添加身体 (3)加速 (4)是否撞墙 (5)蛇身缩短: (6)设置全局字体 (7)游戏结束 b.配置文件 (1)获取配置文件信息 (2)更新配置文件信息 ●Draw类:用于绘制蛇身和主界面 (1)绘制蛇身 (2)绘制食物 食物闪烁 (3)绘制分数 2)音效 Music类: 播放音乐 三.自己的代码提交记录截图 四.自己负责模块或任务详细说明 五.课程设计感想 原文地址:

Java猜拳小游戏(剪刀、石头、布)

import java.util.Random; import java.util.Scanner; public class caiquan { public static void main(String[] args) { Random r=new Random(); int diannao=r.nextInt(3)+1; Scanner s=new Scanner(System.in); System.out.println("=========猜拳小游戏=========")