热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

小游戏猜踏板猜拳小游戏(while死循环+switch语句)

本文主要介绍关于java,intellij-idea的知识点,对【猜拳小游戏(while死循环+switch语句)】和【小游戏猜踏板】有兴趣的朋友可以看下由【湖畔里】投稿的技术文章,希望该技术和经验能

本文主要介绍关于java,intellij-idea的知识点,对【猜拳小游戏(while死循环+switch语句)】和【小游戏猜踏板】有兴趣的朋友可以看下由【湖畔里】投稿的技术文章,希望该技术和经验能帮到你解决你所遇的【java初学】相关技术问题。

小游戏猜踏板

问题:

猜拳小游戏,玩家出拳通过键盘录入的方式实现(0表示石头 1表示剪刀 2表示布)

电脑通过随机数的方式实现(0表示石头 1表示剪刀 2表示布)

当玩家或者电脑胜利三局,游戏结束,输出谁是赢家

思考:

怎样的条件算是获胜?

1.键盘录入可能会出错,所以做一个死循环 控制键盘录入正确为止 死循环才结束

2.电脑随机数出拳,r.nextInt(3);

3.int playerCount=0;? ? ? ?//玩家赢了的次数
? ?int computerCount=0;?//电脑赢了的次数
? ?用死循环包裹人和电脑猜拳的过程

4.

电脑 ?- ?人

石头0 ? 石头0 ? 平局 ? ? ?结果 0-0=0
剪刀1 ? 剪刀1 ? 平局 ? ? ?结果 0-0=0
布2 ? ? 布2 ? ? ? 平局 ? ? ?结果 0-0=0
?? ??? ?
石头0 ?剪刀1 ? 电脑赢 ? ?结果 0-1=-1
剪刀1 ?布2 ? ? ?电脑赢 ? ?结果 1-2=-1
布2 ? ? 石头0 ? 电脑赢 ? ?结果 2-0=2

石头0 ?布2 ? ? ?人赢 ? ? ? 结果 0-2=-2?? ??? ?
剪刀1 ?石头0 ? 人赢 ? ? ? 结果 1-0=1
布2 ? ?剪刀1 ? ?人赢 ? ? ? 结果 2-1=1?? ??? ?

代码如下:

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

public class A {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Random r = new Random();
        int playerCount = 0;
        int computerCount = 0;
        while (true) {
            System.out.println("猜拳开始!\n请输入一个数,0表示石头 1表示剪刀 2表示布");
            int playerNumber = sc.nextInt();
            if (playerNumber <0 || playerNumber > 2) {
                System.out.println("输入有误,请从新输入");
            } else {
                switch (playerNumber) {
                    case 0:
                        System.out.println("玩家出石头");
                        break;
                    case 1:
                        System.out.println("玩家出剪刀");
                        break;
                    case 2:
                        System.out.println("玩家出布");
                        break;
                }
                int computerNumber = r.nextInt(3);
                switch (computerNumber) {
                    case 0:
                        System.out.println("电脑出石头");
                        break;
                    case 1:
                        System.out.println("电脑出剪刀");
                        break;
                    case 2:
                        System.out.println("电脑出布");
                        break;
                }
                // 定义result 为电脑出拳数字减去玩家出拳数字,判断输赢,
                int result = computerNumber - playerNumber;
                if (result == 0) {
                    System.out.println("本局平局");
                } else if (result == -1 || result == 2) {
                    System.out.println("本局电脑获胜");
                    computerCount++;
                } else {
                    System.out.println("本局玩家获胜");
                    playerCount++;
                }
                System.out.println("目前比分 电脑VS玩家");
                System.out.println(computerCount + ":" + playerCount);
                // 当任意一方赢得次数达到三次,就最终获胜
                if (computerCount == 3) {
                    System.out.println("比赛结束");
                    System.out.println("最终电脑获胜");
                    break;
                } else if (playerCount == 3) {
                    System.out.println("比赛结束");
                    System.out.println("最终玩家获胜");
                    break;
                }
            }
        }
    }
}

本文《猜拳小游戏(while死循环+switch语句)》版权归湖畔里所有,引用猜拳小游戏(while死循环+switch语句)需遵循CC 4.0 BY-SA版权协议。


推荐阅读
  • 本文将详细介绍如何使用Java编程语言生成指定数量的不重复随机数,包括具体的实现方法和代码示例。适合初学者和有一定基础的开发者参考。 ... [详细]
  • 本文介绍了如何使用Java编程语言实现凯撒密码的加密与解密功能。凯撒密码是一种替换式密码,通过将字母表中的每个字母向前或向后移动固定数量的位置来实现加密。 ... [详细]
  • importjava.io.*;importjava.util.*;publicclass五子棋游戏{staticintm1;staticintn1;staticfinalintS ... [详细]
  • Java实现实时更新的日期与时间显示
    本文介绍了如何使用Java编程语言来创建一个能够实时更新显示系统当前日期和时间的小程序。通过使用Swing库中的组件和定时器功能,可以实现界面友好且功能强大的时间显示应用。 ... [详细]
  • 第1章选择流程控制语句1.1顺序结构的基本使用1.1.1顺序结构概述是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行 ... [详细]
  • 本文介绍了一个将 Java 实体对象转换为 Map 的工具类,通过反射机制获取实体类的字段并将其值映射到 Map 中,适用于需要将对象数据结构化处理的场景。 ... [详细]
  • 本文介绍了如何利用Java编程语言中的正则表达式来验证字符串中的数字是否符合中国三大运营商(中国电信、中国联通、中国移动)的手机号码格式。文章提供了详细的代码示例和解析。 ... [详细]
  • SpringBoot底层注解用法及原理
    2.1、组件添加1、Configuration基本使用Full模式与Lite模式示例最佳实战配置类组件之间无依赖关系用Lite模式加速容器启动过程,减少判断配置类组 ... [详细]
  • 本文探讨了Android系统中联系人数据库的设计,特别是AbstractContactsProvider类的作用与实现。文章提供了对源代码的详细分析,并解释了该类如何支持跨数据库操作及事务处理。源代码可从官方Android网站下载。 ... [详细]
  • 本文介绍了进程的基本概念及其在操作系统中的重要性,探讨了进程与程序的区别,以及如何通过多进程实现并发和并行。文章还详细讲解了Python中的multiprocessing模块,包括Process类的使用方法、进程间的同步与异步调用、阻塞与非阻塞操作,并通过实例演示了进程池的应用。 ... [详细]
  • 本文提供了多个关键点来帮助开发者提高Java编程能力,包括代码规范、性能优化和最佳实践等方面,旨在指导读者成为更加优秀的Java程序员。 ... [详细]
  • 本文探讨了在Python中多线程与多进程的性能差异,特别是在处理CPU密集型任务和I/O密集型任务时的表现。由于全局解释器锁(GIL)的存在,多线程在利用多核CPU方面表现不佳,而多进程则能有效利用多核资源。 ... [详细]
  • 深入理解Java字节码:方法调用详解
    本文详细介绍了Java字节码中的方法调用机制,通过具体示例解析了字节码如何处理方法调用及其参数传递。文章由Mahmoud Anouti撰写,原文链接:https://dzone.com/articles/introduction-to-java-bytecode ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 高级缩放示例.就像谷歌地图一样.它仅缩放图块,但不缩放整个图像.因此,缩放的瓷砖占据了恒定的记忆,并且不会为大型缩放图像调整大小的图像.对于简化的缩放示例lookhere.在Win ... [详细]
author-avatar
阿离说你是宝贝
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有