AIDE手机编程初级教程(零基础向) 2.6.1 开发一个游戏之综述

第二章 第一个游戏

系列教程导航

2.6 开发一个游戏


2.6.1 综述


文章目录




前言

    之前,由于大家的Java基础很有可能不太行,所以开发的应用都是极其简单的。现在,我们已经学习了Java的一些基础知识,所以说已经有了开发一个比较高级的应用的能力了。经过一番冥思苦想,我最终决定带着大家开发一个猜数字的游戏。这个游戏的玩法简单,开发起来难度不大,所以很适合初学Java的你们入手。完整地体验一次开发一个Android应用的过程之后,相信大家对之前学到的知识会更加熟练。




游戏简介

    我这里指的猜数字游戏,并不是那种猜一个数字,然后程序告诉你猜大了还是猜小了的游戏。这样的游戏大概很容易让人感到厌倦,毕竟每次只需要猜中间的那个数就行。我指的猜数字的规则如下:

  1. 程序产生一个四位的随机数,并且这个随机数的各个数位上的数字都不重复,假设是1675
  2. 玩家给出一个四位数作为猜测,然后程序将玩家猜的数字和程序生成的随机数(以下简称为答案)相对比,并得到两个数字:一个是数字猜中并且位置正确的数位个数,另一个是数字猜中了但是位置猜错的数位个数。假设玩家猜的数字是1753,而答案是1675

1不仅数字猜中了而且位置也正确
7和5虽然数字猜中了,但是位置猜错了
然后程序就会输出1A2B,意思是猜中1个位置正确的数,猜中2个包含但位置不正确的数

  1. 玩家根据程序给出的提示信息缩小范围,重复猜测,直到猜出为止
  2. 为了增加挑战性,规定必须在6次猜测及以内猜中答案

    简单来讲,其实也就是根据程序给的提示信息来猜一个数字不重复的随机四位数。这个游戏玩起来就比较复杂了,有的时候,需要考虑的情况是非常多的,可供猜测的数字也很多,所以可玩性比较大。(以上纯属个人观点)

    如果上面的规则没看懂的话,可以看一下下面的这一段模拟游戏,仅供参考:

玩家:开始游戏
(新游戏开始,程序生成一个随机数1738)
程序:游戏开始,你还剩6次机会
玩家:1435
程序:2A0B(猜中2个位置正确的数,猜中0个包含但位置不正确的数)。你还剩5次机会
玩家:1678
程序:2A1B(猜中2个位置正确的数,猜中1个包含但位置不正确的数)。你还剩4次机会
玩家:7538
程序:2A1B(猜中2个位置正确的数,猜中1个包含但位置不正确的数)。你还剩3次机会
玩家:1738
程序:恭喜你猜中了!答案就是1738




开发过程分析

    为了实现这个游戏,我们需要考虑很多内容。接下来我们尽量以打开游戏,开始游戏到玩游戏的顺序来逐步分析一下这个应用具体开发过程中的主要问题。

  1. 游戏的界面。一个比较合理的游戏界面是这样的:在屏幕底部定义一个输入框(用于玩家输入)和一个按钮(用于触发相关方法,根据玩家的输入得到对应的“回答”)。而剩下的部分,就用来显示玩家和程序的“对话”,或者说游戏的历史记录。如图所示:
    在这里插入图片描述

  2. 本质上讲,Android应用布局里面的各种部件,比如文本框,按钮这些都是对象。按照面向对象的思想,我们需要获取到这些对象,然后才能对部件进行操作,比如给文本框加入文字等等。

  3. 游戏开始的时候,产生随机数的函数。为了避免把大量代码写在主函数里面,我们把这一段代码单独放在一个函数里面。产生随机数我们自然无法办到,所以就需要借助Java自己提供的类或对象来完成这一功能

  4. 程序中涉及到的变量很多,而有的变量需要存在时间短,有的变量需要存在的时间长。比如“存储”Android界面部件对象的变量,就需要一直存在;比如存储答案和游戏剩余次数的变量,也需要一直存在。联系前面讲到的变量的生命周期的知识,我们需要把变量定义在合理的位置,以延长或者缩短其生命周期

  5. 游戏中最重要的部分之一就是如何设计一个函数,它在当按钮被按下的时候就会被调用,然后获取输入框里的内容,根据玩家的输入来得到程序将会给出的“回答”。玩家输入的内容会有以下几种情况:

开始游戏
某个四位数字
什么也没输入
其他内容

很容易想到,我们可以使用判断结构进行判断,然后对这几种情况进行分别处理:若输入“开始游戏”,则程序执行初始化函数,然后在文本框里面添加一些提示文字;若输入某个四位数字,则以这个数字为参数传给一个函数,然后经过比较,返回一段提示信息;若什么都没有输入,则直接使用return语句结束本函数;若输入其他内容,则可以清空输入框,并使用return语句结束本函数。
6. 第5步中提到的那个比较玩家猜测的数字和答案,并给出提示文字的函数也是一个小小的难点。我们不妨定义两个变量,一个记录A的值(猜中位置正确的数的个数),另一个记录B的值(猜中包含但位置不正确的数的个数)。然后使用循环结构,挨个比较玩家猜测的数字中的每一位和答案的数字中的每一位,并在这个过程中增加A和B的值

    好了,大概这个猜数字游戏的主要问题就是这些了。虽然看起来很多,不过也都很好理解。后面如果有更多的问题,我们到时候再解决。

    有了这样的一份“计划清单”或者说是“问题清单”之后,我们就可以在接下来的章节中,逐个解决这些问题,并最终实现我们的猜数字游戏。在这个过程中,必然会出现很多问题和错误。不过,善于发现错误,勇于改正错误,错误就会使我们更强大。




后记

    大家可以看到,哪怕一个看似十分简单的Android应用,也是需要经过细致的思考和大量的努力才可以开发出来的。所以说开发Android应用对于一个普通人来讲,并不是一个轻而易举的事情。当然,如果只是出于兴趣等原因的话,简单了解一点Android应用的开发也是很有意思的。

    接下来的几节,我们会一步一步逐渐实现这个猜数字小游戏。由于本程序的代码比较简单,代码量也并不会太大,所以强烈建议大家尽量自己写一遍。如果因为某些原因不能写的话,我也会在每一节的后记放上那一节讲的代码,可以直接复制(毕竟也不是什么管钱的东西嘛,大家随便用)。如果大家在开发的过程中遇到了问题,欢迎评论留言。

感谢你的阅读!本教程会长期不定时更新。本人不是大神,也会犯错,如果有建议或者提问的话,欢迎评论留言!

系列教程导航

在这里插入图片描述

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值