问题
        本案例需要实现猜字母游戏程序中的程序结构

方案
        分析猜字母游戏可以看出,程序首先需要随机产生5个不同的字母作为需要猜测的结果,因此,可以先定义一个方法,以实现此功能;其次,每当玩家猜测一次后,程序需要将玩家录入的字符串和正确答案进行比较,统计正确的字符个数以及正确的位置个数,因此,也可以先定义一个方法,专用于实现比较功能。这样,就可以在main方法中调用这两个方法。

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

步骤一:定义方法generate()
        在GuessingGame类中,定义方法generate(),该方法用于随机生成五个不同的字母。代码如下所示:

import java.util.Scanner;
    
    public class GuessingGame{
        public static void main(String[] args){
            //表示玩家猜测的次数
            int count=0;
            //表示用户猜测的数据
            char[] input=null;
            //表示猜测的字符串
            char[] chs=null;
            //用于保存判断的结果
            int[] result=new int[2];
        }
    }
    
    /**
     *随机生成需要猜测的字母序列
     * 
     *@return 存储随机字符的数组
     */
     public static char[] generate(){
         char[] chs=new char[5];
         
         return chs;
     }
步骤二:定义方法check()
        在GuessingGame类中,定义方法check()。该方法用于将玩家输入的多个字母(参数input)和系统随机生成的多个字母(参数chs)进行比较,统计正确的字符个数,以及位置正确的个数,并将结果存储到数组中,然后返回给调用方。代码如下所示:

import java.util.Scanner;
    
    public class GuessingGame{
        public static void main(String[] args){
            //表示玩家猜测的次数
            int count=0;
            //表示用户猜测的数据
            char[] input=null;
            //表示猜测的字符串
            char[] chs=null;
            //用于保存判断的结果
            int[] result=new int[2];
        }
    
    /**
     *随机生成需要猜测的字母序列
     * 
     *@return 存储随机字符的数组
     */
     public static char[] generate(){
         char[] chs=new char[5];
         
         return chs;
     }    
     
     /**
      *比较玩家输入的字母序列和程序所生成的字母序列,逐一比较字符及其位置,并记载比较结果
      *
      *@param chs
      *           程序生成的字符序列
      *@param input
      *           玩家输入的字符序列
      *return 存储比较的结果。返回值int数组的长度为2,其中,索引为0的位置
      *       用于存放完全猜对的字母个数(字符和位置均正确),索引为1的位置用于存放猜对的字母个数(字符
      *       正确,但是位置不正确)。 
      */
      public static int[] check(char[] chs,char[] input){
          int[] result=new int[2];
          
          return result;
      }
      
    }
---------------------

最新文章

  1. 【无私分享:ASP.NET CORE 项目实战(第二章)】添加EF上下文对象,添加接口、实现类以及无处不在的依赖注入(DI)
  2. 如何让vim编辑器永久显示行号
  3. Atitit. js mvc 总结(2)----angular 跟 Knockout o99 最佳实践
  4. 项目跑起来之后,一会儿后台就会报错Illegal access: this web application instance has been stopped already. Could not load [com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask]. The following stack trace
  5. 【BZOJ】3809: Gty的二逼妹子序列
  6. sql commands
  7. MariaDB集群Galera Cluster的研究与测试
  8. MVC URL处理
  9. jQuery练习实例(四)
  10. 图论(无向图的割顶):POJ 1144 Network
  11. WPF界面设计
  12. [转python 父类可以调用子类的方法
  13. ueditor编辑器使用总结
  14. ElasticSsarch汇总
  15. python----数据驱动ddt的使用
  16. socketserver 实现并发
  17. node里面的buffer理解
  18. caz,数字证书,公钥
  19. 【bzoj4589】Hard Nim FWT+快速幂
  20. zookeeper入门实例

热门文章

  1. mongo12---手动预先分片
  2. 并不对劲的bzoj5342:loj2554:uoj401:p4566: [Ctsc2018]青蕈领主
  3. java翻译lua+c+openssl签名项目
  4. 利用插件(jQuery-ui.js)实现表格行的拖拽排序
  5. json知识笔记
  6. Linux 常用命令四 rmdir rm
  7. bzoj 1565 [NOI2009]植物大战僵尸【tarjan+最大权闭合子图】
  8. setsockopt()函数功能介绍
  9. python之计数统计
  10. 安装 Apache Commons Logging API步骤