Java入门第38课——猜字母游戏之设计程序结构
问题
本案例需要实现猜字母游戏程序中的程序结构
方案
分析猜字母游戏可以看出,程序首先需要随机产生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;
}
}
---------------------
Java入门第38课——猜字母游戏之设计程序结构的更多相关文章
- Java入门第37课——猜字母游戏之设计数据结构
问题 有猜字母游戏,其游戏规则为:程序随机产生5个按照一定顺序排列的字符作为猜测的结果,由玩家来猜测此字符串.玩家可以猜测多次,每猜测一次,则由系统提示结果.如果猜测的完全正确,则游戏结 ...
- Java入门第39课——猜字母游戏之实现字母生成方法
问题 实现猜字母游戏中的字母生成方法,即,随机生成5个不同的字母作为猜测的结果. 方案 实现generate方法,首先声明一个字符类型的数组,用于存储26个大写字母,然后声 ...
- 猜字母游戏(Java)
我的代码: package day20181025; import java.util.Arrays; import java.util.Scanner; /** * 猜字母 * @author Ad ...
- Kotlin入门第四课:简单工厂模式
Kotlin基础知识的学习,请参考之前的文章: Kotlin入门第一课:从对比Java开始 Kotlin入门第二课:集合操作 Kotlin入门第三课:数据类型 初次尝试用Kotlin实现Android ...
- Android零基础入门第38节:初识Adapter
原文:Android零基础入门第38节:初识Adapter 在上一节一起了解了ListView的简单使用,那么本节继续来学习与ListView有着千丝万缕的Adapter. 一.了解MVC模式 在开始 ...
- java入门第五步之数据库项目实战【转】
在真正进入代码编写前些进行一些工具的准备: 1.保证有一个可用的数据库,这里我用sql server 2000为例,2.拥有一个ide,如ecelise或myeclipse等,这里我使用的是myecl ...
- 第二节:Java入门第一行代码
前言 大家好,今天带来Java入门第一行代码的概述,希望你们喜欢 第一行代码 学习Java基础课程,学会使用eclipse,eclipse为Java集成开发坏境IDE,创建第一个Java源文件代码: ...
- JSP简单练习-猜字母游戏
<!-- guessCharExample.jsp --> <%@ page contentType="text/html; charset=gb2312" %& ...
- Android零基础入门第15节:掌握Android Studio项目结构,扬帆起航
原文:Android零基础入门第15节:掌握Android Studio项目结构,扬帆起航 经过前面的学习,Android Studio开发环境已准备OK,运行Android应用程序的原生模拟器和Ge ...
随机推荐
- [10.27_P3] 简单题 (脑洞)
Description dzy 手上有一张n 个点m 条边的联通无向图,仙人掌是一张每条边最多在一个简单环内的联通无向图.他想求这个无向图的生成仙人掌中最多有多少条边. 但是dzy 觉得这个问题太简单 ...
- HDU1054 Strategic Game —— 最小点覆盖 or 树形DP
题目链接:https://vjudge.net/problem/HDU-1054 Strategic Game Time Limit: 20000/10000 MS (Java/Others) ...
- HDU1087 Super Jumping! Jumping! Jumping! —— DP
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1087 Super Jumping! Jumping! Jumping! Time Limi ...
- Difference between HttpContext.Request and Request
https://stackoverflow.com/questions/5547989/difference-between-httpcontext-request-and-request Well: ...
- redhat修复hostname主机名
1.修改文件vi /etc/sysconfig/network下的hostname,如: NETWORKING=yes HOSTNAME=master 2.修改文件:vi /etc/hosts 127 ...
- 逆向分析一个完整的C++程序包含寄存器与参数传递详解
最近在分析C++ dump 文件的时候觉得有必要将一些必要的反汇编东西总结一下以备别人参考,自己有时间的时候也可以进行更多的改进.下面通过一个简单的C++代码转成汇编代码后的详细解释说明一下C++和汇 ...
- RDA GUI
创建服务:“sysapp_table.h” / "dvb_guiobj_table.h" / "atv_guiobj_table.h" “服务”与“回调” ...
- hibernate映射文件set key one-to-many
转自:https://www.linuxidc.com/Linux/2013-11/92228.htm 1 hibernate映射文件set key one-to-many的配置. POJOs如下: ...
- 【转载】CAS操作
[本文转载]http://blog.csdn.net/hsuxu/article/details/9467651 CAS CAS:Compare and Swap, 翻译成比较并交换. java.ut ...
- 洛谷P3569 [POI2014]KAR-Cards(线段树)
传送门 蠢了…… 我们用线段树,记$w0$为该区间最左端取小值时,最右端最小能取大还是小还是无解,$w1$表示最左端取大值时,最右端最小能取大还是小还是无解 然后只要把交换看做修改就好了 这么说可能很 ...