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 ...
随机推荐
- varint算法——本质上是牺牲最高位作为标识数据结束位,达到变长编码,说白了就是贪心的分割位
varint算法,摘自:http://blog.csdn.net/liaoquesg/article/details/50897327 最近在看<大规模WEB服务开发技术>这本书中.书中提 ...
- SPOJ:Triple Sums(母函数+FFT)
You're given a sequence s of N distinct integers.Consider all the possible sums of three integers fr ...
- bzoj 4711 小奇挖矿 —— 树形DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4711 就是树形DP,然而也想了半天才把转移想清楚: f[x][j][0] 表示 x 去上面 ...
- Java Socket实战之五:使用加密协议传输对象
转自:http://developer.51cto.com/art/201202/317547.htm 前面几篇博文提到了Socket中一些常用的用法,但是对于一些有安全要求的应用就需要加密传输的数据 ...
- Vijos P1951 玄武密码 (AC自动机)
描述 在美丽的玄武湖畔,鸡鸣寺边,鸡笼山前,有一块富饶而秀美的土地,人们唤作进香河.相传一日,一缕紫气从天而至,只一瞬间便消失在了进香河中.老人们说,这是玄武神灵将天书藏匿在此. 很多年后,人们终于在 ...
- YCOJ中国邮递员问题
题目: Description 一个邮递员从邮局出发,需要去 n - 2个城市送信,送完信件以后回家. 邮局在城市 1,家在城市 n,任意两个城市之间都有道路,但是这些道路是单向,也就是说 a 到 b ...
- element中upload单图片转base64后添加进数组,请求接口
//先上代码 <template> <!-- data绑定的参数 getuploadloge: [ { url: '', name: '' } ], --> <!-- 编 ...
- Six degrees of Kevin Bacon
转自:https://blog.csdn.net/a17865569022/article/details/78766867 Input* Line 1: Two space-separated in ...
- idea 启动时报 error:java 无效的源发行版11
编译的版本不符合,需要修改统一
- [POI2009]Kon
Description 火车沿途有N个车站,告诉你从每一站到每一站的人数,现在查票员只能查K次票,每次查票可以控制目前在车上的所有乘客的车票.求一个查票方案,使得控制的不同的乘客尽量多. (显然对同一 ...