• 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];
            }
        }
    --------------------- !

  • 相关阅读:
    BZOJ 1977: [BeiJing2010组队]次小生成树 Tree( MST + 树链剖分 + RMQ )
    BZOJ 2134: 单选错位( 期望 )
    BZOJ 1030: [JSOI2007]文本生成器( AC自动机 + dp )
    BZOJ 2599: [IOI2011]Race( 点分治 )
    BZOJ 3238: [Ahoi2013]差异( 后缀数组 + 单调栈 )
    ZOJ3732 Graph Reconstruction Havel-Hakimi定理
    HDU5653 Bomber Man wants to bomb an Array 简单DP
    HDU 5651 xiaoxin juju needs help 水题一发
    HDU 5652 India and China Origins 并查集
    HDU4725 The Shortest Path in Nya Graph dij
  • 原文地址:https://www.cnblogs.com/hyhy904/p/10989712.html
Copyright © 2020-2023  润新知