题目:

算法原理:创建一个words数组,模拟一个单词池,创建一个status数组,把它初始化为一个一个的"",status的数组的长度即是随机出来的单词的长度,用户传入一个字母,用iscontain方法(遍历)判断它是否在随机出来的那个单词里面,若在,且状态为“”,就用setstatus将对应位置的"*"变成对应的字母,若状态为字母,则说明already in the word。如果iscontain方法遍历出来没有,则not in the word。

代码如下:

import java.util.Random;
import java.util.Scanner;
public class guessNumber {***## //变量区***//下面是在定义全局变量,一般到处都会使用到的变量就定义为全局变量public static Random r;public static String[] words= {"write","that","operation","loving","program","exit","watermelon","insert","cafeteria"};public static String s;public static String[] status;public static int missednum;public static boolean flag;public static void main(String[] args) {r=new Random();s=words[r.nextInt(words.length)];status=new String[s.length()];missednum=0;//上面是在为全局变量赋初值init();//将状态数组status初始化为全"*"## ***//游戏逻辑***    outer://下一轮游戏的标记while(true) {Scanner sc=new Scanner(System.in);print();//打印提示用户输入的提示语句,主要是对于status的遍历打印String c=sc.nextLine();iscontain(c);//判断用户输入的字母是否在随机单词s中flag=true;//标记循环出来的时候的状态for(int j=0;j<status.length;j++) {if(status[j]=="*") {flag=false;}}//上面是在判断status是否全成为了字母,若全成了字母,则一轮游戏结束## ***//开启下一轮逻辑***if(flag==true) {//flag==true,说明全为字母,本轮游戏结束System.out.println("The word is "+s+". You missed "+missednum+" time");  System.out.print("Do you want to guess another word? Enter y or n >");//提示用户是否开启下一轮猜字游戏String str=sc.nextLine();//读取用户的需求if(str.equals("y")) {//判断用户的需求s=words[r.nextInt(words.length)];status=new String[s.length()];missednum=0;//新一轮游戏开始了,需要重新随机单词,错误次数也要重置init();//状态数组也要初始化为新单词的长度,并全变成"*"continue outer;//继续下次循环,开启下一轮游戏}else {break;}//如果用户不玩了,则跳出循环}}}***## //方法区***public static void print() {System.out.print("(Guess) Enter a letter in word ");for(int i=0;i<status.length;i++) {System.out.print(status[i]);}System.out.print(" > ");    }public static void init() {for(int i=0;i<=s.length()-1;i++) {status[i]="*";} }public static void iscontain(String c) {flag=false;//标记下面循环出来时的状态for(int i=0;i<s.length();i++) {//遍历随机单词sString str=s.charAt(i)+"";//取出s中的char型字符,变Stringif(c.equals(str)) {flag=true;setStatus(i);//相等,就把status数组里"*"变i位置对应的字符}}if(flag==false) {//flag==false,说明s遍历完里面都没有一个cmissednum++;//记录猜错的次数System.out.println(c+" is not in the word!");//用户输入的c未在其中}}public static void setStatus(int k) {if(status[k].equals("*")) {status[k]=s.charAt(k)+"";}else {//如果不是"*",则说明用户输入的字母在之前用户就已经输过了System.out.println(s.charAt(k)+" is already in the word!");}}
}

