Java实现猜字小游戏

 更新时间:2019年11月28日 13:51:35   作者:宗策  
这篇文章给大家分享小编随手写的猜字小游戏,基于java代码写的,感兴趣的朋友跟随小编一起看看吧

猜字游戏是一款益智游戏,喜欢玩具有挑战性单词游戏的你就可以来体验一下了,给你一个字母板。尝试通过想象相邻字母的单词。您将获得一个分数,根据您使用的字母,你已经使用了多少个字母,并以这些字母相关联的任何修饰符都可以的。

具体代码如下所示:

package test07;
import java.util.Scanner;
//猜字符游戏
public class Guessing {
//主方法
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
char[] chs = generate(); //获取随机字符数组
System.out.println(chs); //作弊
int count = 0; //猜错的次数
while(true){ //自造死循环
System.out.println("猜吧!");
String str = scan.nextLine().toUpperCase(); //接收用户输入的字符串并转换为大写字母
if(str.equals("EXIT")) { //判断字符串内容是否是EXIT
System.out.println("下次再来吧!");
break;
}
char[] input = str.toCharArray(); //将字符串转换为字符数组
int[] result = check(chs,input); //对比:随机字符数组与用户输入的字符数组
if(result[0]==chs.length) { //对
int score = 100*chs.length-10*count; //1个字符100分,猜错一次扣10分
System.out.println("恭喜你猜对了,得分为:"+score);
break; 
}else { //错
count++; //猜错次数增1
System.out.println("字符对个数为:"+result[1]+",位置对个数为:"+result[0]);
}
}
}
//生成随机字符数组chs
public static char[] generate() {
char[] chs = new char[5]; //随机字符数组
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]; //标记数组
for(int i=0;i<chs.length;i++) { //遍历随机字符数组
int index;
do {
index = (int)(Math.random()*letters.length); //随机下标(0到25之间)
}while(flags[index]==true); //下标index对应的标记为true,表示对应字符已经使用过,则重新生成index下标
//下标index对应的标记为false时,表示对应字符未用过,则循环结束
chs[i] = letters[index]; //基于下标index获取对应的字符并赋值给chs中的每一个元素
flags[index] = true; //将下标index对应的标记修改为true,表示对应字符已存过
}
return chs;
/*
* i=0 index=0 chs[0]='A' flags[0]=true
* i=1 index=25 chs[1]='Z' flags[25]=true
* i=2 index=0/25/0/1 chs[2]='B' flags[1]=true
* ...
*/
}
//对比:随机字符数组chs与用户输入的字符数组input
public static int[] check(char[] chs,char[] input) {
int[] result = new int[2]; //对比结果(0,0)--假设result[1]为字符对,result[0]为位置对
for(int i=0;i<chs.length;i++) { //遍历随机字符数组
for(int j=0;j<input.length;j++) { //遍历用户输入的字符数组
if(chs[i]==input[j]) { //字符对
result[1]++; //字符对个数增1
if(i==j) { //位置对
result[0]++; //位置对个数增1
}
break; //剩余input元素不再参与比较了
}
}
}
return result;
}
}

总结

以上所述是小编给大家介绍的Java实现猜字小游戏,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

  • java自定义注解接口实现方案

    java自定义注解接口实现方案

    java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能,本文将详细介绍,此功能的实现方法
    2012-11-11
  • Mybatis之#{}与${}的区别使用详解

    Mybatis之#{}与${}的区别使用详解

    这篇文章主要介绍了Mybatis之#{}与${}的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Java经典面试题最全汇总208道(二)

    Java经典面试题最全汇总208道(二)

    这篇文章主要介绍了Java经典面试题最全汇总208道(二),本文章内容详细,该模块分为了六个部分,本次为第二部分,需要的朋友可以参考下<BR>
    2023-01-01
  • 解决idea2020.2遇到pom.xml文件报错maven插件tomcat7的问题

    解决idea2020.2遇到pom.xml文件报错maven插件tomcat7的问题

    这篇文章主要介绍了idea2020.2遇到pom.xml文件报错maven插件tomcat7的问题,本文给大家分享解决方法,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • SpringBoot项目中连接SQL Server的三种方式

    SpringBoot项目中连接SQL Server的三种方式

    连接SQL Server是许多Spring Boot项目中常见的需求之一,本文主要介绍了SpringBoot项目中连接SQL Server的三种方式,具有一定的参考价值 ,感兴趣的可以了解一下
    2023-09-09
  • 详解Spring Boot中Controller用法

    详解Spring Boot中Controller用法

    Controller是SpringBoot里最基本的组件,他的作用是把用户提交来的请求通过对URL的匹配,分配个不同的接收器,再进行处理,然后向用户返回结果。下面通过本文给大家介绍Spring Boot中Controller用法,需要的朋友参考下
    2017-05-05
  • 使用OpenFeign实现服务调用的方法详解

    使用OpenFeign实现服务调用的方法详解

    OpenFeign是运行在客户端的声明式服务调用的框架,通过声明接口的方式来达到对服务的调用,本文就来和大家讲讲如何使用OpenFeign实现服务调用吧
    2023-06-06
  • 剖析Java中在Collection集合中使用contains和remove为什么要重写equals

    剖析Java中在Collection集合中使用contains和remove为什么要重写equals

    这篇文章主要介绍了Collection集合的contains和remove方法详解remove以及相关的经验技巧,通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • 解析java.library.path和LD_LIBRARY_PATH的介绍与区别

    解析java.library.path和LD_LIBRARY_PATH的介绍与区别

    这篇文章主要介绍了java.library.path和LD_LIBRARY_PATH的介绍与区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05
  • java实现识别二维码图片功能

    java实现识别二维码图片功能

    这篇文章主要为大家详细介绍了java实现识别二维码图片功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04

最新评论