「Java」JAVA的经典案例:猜字母游戏( 二 )


步骤
步骤一:定义方法generate()
在GuessingGame类中 , 定义方法generate() , 使方法用于随机生成五个不同的字母
步骤二:定义方法chek()
在GuessingGame类中 , 定义方法chek() , 该方法用于将玩家输入的多个字母(参数input)和系统随机生成的多个字母(参数chs)进行比较 。 统计正确的字符个数 , 以及位置正确的个数 , 并将结果存储的数组中 , 然后返回给调用方 。
实现字母生成方法方案
实现generate方法 , 首先声明一个字符类型的数组 , 用于存储26个大写字母 , 然后声明一个boolean类型的数组 , 其长度也为26 , 此数组的初始值均为false , 意味着 , 程序起始 , 没有任何字母被选中 , 如果某个字母被选中 , 同时设置该字母在boolean类型数组中对应位置的值为true , 表示该字母被选中 。
然后使用嵌套循环:外层循环用于控制所生成的字母个数 , 即循环5次 , 以产生5个字母 , 而内层循环则用于判断生成的字母是否重复 。 generate方法的程序流程如下
步骤
步骤一:构建存储所有字母的数组
在generate方法中 , 首先定义char类型的数组变量letters , 用于存放26个大写字母 , 然后定义boolean类型的数组变量flag , flag数组的大小鹤letters数组的大小相同 , 用于记载某字母是否被选中 , 以便于判断字母是否重复
步骤二随机生成5个不同的字母
使用嵌套循环 , 随机生成5个不同的字母 , 并且这5个字母各不相同
实现字母检测方法方案
实现chek方法 , 需要逐一取出玩家录入的每一个字符 , 并和结果字符一一比较 , 比较字符本身以及字符所在的位置 , 并记载比较的结果 , 此案例需要使用嵌套循环来实现 。 Chek方法的流程图如下其中红色表示外层循环 , 蓝色部分表示外部循环 。
步骤
步骤一:构建存储比较结果的数组
在chek()方法中 , 首先定义int类型的数组类型变量result , 用于存储比较的结果 , 数组result的长度为2 , 其中 , result[0
用于存放完全猜对的字母个数(字符和位置均正确) , result[1
用于存放猜对的字母个数(字符正确 , 但位置不正确)
步骤二:比较
使用嵌套循环 , 统计完全猜对字母的个数 , 和猜对字母个数(位置不对)
实现主方法为实现猜字母游戏的整体过程 , 首先要调用generate()方法 , 以生成5个字母;其次需要使用while(true)循环允许玩家进行多次猜测;
在循环中 , 接收玩家猜测的字母 , 然后调用check()方法 , 检查猜测结果 , 如果猜测正确 , 则输出提示信息和分数 , 游戏结束;如果猜测错误 , 则输出猜测的判断结果并提示玩家游戏继续 。
步骤
步骤一:构建存储所有字母的数组
买main方法中 , 先输出提示信息表示游戏开始 , 然后调用generate()方法生成要猜测的5个字母 , 并提示玩家开始猜测
步骤二:构建循环
使用while(true)循环 , 并在循环中调用Scanner类的next()方法接收玩家猜测的字符串 。 为方便字符串的比较 , 将玩家录入的字符串转换为大写字母 , 然后判断玩家录入的是否为“EXIT” , 如果是则中止循环 , 游戏结束 。
步骤三:比较
如果玩家录入的不是“EXIT” , 则调用check()方法与答案进行比较 , 并得到存储比较结果的数组result 。
比较完毕之后 , 根据比较结果输出提示信息界面 。 如果5个字符的位置均正确 , 则表示游戏结束 , 计算输出玩家的得分;否则将猜测次数累加1 , 并提示玩家所猜对的字符个数以及位置个数 , 游戏结束 。


推荐阅读