java编程实现;猜单词游戏相关推荐

  1. python:编程实现猜单词游戏(含文件按行读取删换行符)

    目录 游戏概述 预备知识 开始代码 游戏概述 游戏一开始先显示乱序后的字符串,并提示用户输入猜测的结果.如果错误,提示继续输入,直至输入正确.猜对之后,则询问是否继续游戏. 游戏效果如下: 预备知识 ...

  2. java编程题-猜数字游戏

    猜数字游戏 生成一个1~100之间的随机数.1.输入0,直接退出游戏.2.记录成绩,1~3 A,4~6 B,7~10 C,超过10次提示封号.4.输入游戏难度等级,1 容易 1~50,2 中等 1~1 ...

  3. java猜单词游戏_9 java基础综合编程练习---猜单词游戏

    配套视频教程 image.png 任务目的 1.掌握字符串常用操作 2.掌握随机数的用法 3.掌握控制台基本输入输出 4.掌握循环,分支条件的用法 5.培养编程思维,提高分析问题能力` 任务描述 im ...

  4. JAVA编程实现猜数游戏

    1.该程序就是随机生成一个1-100的整数让玩家进行游戏,不限次数,直到玩家猜对为止. 2.使用while循环语句实现功能 3.代码展示 import java.util.Random; import ...

  5. java猜单词游戏_序列应用——猜单词游戏

    开发工具:Visual Studio Code 1.游戏介绍 猜单词游戏就是计筧机随机产生一个单词,打乱字母顺序,供玩家去猜测.此游戏采用控制字符界面. 2.程序设计思路 游戏中,可使用序列中的元组存 ...

  6. 单词九连猜python编程_python实现猜单词游戏

    本文实例为大家分享了python实现猜单词游戏的具体代码,供大家参考,具体内容如下 0.效果 1.代码 # 猜单词游戏 import random #添加 WORDS = ("python& ...

  7. Java基础编写猜数游戏

    Java基础编写猜数游戏 设计内容及要求 产生一个100以内的随机数,游戏者进行猜数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜对为止.游戏结束后计算出玩家所猜的次数. 目的及意义 通过猜数 ...

  8. Yii Framework 开发教程(4) Hangman 猜单词游戏实例

    有了前面"Hello,World"的例子和对Yii Framework Web应用基础的介绍,可以开始介绍一个简单而相对而有比较完整的Web应用-Hangman(猜单词游戏),这个 ...

  9. c语言猜单词游戏实验报告,猜单词游戏c语言源程序.doc

    猜单词游戏c语言源程序 包括程序及txt文档,希望可以对您有所帮助 #include #include #include #include #include #include #include voi ...

  10. Python实现猜单词游戏

    推荐自己的专栏:分享一些Python案例,将所学用出来 欢迎参加猜单词游戏! 请把乱序后的字母组成一个单词乱序后的单词: odticnraiy请输入您猜测的结果:dictionary恭喜您,猜对了!是 ...

最新文章

  1. 快手超大规模集群调度优化实践
  2. mysql中groupby会用到索引吗_mysql order by 与索引的使用
  3. SAP Customer Experience Extensibility gold rule
  4. 取消对 null 指针“l”的引用。_C语言编程笔记丨C 语言指针 5 分钟教程
  5. 项目架构开发:数据访问层之Cache
  6. 荣耀play一直显示无服务器,降价都无法补救?荣耀Play3:绝不是电子垃圾!
  7. Twitter开放平台api key申请流程 (Twitter Consumer Key)
  8. 深度学习attention原理_深度原理学习–Redis集群
  9. 文件传送,如此简单--ESFramework 4.0 快速上手(13)
  10. 工作流软件是未来web的支柱
  11. tippy.js悬浮提示工具插件
  12. 用Java(APICloud)开发手机APP
  13. Java方法工厂,接口,常用日期类Date面向对象,匿名内部类局部类
  14. linux创建磁盘的命令,linux中创建磁盘分区的命令是什么
  15. Android开发:隐藏和显示底部导航栏
  16. wps里面函数怎么使用_WPS中函数的使用方法 - 卡饭网
  17. DRF实战5 - 商品管理
  18. C++ vector中删除元素
  19. 华为OD机试 - 找数字、找等值元素(Java JS Python)
  20. 【财富空间】人品,是最好的底牌

热门文章

  1. 分享50款漂亮的免费经典英文复古字体(上)
  2. 海洋cms采集后无法播放解决方法
  3. 第一次学游泳技巧_第一次学游泳作文8篇
  4. 前端vue3 tsx风格开发
  5. 几个内核函数:filp_open、filp_read、IS_ERR、ERR_PTR、PTR_ERR
  6. 【计算机史】早期人类的重要计算工具科普
  7. android 联系人 拼音,Android 2.1 (Eclair)的中文联系人拼音检索问题
  8. PAT乙级 1072 开学寄语
  9. EBS:AP_INV_SELECTION_CRITERIA_ALL
  10. CentOS7像外部163邮箱发送邮件