java实现猜字母游戏
作者:复杂先森* 发布时间:2021-11-19 22:25:28
标签:java,猜字母
本文实例为大家分享了java实现猜字母游戏的具体代码,供大家参考,具体内容如下
案例需求:
StepOne:
系统随机生成一组随机的字符数组(不重复)
StepTwo:
控制台输入一组字符串与系统生成的字符数组进行对比
StepThree:
若控制台输入与系统随机生成的不符则提示字符正确个数及对位正确个数
StepFour:
若控制台输入与系统随机生成的完全一致则提示“恭喜你猜对了,游戏结束”程序退出。若不完全一致则需要一直猜
StepFive:
若控制台输入的是EXIT则提示“游戏终止”程序退出
StepSix:
若控制台输入的数组长度不符则提示“年轻人不讲武德,长度不符,耗子尾汁!”
具体代码实现:
package game;
import java.util.Scanner;
public class GuessLetters {
/**
* 将随机生成一个字母数组的逻辑封装成一个方法
**/
public static char[] Nonce(){
char[] random=new char[5];//不重复的随机字母数组,长度5
// 存储可能出现的字母的char数组(库)
char[] warehouse={
'A','B','C','D','E',
'F','G','H','I','J',
'K','L','M','N','O',
'P','Q','R','S','T',
'U','V','W','X','Y',
'Z'
};
// 创建一个boolean类型的变量(长度是warehouse的长度)来记录使用过的warehouse数组的元素
boolean[] warehouseOne=new boolean[warehouse.length];
for (int i=0;i<random.length;i++){//遍历random数组中的每个元素
int index;
do {//随机warehouse长度的下标
// 创建一个index变量随机生成warehouse数组长度的下标
index=(int)(Math.random()*warehouse.length);
}while (warehouseOne[index]==true);
// 将warehouse[index]中的元素赋值给random[i]元素
random[i]=warehouse[index];
// 在boolean类型的warehouseOne数组中对应的index元素改为true(以做标记)
warehouseOne[index]=true;
}
return random;
}
/**
*将(判断系统随机的char类型字母数组和用户输入的字符串对比,并输出字母正确个数和对位正确个数)的逻辑封装成方法
**/
public static int[] contrast(char[] random, char[] input){
int[] result=new int[2];//result[0]字母对个数,result[1]对位对个数
for (int i=0;i<input.length;i++){//遍历input数组
for (int j=0;j<random.length;j++){//遍历random数组
if (input[i]==random[j]){//对比字符对对错
result[0]++;//字符正确个数+1
if (i==j){//对比对位对错
result[1]++;
}
break;//当字符对时 无需继续对比后面的元素,跳出循环。
}
}
}
return result;
}
/*主方法(main)中整理且运行封装好的方法*/
public static void main(String[] args) {
// 调用random方法,来产生一个随机的char字符数组
char[] chs=Nonce();
System.out.println(chs);//作弊
// 控制台输入
Scanner sc = new Scanner(System.in);
// 创建一个变量result数组存储字符正确,对位正确个数
// 错误次数
int mistake=0;
do {//需求当没有猜对时,一直猜
// 友好提示
System.out.println("请输入五个不重复的字母");
// 接受输入的字符串inputOne将inputOne转换成大写
String inputOne = sc.next().toUpperCase();
// 需求:控制台输入EXIT,则程序退出
if ("EXIT".equals(inputOne)){//判断接收的字符是否是EXIT
break;//跳出循环,程序结束
}
// 将字符串类型数组转换成char类型数组
char[] input = inputOne.toCharArray();
// 需求:控制台如若输入的字符长度与随机字符长度不符则友好提示
if (result[2]!=chs.length){//判断长度是否一致
// 调用对比逻辑的方法contrast
int[] result = contrast(chs, input);
// 需求:如果猜对了,则友好提示,且程序终止
if (result[1]==chs.length) {//判断对位正确个数是否与随机的数组长度一致
// 友好提示
System.out.println("恭喜你猜对了,游戏结束!");
break;//条数循环,程序结束
}else{
// 输出结果(字符正确个数,对位正确个数)
System.out.println("字符正确个数:" + result[0] + "\t对位正确个数:" + result[1]+"\n继续猜");
// 需求:记录错误次数
mistake++;//错误次数+1
}
}else{
// 友好提示
System.out.println("年轻人不讲武德,长度不符,耗子尾汁");
}
}while (true);
}
}
来源:https://blog.csdn.net/qq_54177999/article/details/114262107


猜你喜欢
- 1、来源random.nextInt() 为 java.util.Random类中的方法; Math.random() 为 java.lan
- 1.application.ymlserver: port: 8184spring: application: &n
- 报错之一: Version 1.4.2_03 of the JVM not suitable for this product.Versio
- 前置知识Kotlin协程不是什么空中阁楼,Kotlin源代码会被编译成class字节码文件,最终会运行到虚拟机中。所以从本质上讲,Kotli
- 思路如下:创建一个类,通过extends使其继承窗体类JFrame;创建一个JFrame对象,使用JFrame类的setVisible()方
- Java是一门天然的面向对象的语言。而所有我们手动创造出来的类,都继承于同一个类,即Object类。可以看一下Object类的结构nativ
- 目录栈溢出(虚拟机栈和本地方法栈)产生原因解决思路堆溢出产生原因解决思路方法区和运行时常量池溢出产生原因解决思路本机直接内存溢出产生原因解决
- 本人一直喜欢左手使用鼠标,但有时候同事会临时进行操作,还得在控制面板里进行更改,比较不便,何不编写一个控制台程序,双击一下即可切换左右键 代
- 在对接第三方支付的时候,第三方会要求参数按照ASCII码从小到大排序。如下:public static void requestPay()
- springboot项目启动慢的问题排查springboot项目,随着时间的推移,启动耗时逐步增加,从几分钟慢慢的达到30多分钟,有点恐怖!
- 本次主要分享的是3个免费的二维码接口的对接代码和测试得出的注意点及区别,有更好处理方式多多交流,相互促进进步;最近在学习JavsScript
- 1、项目启动时报错如下Description:The bean 'securityManager', defined in
- 一、开发前准备1. Docker的安装可以参考https://docs.docker.com/install/2. 配置docker远程连接
- 编辑Word文档时,我们有时会突然想增加一段新内容;而将word文档给他人浏览时,有些信息我们是不想让他人看到的。那么如何运用C#编程的方式
- 本文实例为大家分享了C#实现上传下载图片的具体代码,供大家参考,具体内容如下1.首先我们通过流来上传下载图片,所有操作只停留在流这一层Mem
- Http请求类package wzh.Http;import java.io.BufferedReader;import java.io.I
- 上篇博文:Java-多线程的使用equals与==1. ==的使用1.1 概述⭕ 用于基本类型比较值时:只要两个变量的值相等,即为true。
- 今天想和小伙伴们来聊一聊 Spring Security 中的角色继承问题。角色继承实际上是一个很常见的需求,因为大部分公司治理可能都是金字
- 首先介绍下JSON的定义,JSON是JavaScript Object Notation的缩写。一种轻量级的数据交换格式,具有良好的可读和便
- 当 Maven 无法依赖 spring-cloud-starter-zipkin 时,您可以尝试以下方法解决:确保拼写正确:请检查项目中的