Java控制台实现猜拳游戏小游戏

 更新时间:2019年11月30日 13:57:46   作者:Samoy  
这篇文章主要为大家详细介绍了Java控制台实现猜拳游戏小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

先来看一下效果图: 

首先我们创建一个Person类,这个类有name和score两个属性,有play这个方法,源代码如下:

package com.samoy;

public class Person {
  public String name;
  public int score;

  public Person(String name, int score) {
    this.name = name;
    this.score = score;
  }

  public String play(int i) {
    return i == 1?"剪刀":(i == 2?"石头":"布");
  }
}

接下来是主程序入口:

package com.samoy;

import java.util.Random;
import java.util.Scanner;

public class JavaTest {

  public static void main(String[] args) {

    int num = 0;

    System.out.println("*****************\n****猜拳, 开始****\n*****************");
    System.out.println("出拳规则:1.剪刀 2.石头 3.布");
    System.out.println("请选择对方角色<1:刘备 2:孙权 3:曹操>");

    Scanner scanner = new Scanner(System.in);

    //new一个对手
    Person opponent = new Person("",0);
    int nameIndex = scanner.nextInt();
    while (true){
      if (nameIndex == 1){
        opponent.name = "刘备";
        break;
      }else if (nameIndex == 2){
        opponent.name = "孙权";
        break;
      }else if (nameIndex == 3){
        opponent.name = "曹操";
        break;
      }else {
        System.out.println("输入错误!输入对方角色<1:刘备 2:孙权 3:曹操>");
        nameIndex = scanner.nextInt();
      }
    }

    System.out.println("请输入您的姓名:");
    Scanner scanner1 = new Scanner(System.in);
    Person self = new Person(scanner1.next(),0);
    System.out.println(self.name + " VS " +opponent.name);
    System.out.println("要开始游戏吗?<y/n>");

    Scanner scanner2 = new Scanner(System.in);
    String option = scanner2.next();
    while (option.equals("y")){
      System.out.println("请出拳:1、剪刀 2、石头 3、布");
      Scanner scanner3 = new Scanner(System.in);
      int select = scanner3.nextInt();
      String result1;
      if (select!=1&&select!=2&&select!=3){
        System.out.println("输入错误!请输入出拳规则:1、剪刀 2、石头 3、布");
        select = scanner3.nextInt();
      }
      result1 = self.play(select);
      System.out.println(self.name+"出:"+result1);
      String result2 = opponent.play(new Random().nextInt(3)+1);
      System.out.println(opponent.name+"出:"+result2);


      if (result1.equals(result2)){
        System.out.println("和局");
      }else if (result1.equals("剪刀")&&result2.equals("布")||result1.equals("石头")&&result2.equals("剪刀")||result1.equals("布")&&result2.equals("石头")){
        System.out.println("你赢了! "+self.name+"赢!");
        self.score += 1;
      }else {
        System.out.println("你输了! "+opponent.name+"赢!");
        opponent.score += 1;
      }
      num++;
      System.out.println("需要进行下一局吗?<y/n>");
      option = scanner2.next();
      if (option.equals("n")){
        System.out.println("=================");
        System.out.println("共进行"+num+"局\n"+self.name+"得分为"+self.score+","+opponent.name+"得分为"+opponent.score +"\n");
        if (self.score>opponent.score){
          System.out.println(self.name+"赢!"+self.name+"好棒!");
        }else if (self.score == opponent.score){
          System.out.println("平局!");
        }else {
          System.out.println(opponent.name+"赢!"+self.name+"笨蛋!");
        }
        System.out.println("感谢你的使用!");
      }else if (!option.equals("y")){
        System.out.println("输入错误,请重新输入!");
        System.out.println("需要进行下一局吗?<y/n>");
        option = scanner2.next();
      }
    }
  }
}

源代码下载:Java猜拳游戏

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

相关文章

  • Spring MVC利用Swagger2如何构建动态RESTful API详解

    Spring MVC利用Swagger2如何构建动态RESTful API详解

    这篇文章主要给大家介绍了关于在Spring MVC中利用Swagger2如何构建动态RESTful API的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧。
    2017-10-10
  • springboot 使用yml配置文件给静态变量赋值教程

    springboot 使用yml配置文件给静态变量赋值教程

    这篇文章主要介绍了springboot 使用yml配置文件给静态变量赋值教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 一步步教你搭建Scala开发环境(非常详细!)

    一步步教你搭建Scala开发环境(非常详细!)

    Scala是一门基于jvm的函数式的面向对象编程语言,拥有比java更加简洁的语法,下面这篇文章主要给大家介绍了关于搭建Scala开发环境的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • Jenkins 编译后使用SSH发布详解

    Jenkins 编译后使用SSH发布详解

    这篇文章主要介绍了Jenkins 编译后使用SSH发布详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Java经典排序算法之插入排序

    Java经典排序算法之插入排序

    这篇文章主要为大家详细介绍了Java经典排序算法之插入排序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • 使用json字符串插入节点或者覆盖节点

    使用json字符串插入节点或者覆盖节点

    这篇文章主要介绍了使用json字符串插入节点或者覆盖节点的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • java编程之基于SpringBoot框架实现扫码登录

    java编程之基于SpringBoot框架实现扫码登录

    本文将介绍基于SpringBoot + Vue + Android实现的扫码登录demo的总体思路,文中附含详细示例代码,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-09-09
  • Spring中@Repository注解的作用和用法以及和@Mapper的区别详析

    Spring中@Repository注解的作用和用法以及和@Mapper的区别详析

    这篇文章主要给大家介绍了关于Spring中@Repository注解的作用和用法以及和@Mapper的区别的相关资料,注解的作用是标识一个类为数据访问对象,并由Spring框架进行实例化和管理,需要的朋友可以参考下
    2023-09-09
  • 深入解析Java中的Class Loader类加载器

    深入解析Java中的Class Loader类加载器

    这篇文章主要介绍了Java中的类加载器,是Java入门学习中的基础知识,需要的朋友可以参考下
    2016-03-03
  • Java日常练习题,每天进步一点点(53)

    Java日常练习题,每天进步一点点(53)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-08-08

最新评论