java猜字母讲解_Java入门第37课——猜字母游戏之设计数据结构

问题

有猜字母游戏,其游戏规则为:程序随机产生5个按照一定顺序排列的字符作为猜测的结果,由玩家来猜测此字符串。玩家可以猜测多次,每猜测一次,则由系统提示结果。如果猜测的完全正确,则游戏结束,计算玩家的游戏得分并输出;如果没有猜对,则提示猜测的结果,如猜对了几个字符,以及猜对了几个字符的位置等信息,并提示玩家游戏继续。

本案例要求使用交互的方式实现此游戏:由玩家在控制台输入所猜测的字符串,如果所猜测的字符串与结果并不完全相同,则在界面输出比较后的结果,并提醒玩家继续猜测。交互过程如图所示:

由上图可以看出,每次猜测后,程序将比较玩家所输入的字符串,比较字符以及字符的位置,然后提示结果:5个字符中正确的字符个数,以及位置正确的字符个数,以便于玩家判断后续如何进行猜测。

玩家终于猜测正确后,游戏结束,并给出游戏得分,交互过程如图所示:

其中,游戏的得分规则为:字符的个数乘以100为总分,即此游戏的总分为500分。玩家如果第一次就猜对,则得满分(500分);每多猜测一次,则扣10分。由图可以看出,玩家共猜测了5次,因此,得分为450。

最后,如果玩家在控制台录入exit,则游戏中止,程序结束。交互过程如果所示:

本案例需要实现猜字母游戏中的数据结构设计,即,设计相关的数据结构,可以存储此程序中所用到的相关数据。

方案

分析猜字母游戏可以看出,此程序需要存储随机生成的字母个数、随机生成的字符串、玩家猜测的总次数、玩家录入的字符串,以及比较后的结果。因此,设计如下变量来存储此游戏中需要用到的相关数据:

· int类型变量count:用于记录玩家猜字母的总次数;

· char数组类型变量input:用于保存用户猜测的数据。

· char数组类型变量chs:用于保存随机生成的多个字母所组成的字符串;

· int类型数组变量result:用于保存判断的结果。此数组有两个元素,第一个用于保存完全猜对的字母个数(字符正确且位置也正确),第二个元素用于保存猜对的字母个数(字符正确但位置不正确)。

步骤

实现此案例需要按照如下步骤进行。

步骤一:定义类及main方法

首先定义一个名为GuessingGame的类,并在类中添加Java应用程序的主方法main,代码如下所示:

public class GuessingGame{

public static void main(String[] args){

}

}

步骤二:存储猜测的次数

定义一个int类型变量count,用于记录玩家猜字母的总次数,代码如下所示:

public class GuessingGame{

public static void main(String[] args){

int count=0;

}

}

步骤三:存储用户猜测的数据

char数组类型变量input:用于保存用户猜测的数据,代码如下所示:

public class GuessingGame{

public static void main(String[] args){

int count=0;

char[] input=null;

}

}

步骤四:存储随机生成的多个字母

定义一个char数组类型chs,用于保存随机生成的字母。代码如下所示:

public class GuessingGame{

public static void main(String[] args){

int count=0;

char[] input=null;

char[] chs=null;

}

}

步骤五:存储比较结果

定义一个int数组类型变量result,用于存储比较的结果。该数组有两个元素,第一个用于保存完全猜对的字母个数(字符和位置均正确),第二个元素用于保存猜对的字母个数(字符正确,但是位置不正确)。代码如下所示:

public class GuessingGame{

public static void main(String[] args){

int count=0;

char[] input=null;

char[] chs=null;

int[] result=new int[2];

}

}

--------------------- !

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值