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

相关文章

  • Log4j日志记录框架配置及用法解析

    Log4j日志记录框架配置及用法解析

    这篇文章主要介绍了Log4j日志记录框架配置及用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Java提取2个集合中的相同和不同元素代码示例

    Java提取2个集合中的相同和不同元素代码示例

    这篇文章主要介绍了Java提取2个集合中的相同和不同元素代码示例,涉及对removeall方法的简单介绍,然后分享了主要的示例代码,具有一定借鉴价值,需要的朋友可以参考下。
    2017-11-11
  • springboot之redis cache TTL选项的使用

    springboot之redis cache TTL选项的使用

    这篇文章主要介绍了springboot之redis cache TTL选项的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 浅谈对于DAO设计模式的理解

    浅谈对于DAO设计模式的理解

    这篇文章主要介绍了浅谈对于DAO设计模式的理解,小编觉得挺不错的,这里分享给大家,供需要的朋友参考。
    2017-10-10
  • Java日常练习题,每天进步一点点(29)

    Java日常练习题,每天进步一点点(29)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-07-07
  • Mybatis insert方法主键回填和自定义操作

    Mybatis insert方法主键回填和自定义操作

    这篇文章主要介绍了Mybatis insert方法主键回填和自定义操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Java之类加载机制案例讲解

    Java之类加载机制案例讲解

    这篇文章主要介绍了Java之类加载机制案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • SpringBoot+mybatis+thymeleaf实现登录功能示例

    SpringBoot+mybatis+thymeleaf实现登录功能示例

    这篇文章主要介绍了SpringBoot+mybatis+thymeleaf实现登录功能示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • mybatis plus使用redis作为二级缓存的方法

    mybatis plus使用redis作为二级缓存的方法

    这篇文章主要介绍了mybatis plus使用redis作为二级缓存的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • springCloud config本地配置操作

    springCloud config本地配置操作

    这篇文章主要介绍了springCloud config本地配置操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10

最新评论