java实现简单猜拳小游戏

 更新时间:2021年11月23日 11:39:22   作者:ღ᭄ꦿ幻墨如烟࿐  
这篇文章主要为大家详细介绍了java实现简单猜拳小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了java实现猜拳小游戏的具体代码,供大家参考,具体内容如下

User.java

import java.util.Scanner;
public class User {
    String name;
    int score;
    public int showFist(){
        System.out.println ("请出拳:1.剪刀\t2.石头\t3.布");
        Scanner input=new Scanner ( System.in );
        int choice=input.nextInt ();
        if(choice==1){
            System.out.println ("您出了剪刀");
        }else if(choice==2){
            System.out.println ("您出了石头");
        }else if (choice==3){
            System.out.println ("您出了布");
        }else {
            System.out.println ("输入有误!");
        }
        return choice;
    }
}

Computer.java

public class Computer {
    String name;
    int score;

    public int showFist () {
        int choice = (int) (Math.random () * 3) + 1;    //产生随机数
        if (choice == 1) {
            System.out.println (name +"出了剪刀" );
        } else if (choice == 2) {
            System.out.println (name +"出了石头" );
        } else if (choice == 3) {
            System.out.println (name +"您出了布" );
        } else {
            System.out.println ( "输入有误!" );
        }
        return choice;
    }
}

Game.java

import java.util.Scanner;

public class Game {
    User user;  //用户
    Computer computer;  //计算机
    int count;  //记录对战次数

    //初始化:设置自己的名字   对手的名字,积分0
    public void init(){
        System.out.println ("请输入自己的名字");
        Scanner input = new Scanner ( System.in );
        String name = input.next ();
        user=new User ();   //对象初始化
        user.name=name;
        user.score=0;
        System.out.println ("请选择你的对手:\n1.张三\t2.李四\t3.王五");
        int choice = input.nextInt ();
        computer=new Computer ();   //对象初始化
        computer.score=0;
        switch (choice){
            case 1:
                computer.name="张三";
            case 2:
                computer.name="李四";
            case 3:
                computer.name="王五";
                break;
            default:
                System.out.println ("输入有误!");
        }
        System.out.println ("你选择与TA对战:"+computer.name);
    }

    public void start() {
        init ();
        Scanner input=new Scanner ( System.in );
        String isContinue = null;
        do {
            int userFist = user.showFist ();              //人出拳
            int chomputerFist = computer.showFist ();     //计算机出拳
            calcResult ( userFist, chomputerFist );
            System.out.println ("是否继续?y(继续)/其他(结束)");
            isContinue=input.next ();
        }while ("y".equals ( isContinue ));
         showResult (user,computer);    //显示最终结果
    }
    //计算每一轮的结果
    public void calcResult(int userFist,int computerFist){
        //"1.剪刀\t2.石头\t3.布"
        if((userFist==1&&computerFist==3)||(userFist==2&&computerFist==1)||(userFist==3&&computerFist==2)){
            System.out.println ("您赢了");
            user.score++;
        }else if((userFist==3&&computerFist==1)||(userFist==1&&computerFist==2)||(userFist==2&&computerFist==3)){
            System.out.println ("您输了");
            computer.score++;
        }else {
            System.out.println ("您平局");
        }


    }
    //计算最终结果
    public void showResult(User user,Computer computer){
        System.out.println (user.name +"\t" +user.score );
        System.out.println (computer.name +"\t" +computer.score);
        if (user.score>computer.score){
            System.out.println ("恭喜,获得了最终的胜利");
        }else if (user.score<computer.score){
            System.out.println ("很遗憾你输了");
        }else {
            System.out.println ("最终平局...");
        }

    }

    public static void main ( String[] args ) {
        Game game = new Game ();
        game.start ();
    }
}

测试结果显示

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 浅谈Java关闭线程池shutdown和shutdownNow的区别

    浅谈Java关闭线程池shutdown和shutdownNow的区别

    本文主要介绍了Java关闭线程池shutdown和shutdownNow的区别,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • mybatisplus解决驼峰命名映射问题详解

    mybatisplus解决驼峰命名映射问题详解

    这篇文章主要介绍了mybatisplus解决驼峰命名映射问题详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • java数组排序示例(冒泡排序、快速排序、希尔排序、选择排序)

    java数组排序示例(冒泡排序、快速排序、希尔排序、选择排序)

    java中在运用数组进行排序功能时,一般有四种方法:快速排序法、冒泡法、选择排序法、插入排序法(希尔排序(Shell Sort)是插入排序的一种),下面是一些示例,需要的朋友可以参考下
    2014-03-03
  • Spring Security方法鉴权的实现

    Spring Security方法鉴权的实现

    在Spring Security中,主要有两种鉴权方式,一个是基于web请求的鉴权,一个是基于方法的鉴权,本文就来介绍一下Spring Security方法鉴权的实现,感兴趣的可以了解一下
    2023-12-12
  • Java获取文件的路径及常见问题解决方案

    Java获取文件的路径及常见问题解决方案

    这篇文章主要介绍了Java获取文件的路径及常见问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Springboot 接口需要接收参数类型是数组问题

    Springboot 接口需要接收参数类型是数组问题

    这篇文章主要介绍了Springboot 接口需要接收参数类型是数组问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Mybatis的parameterType造成线程阻塞问题分析

    Mybatis的parameterType造成线程阻塞问题分析

    这篇文章主要详细分析了Mybatis的parameterType造成线程阻塞问题,文中有详细的解决方法,及相关的代码示例,具有一定的参考价值,感兴趣的朋友可以借鉴阅读
    2023-06-06
  • Java 关于递归的调用机制精细解读

    Java 关于递归的调用机制精细解读

    关于递归是什么,简单的说: 递归就是方法自己调用自己,每次调用时 传入不同的变量.递归有助于编程者解决复杂的问题,同时可以让代码变得简洁
    2021-10-10
  • Spring WebFlux实现参数校验的示例代码

    Spring WebFlux实现参数校验的示例代码

    请求参数校验,在实际的应用中很常见,网上的文章大部分提供的使用注解的方式做参数校验。本文主要介绍 Spring Webflux Function Endpoint 使用 Spring Validation 来校验请求的参数。感兴趣的可以了解一下
    2021-08-08
  • MybatisPlus实现数据权限隔离的示例详解

    MybatisPlus实现数据权限隔离的示例详解

    Mybatis Plus对Mybatis做了无侵入的增强,非常的好用,今天就给大家介绍它的其中一个实用功能:数据权限插件,感兴趣的可以跟随小编一起了解下
    2024-04-04

最新评论