java实现猜字母游戏

 更新时间:2021年03月04日 17:44:07   作者:复杂先森*  
这篇文章主要为大家详细介绍了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);
 }
}

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

相关文章

  • mybatis自定义类型处理器的实现

    mybatis自定义类型处理器的实现

    在MyBatis使用中,有时需要对特定数据类型进行定制处理,自定义类型处理器(TypeHandler)可以实现这一需求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-10-10
  • 配置java.library.path加载库文件问题

    配置java.library.path加载库文件问题

    这篇文章主要介绍了配置java.library.path加载库文件问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • 将本地JAR文件手动添加到Maven本地仓库的实现过程

    将本地JAR文件手动添加到Maven本地仓库的实现过程

    在Java开发中,使用Maven作为项目管理工具已经成为了主流的选择,Maven提供了强大的依赖管理功能,可以轻松地下载和管理项目所需的库和工具,在某些情况下,你可能会需要将本地下载的JAR文件手动添加到Maven的本地仓库中,这篇博客将详细介绍如何实现这一过程
    2024-10-10
  • MyBatis使用自定义TypeHandler转换类型的实现方法

    MyBatis使用自定义TypeHandler转换类型的实现方法

    这篇文章主要介绍了MyBatis使用自定义TypeHandler转换类型的实现方法,本文介绍使用TypeHandler 实现日期类型的转换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • java长整除问题浅谈

    java长整除问题浅谈

    这篇文章主要介绍了java长整除问题,有需要的朋友可以参考一下
    2013-11-11
  • springboot启动加载CommandLineRunner @PostConstruct问题

    springboot启动加载CommandLineRunner @PostConstruct问题

    这篇文章主要介绍了springboot启动加载CommandLineRunner @PostConstruct问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • SpringBoot整合jersey的示例代码

    SpringBoot整合jersey的示例代码

    本篇文章主要介绍了SpringBoot整合jersey的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 在Java中Collection的一些常用方法总结

    在Java中Collection的一些常用方法总结

    今天给大家带来的知识是关于Java的,文章围绕着Java中Collection的一些常用方法展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • Java高级用法中的JNA类型映射注意细节及使用问题

    Java高级用法中的JNA类型映射注意细节及使用问题

    本文介绍了在使用JNA方法映射中应该注意的一些细节和具体的使用问题,对java  JNA类型映射注意细节感兴趣的朋友一起看看吧
    2022-04-04
  • java FileOutputStream输出流的使用解读

    java FileOutputStream输出流的使用解读

    这篇文章主要介绍了java FileOutputStream输出流的使用解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12

最新评论