猜字母游戏----实现游戏等级,游戏等级设为三级:5,7,9,代表所需猜测的字母个数

//为猜字母游戏添加游戏等级,游戏等级为5,7,9
import java.util.Scanner;
public class GuessingGame {public static void main(String[] args) {  //主方法//便是玩家猜测的次数int count = 0;//表示用户猜测的数据char[] input = null;//用于保存判断的结果int[] result = new int[2];Scanner scan = new Scanner(System.in);System.out.println("GuessingGame>欢迎尝试猜字母游戏!");int level;do {System.out.println("请输入等级(5,7,9):");level = scan.nextInt();}while(level!= 5 && level!=7 && level!=9);char[] chs = generate(level);  //获取随机字符数组System.out.println(chs);   //作弊哈,显示猜测答案System.out.println("GuessingGame>游戏开始,请输入您所猜测的5个字母序列:(exit--退出)");while(true) {  //自造死循环String inputStr = scan.next().trim().toUpperCase();  //接收字符串,并转换为大写if("Exit".equals(inputStr)) {System.out.println("GuessingGame>谢谢你的尝试,再见!");break;}input = inputStr.toCharArray();result = check(chs,input);if(result[0] == chs.length) {  //完全猜对的情况int score = 100 * chs.length - count *10;  //一个字符100分,猜错一次扣10分System.out.println("GuessingGame>恭喜你猜对了!你的得分是:"+score);break;}else {count++;System.out.println("Guessing>你猜对"+result[1]+"个字符,其中"+result[0]+"个字符的位置对!(总次数="+count+",exit--退出)");}}scan.close();}//随机生成需要猜测的字母序列,level表示等级public static char[] generate(int level) {char[] letters = {'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[] flags = new boolean[letters.length];  //开关数组,默认为falsechar[] chs = new char[level];  //生成随机字符数组for (int i = 0;i < chs.length; i++) {  //遍历随机字符数组int index;do {index = (int) (Math.random()* (letters.length));  //生成随机下标,0到25}while(flags[index]==true);//若下标对应的开关为true,表示已经存过,重新生成index//当下标对应开关为false,表示未存过,条件为假,则为循环结束chs[i] = letters[index];  //基于index下标去letters中获取数据,并赋值给chs中每一个元素flags[index] = true;  //修改index下标对应开关为true,表示已经存过}return chs;}//比较玩家输入的字母序列和程序所生成的字母序列,逐一比较字符及其位置,并记载比较结果//result[0]为位置对,result[1]为字符对public static int[] check(char[] chs,char[] input) {int[] result = new int[2];  //字符对和位置对for (int i = 0;i < chs.length;i++) {for (int j = 0; j < input.length; j++) {if (chs[i] == input[j]) {  //判断字符是否正确result[1]++;  //字符对个数加1if (i == j) {  //判断位置是否正确result[0]++;  //位置对个数加1}break;}}}return result;}}

Java学习小程序(10)三个等级的才字母游戏相关推荐

  1. Java学习小程序(2)输出三个数中的最大值

    用户从控制台接收三个整数,通过程序找出三个数中的最大值.(3种方法) package day03; //输入三个int数中的最大值 import java.util.Scanner; public c ...

  2. Java学习小程序(6)随机加法运算器

    有加法运算器程序,其规则为:程序依次出10道加法题目,由用户输出题目的答案. //随机加法运算器 import java.util.Scanner; public class Addition {pu ...

  3. Java学习小程序(5)猜数字游戏

    猜数字游戏,游戏规则:程序内置一个1到1000之间的数字作为猜测的结果,由用户猜测此数字.分别用 while 和 do-while 语句实现. import java.util.Scanner; pu ...

  4. Java学习小程序(4)数列求和

    (1)有数列为:9,99,999...........9999999999.要求是用程序计算此数列的和.(3种方法) (2)有数列:1+1/2+1/3+1/4.......+1/n.要求使用交互的方式 ...

  5. Java学习小程序(9)冒泡排序算法实现

    冒泡排序工作原理: (1)n个数冒泡n-1轮: (2)每一轮都是从第一个元素开始冒泡,每一次都是和他的下一个元素开始比较: (3)冒出来的数九放置最后. 程序:            * 1)声明整形 ...

  6. Java学习小程序(8)求数组元素的最大值并放在最后一位

    求数组元素的最大值并放在最后一位,创建一个10个长度的数组,随机生成0-99之间的数值放入数组,找出最大值,将数组的长度扩容为11,把最大值赋给最后一位. //求数组的最大值放在最后一位 import ...

  7. Java学习小程序(7)九九乘法表

    在界面打印九九乘法表,效果如图所示: 代码使用for的嵌套循环: //9*9乘法表 public class MultiplicationTable {public static void main( ...

  8. java比较三个数的编程_Java小程序输入三个数求最大数

    Java小程序输入三个数求最大数代码: import java.io.*; public class Help { // 比较两个数字 public static void main(String[] ...

  9. vue小米商城源代码_微信商城信息管理系统(java后台+小程序)

    前一段时间在公众号中发布了一套微信商城信息管理系统(java后台+小程序),也许大家可能都还记得.今天再给大家重复呈现一遍.重新梳理下,方便大家理解这是做什么用的,以便日后使用.开始正题 01 编写目 ...

最新文章

  1. vue-cli3.0 生产包去除console.log
  2. RDKit:化合物相似性搜索(基于Python3)
  3. ajax如何请求json文件,简单的ajax请求加载外部json文件
  4. vscode多个光标_21 个VSCode 快捷键,让代码更快,更有趣
  5. undefined和null
  6. 怎么重新启动协议服务器,如何启用或禁用服务器网络协议 (SQL Server PowerShell)
  7. 单因素方差分析[转载]
  8. 电脑如何测网速_职场人必备?告别加班的软件,100%提升工作效率|电脑|程序员|mac...
  9. 通过IP判断登录地址
  10. button组件 untiy_Unity 3D Button控件
  11. 对称式加密与非对称式加密的对比
  12. 机器学习基石 作业一
  13. 2017-2018-2 20155314《网络对抗技术》Exp4 恶意代码分析
  14. vulnhub刷题记录(The Planets: Earth)
  15. 菌群最新资讯热评 | 菌群与癌症免疫疗法,菌群与消毒剂
  16. Label 相关论文汇总
  17. 大学python笔记整理_python学习笔记整理(一)
  18. 125 · 背包问题(二)Backpack II
  19. html是如何实现独占一行原理,前端知识(Html)汇总1
  20. ESP8266-Arduino编程实例-磁簧开关传感器驱动

热门文章

  1. 【最新合集】IDEA 快捷键整理
  2. code block怎样导入整个文件夹_一文就能get!带你了解Python模块导入的真相,拿走不谢...
  3. java pdfbox 解析报错_pdfbox 读取文件报错 java.io.IOException: Page tree root must be a dictionary...
  4. 如何删除第一张单页_如何用PowerBI导入网页数据
  5. python笔记之利用BeautifulSoup爬取糗事百科首页段子
  6. 如何编写兼容各主流邮箱的HTML邮件并发送
  7. linux 误删除mysql表能恢复吗,Linux中误删除数据文件和归档日志的恢复方法
  8. 异步通知和同步通知_CCF NOI 2020 网上同步赛报名通知
  9. firedac连接mysql,FireDAC连接数据库
  10. java用beaninfo_java 可以使用BeanInfo实现bean实体与map之间的互相转换