java实现简单石头剪刀布游戏

 更新时间:2021年02月23日 14:10:27   作者:MTing•cat  
这篇文章主要介绍了java实现简单石头剪刀布游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了java实现简单石头剪刀布游戏的具体代码,供大家参考,具体内容如下

问题描述

Alice, Bob和Cindy一起玩猜拳的游戏。和两个人的猜拳类似,每一轮,他们会从石头、剪刀、布中各自选一个出拳,基本的胜负规则是石头赢剪刀、剪刀赢布、布赢石头。如果一轮中正好可以分成胜负两边,则负边的每个人要支付给胜边的每个人一块钱。如果无法分成胜负两边,则都不出钱。比如,如果Alice出石头,而Bob和Cindy都出布,则Alice要分支付Bob和Cindy一块钱。再如,如果Alice出石头, Bob出剪刀, Cindy出布,则都不出钱。他们三人共进行了n轮游戏,请问最后每个人净赚多少钱?即赚的钱减去支付的钱是多少?

代码

package Ring1270.pra.java01;
import java.util.Scanner;
/**
 * finger-guessing game: * n:number of games * A: Person A's money * B: Person B's money * C: Person C's money * 0: Stand for stone * 1: Stand for Scissor * 2: Stand for cloth * rule1: Two persons give the same result means game over * Rule2: The money add 1 everytime which win * Rule3:The money less 1 everytime which fail * */public class D_FingerGuessingGame {
  public static void main(String[] args) {
    int A = 0;
    int B = 0;
    int C = 0;
    Scanner scanner = new Scanner(System.in);
    System.out.printf("The number of game:");
    int n = scanner.nextInt();
    StringBuffer stringBuffer = new StringBuffer();
    for (int i = 0; i <= n; i++) {
      String s = scanner.nextLine();
      char[] D = s.toCharArray();
      for (int j = 0; j < D.length; j++) {
        //A and B success
 if (D[0] == D[1] && D[0] != D[2]) {
          if ('0' == D[0] && '1' == D[2]) {
            A++;
            B++;
            C -= 2;
          }
          else if ('1' == D[0] && '2' == D[2]) {
            A++;
            B++;
            C -= 2;
          }
          else if ('2' == D[0] && '0' == D[2]) {
            A++;
            B++;
            C -= 2;
          }else {
            A--;
            B--;
            C += 2;
          }
        }
        // A and C success
 if (D[0] == D[2] && D[0] != D[1]) {
          if ('0' == D[0] && '1' == D[1]) {
            A++;
            B -= 2;
            C++;
          }
          else if ('1' == D[0] && '2' == D[1]) {
            A++;
            B -= 2;
            C++;
          }
          else if ('2' == D[0] && '0' == D[1]) {
            A++;
            B -= 2;
            C++;
          }else {
            A--;
            B += 2;
            C--;
          }
        }
        // C and B success
 if (D[1] == D[2] && D[1] != D[0]) {
          if ('0' == D[1] && '1' == D[0]) {
            A -= 2;
            B++;
            C++;
          }
          else if ('1' == D[1] && '2' == D[0]) {
            A -= 2;
            B++;
            C++;
          }
          else if ('2' == D[1] && '0' == D[0]) {
            A -= 2;
            B++;
            C++;
          }
          else {
            A += 2;
            B--;
            C--;
          }
        }
        break;
      }
    }
    System.out.println(A);
    System.out.println(B);
    System.out.println(C);
  }
}

运行截图

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

相关文章

  • java结合keytool如何实现非对称签名和验证详解

    java结合keytool如何实现非对称签名和验证详解

    这篇文章主要给大家介绍了关于java结合keytool如何实现非对称签名和验证的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08
  • MyBatis如何使用selectKey返回主键的值

    MyBatis如何使用selectKey返回主键的值

    这篇文章主要介绍了MyBatis如何使用selectKey返回主键的值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Spring使用@Filter注解创建自定义过滤器

    Spring使用@Filter注解创建自定义过滤器

    Spring 中鲜为人知但非常有用的注解之一是 @Filter,它支持自定义过滤器,下面我们就来深入研究一下如何使用 Spring 的 @Filter 注解来创建自定义过滤器吧
    2023-11-11
  • Spring中容器创建的四种方式示例

    Spring中容器创建的四种方式示例

    这篇文章主要介绍了Spring中容器创建的四种方式示例,Spring容器是Spring框架的核心部分,它负责管理和组织应用程序中的对象,它提供了一种轻量级的、非侵入式的方式来实现对象的创建、依赖注入和生命周期管理,需要的朋友可以参考下
    2023-10-10
  • Java实现的微信公众号获取微信用户信息示例

    Java实现的微信公众号获取微信用户信息示例

    这篇文章主要介绍了Java实现的微信公众号获取微信用户信息,结合实例形式分析了Java微信公众号获取微信用户信息相关原理、步骤与操作注意事项,需要的朋友可以参考下
    2019-10-10
  • MyBatis Mapper中 @Select注解调用静态常量的问题分析

    MyBatis Mapper中 @Select注解调用静态常量的问题分析

    在Java编码中,我们通常会把这些数字或者字符串定义在常量类或者接口中,可以直接在mapper中也可以使用这些常量就比较好,这篇文章主要介绍了MyBatis Mapper中 @Select注解调用静态常量,需要的朋友可以参考下
    2023-06-06
  • java并发等待条件的实现原理详解

    java并发等待条件的实现原理详解

    这篇文章主要介绍了java并发等待条件的实现原理详解,还是比较不错的,这里分享给大家,供需要的朋友参考。
    2017-11-11
  • 基于Feign传输对象无法接收参数的问题

    基于Feign传输对象无法接收参数的问题

    这篇文章主要介绍了基于Feign传输对象无法接收参数的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • java使用RabbitMQ实现延迟消息示例

    java使用RabbitMQ实现延迟消息示例

    本文介绍了在分布式系统中,使用RabbitMQ实现延迟消息处理,其中详细阐述了RabbitMQ队列和交换机的配置、消息的发送与接收以及死信队列的处理,具有一定的参考价值,感兴趣的可以了解一下
    2024-10-10
  • Java ThreadLocal的详细解释

    Java ThreadLocal的详细解释

    这篇文章主要介绍了快速了解Java中ThreadLocal类,介绍了ThreadLocal 是什么,ThreadLocal的作用,ThreadLocal 原理等相关内容,具有一定参考价值,需要的朋友可以了解下。
    2021-11-11

最新评论