Java 编写程序 创建一个游戏【5、6两章的内容】【第5章】

每次使用单边大脑的时间不要太久, 连续使用左边脑30 分钟如同使用左臂 30 分钟一样,

周期性性地交换让大脑两侧轮流休息。

左脑活动包括了循序渐进的工作,解决逻辑问题与分析;

右脑的活动包括了阴雨、创造性思考、模式匹配与可视化。 




 

【自顶行下的设计】【首先进行高层设计,判断需要用到的类和方法】

【了解实现的流程】【专注于程序中出现的事物,并设想出需要哪些对象】【流程图】

                         【面向对象的方式思考;专注于程序中出现的“事物”,而不是“过程”】

【开始编写程序时】【遵循良好的面向对象的原则,并且没有让单一的类执行过多的任务】

                            你要决定哪个类先创建出来?假设某个类需要用到多个类,又该从哪里开始?

Key Points:

           创建新的类的时候需要写出下列3种东西:【伪代码——>测试码——>真实码】:

  1. 【伪代码】大致上包括实例变量的声明、方法的声明、和方法的逻辑(逻辑最重要,定义了会发生什么事情)

                        常用伪代码语句:Declare  Make  Compute  Invoke  Repeat/While  If        Get         Set   Print

                                               声明      定义    计算         调用      循环               判断    获得输入   设置  打印

  1. 伪代码描述的是要做什么事情而不是如何做;
  2. 使用伪代码来帮助测试码的设计;
  3. 实现方法之前应该要编写测试码;



 

创建Java类:

  • 找出类应该做的事
  • 列出实例变量和方法
  • 编写方法的伪代码
  • 编写方法的测试用程序
  • 实现类
  • 测试方法
  • 除错或者重新设计
  • 不靠谱之 邀请辣妹参加庆功派对,如家??七天酒店来一发??

给你聚一个栗子

  • 游戏目标:以最少的猜测次数打掉计算机安排的 dot com目标。
  • 游戏规则:在7*7的网格上,创建3个达康公司的目标。命中3次,则击沉。
  • 游戏进行:【由于欠缺图形接口的程序设计,所以在这一次的命令栏上进行。】
  •                 计算机要求你输入所猜测的位置(如,A3,B2),计算机反馈hit或者miss或者sunk等回应。清除所有的战舰之后,游戏结束。

 




  •  【列出实例变量和方法】

                                   实例变量的声明    Declare an int array to hold the location cells.Call it locationCell.

                                                           Declare an int to hold the numble of hits.Call it numofHits and set it to 0.


 

                                        方法的声明     Declare a checkYourelf() method that  takes a String for the user's guess ("1","3" ,etc), checks  it.                                                                            and returns a result  representing a "hit"  "kill"  "miss".

                                                           Declare a setLocationCells() setter method that takes an int array(which has the three cell location as                                                                           ints (2.3.4.etc))




  • 【编写方法的伪代码】

                       Method : String checkYourself(String userGuess)

                       Get  the user's guess as a string parameter

                       Convert the guess to an int

                        Repeat with each of the location cells in the int array 

                                     // Compare the user guess to the location cell

                                     if the user guess to matches

                                         increment the numbers of hits     

                                             //find out if it was the last location cell;

                                             if number of  hits is 3

                                                    return "kill" 

                                                  else return "hit"

                                             end if

                                        else return "miss"

                                    end if

                            end repeat

                      end method


 

                     Method : void setLocationCells (int[] cellLocation)

                                   Get the cell location as an array parameter

                                   Assign the cell locations parameter to the cell locations instance variable

                    end method




概念:极限编程(XP) 建议阅读专门的书籍,以免一知半解。

                                    在编写真正可用的方法之前,首先编写出测试方法用的代码。

  • 【编写方法的测试用程序 】:创建对象并加以测试其实测试某一个方法;实现并正确执行;

                                                                        

 

转载于:https://www.cnblogs.com/Chuichui233/p/5153880.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/285804.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一般地

2019独角兽企业重金招聘Python工程师标准>>> 1.EO的Updatable属性默认为Always,基于EO创建的VO也是。而基于SQL创建VO的Updatable属性默认为Never,如果要修改(例如将VO拖至页面生成Form用于新增),则需将该属…

【CASS精品教程】南方CASS内业基本作图--野外测记草图法绘制常见地物教程

文章目录 一、系统环境:1.1 操作系统1.2 应用环境二、实例数据:2.1 野外测点CASS坐标格式数据2.2 野外测记草图三、地物绘制前准备操作3.1 定显示区3.2 展野外测点点号:3.3 绘图测点定位模式的选择四、野外测记草图绘制常见基本地物4.1绘制交通设施4.2绘制居民地4.3 绘制地貌…

最新!2019 年中国程序员薪资生存调查报告出炉

此调查,是对北京、上海、广东和浙江等全国 29 个省、直辖市及特别行政区的 26W 优秀程序员进行了一次详细的调查,形成本报告。 根据中国互联网络信息中心(CNNIC)近日发布第 43 次《中国互联网络发展状况统计报告》。截至 2018 年 …

快速掌握 ASP.NET 身份认证框架 Identity - 登录与登出

推荐关注「码侠江湖」加星标,时刻不忘江湖事这是 ASP.NET Core Identity 系列的第三篇文章,上一篇文章讲解了如何在 ASP.NET Core Identity 中实现用户注册。那么,这篇文章讲一讲如何在 ASP.NET Core Identity 中实现用户的登录与登出。点击上…

C语言试题七十九之请编写函数实现自然底数 e=2.718281828

📃个人主页:个人主页 🔥系列专栏:C语言试题200例目录 💬推荐一款刷算法、笔试、面经、拿大公司offer神器 👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 请编写函数…

PHP和Mysql处理IP地址

PHP: 32位整型(bigint) ip2long (IP —> long) long2ip (long —> ip) Mysql: 10位无符号整型(INT UNSIGNED) INET_ATON (IP —> long) INET_NTOA (long —> ip) 转载于:https://www.cnblogs.com/yudis/articles/5976362.html

如何创建NFT并OpenSea上展示《alchemy How to Develop an NFT Smart Contract》译

翻译:1_bit 原文:https://docs.alchemy.com/docs/how-to-develop-an-nft-smart-contract-erc721-with-alchemy 注:英文不好各位多多担待 1.如何使用 Alchemy 开发一个 NFT 智能合约 在你第一次使用 solidity 时开发一个智能合约部署在区块…

Jmeter之Bean shell使用(二)

上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求。本节内容如下: 一、操作变量 二、操作属性 三、自定义函数 四、…

【ArcGIS风暴】ArcGIS中国地表覆盖数据GlobeLand30预处理(批量投影、拼接、掩膜提取)附成品下载

结果示意图: GlobeLand30是30米空间分辨率全球地表覆盖数据,目前可供下载的有3年的数据:2000-2010-2020。本文主要讲解在ArcGIS10.6平台下进行GlobeLand30的预处理操作,主要预处理步骤包括:批量分幅投影转换、批量分幅…

Asp.Net MVC4入门指南(9):查询详细信息和删除记录

在本教程中,您将查看自动生成的Details和Delete方法。 查询详细信息和删除记录 打开Movie控制器并查看Details方法。 ?Code First 使得您可以轻松的使用Find方法来搜索数据。一个重要的安全功能内置到了方法中。方法首先验证Find方法已经找到了一部电影&#xff0c…

漫画:什么是架构师?

于是,小灰去向大黄请教 这是有关未来的故事: 从前,有一个赶路的人路过一片工地,看到三个年轻人在工地上搬砖。 于是,他问其中一个人: 于是,他又问了第二个人: 于是,他又问…

Andoroid之BottomNavigationView右上角添加红点布局和自动跳转到底部具体第几个Tab

一、需求 BottomNavigationView右上角添加红点布局和自动跳转到底部具体第几个Tab 我们知道BottomNavigationView是在google material里面的组件 github地址如下: https://github.com/material-components/material-components-android 二、效果图片爆照 三、BottomNaviga…

FileSystemWatcher监听文件是否有被修改

作用:监听文件系统更改通知,并在目录或目录中的文件更改时引发事件。 需求:监听特定文件是否修改,然后做出相应的操作。 方法: ①利用一个线程,一直去查找该指定的文件是否有被修改,如果修改则操…

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》

学习目标 了解 FFmpeg学习 FFmpeg 工具的下载及环境配置了解 FFmpeg 工具的使用方式了解 FFmpeg play 的使用方法了解 FFmpeg paly 的音量设置、窗口设置、音量设置等设置方法 一、了解 FFmpeg FFmpeg 是一个音视频处理的工具,通过 FFmpeg 可以对视频进行旋转、缩…

快速掌握 ASP.NET 身份认证框架 Identity - 用户注册

推荐关注「码侠江湖」加星标,时刻不忘江湖事这是 ASP.NET Core Identity 系列的第二篇文章,上一篇文章介绍了 Identity 框架的集成,以及一些基础知识。这篇文章讲一讲如何在 ASP.NET Core Identity 中实现用户注册。点击上方或后方蓝字&#…

Android命令Monkey压力测试,详解

支持原创,前半部分来源博客原文:http://blog.csdn.net/huangbiao86/article/details/8490743shell, monkey, system, Android, 文件系统Monkey, 示例, 简介一、Monkey测试简介Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟…

JAVA 排序工具类

提供了以下排序: 冒泡排序选择排序插入排序希尔排序快速排序归并排序桶排序堆排序package com.xingej.algorithm.sort;import java.util.ArrayList; import java.util.Collections;/*** 排序工具类* * author erjun 2017年12月13日 上午8:38:22*/public class SortU…

js中null,undefined,false,0,'',[],{}判断方法

目录 1.数据类型 2.JSON字符串 3.数字类型 4.非的布尔值 5.与非比较 一、单独判断 1.null 2.undefined 3.0 4.“” 5.判断undefined、null与NaN: 因为获取到数据的不确定性,常常会导致一些异常情况,使得页面报错,往往要兼容这些异…

【GIS风暴】30米分辨率地表覆盖数据GlobeLand30原始数据集简介及下载地址

数据集预览: GlobeLand30是30米空间分辨率全球地表覆盖数据,目前可供下载使用的有3年的数据:2000-2010-2020,本文主要讲述GlobeLand30的官网下载地址和数据集简介。 数据处理方法、成果数据下载: 【ArcGIS风暴】ArcGI…

Git之解决git stash pop多次产生的文件冲突问题

1、问题 我们用git命令一般拉取线上代码的时候,本地修改了,我们一般先git stash下,接下来git pull, 然后git stash pop下,但是我新增了文件,没有添加到本地git(也就是没有git add file这个新增加的文件),然…