《Head First Java》20200904读书笔记

P95

《Head First Java》20200904读书笔记

第五章 编写程序

高层设计

在这里插入图片描述

在这里插入图片描述

游戏的简单版

程序的编写:

  1. 找出类应该做的事
  2. 列出实例变量和方法
  3. 编写方法的伪码
  4. 编写方法的测试用程序
  5. 实现类
  6. 测试方法
  7. 除错或重新设计

在这里插入图片描述
每个类的编写:

  1. 编写伪码
  2. 编写测试码
  3. 编写真实码

在这里插入图片描述
伪码:实例变量的声明、方法的声明、方法的逻辑
测试码:先写出测试用的部分

class SimpleDotComTestDrive

package SimpleDotComGame;

public class SimpleDotComTestDrive {
	
	public static void main (String[] args) {
		SimpleDotCom dot = new SimpleDotCom();
		int[] locations = {2,3,4};
		dot.setLocationCells(locations);
		String userGuess = "2";
		String result = dot.checkYourself(userGuess);
	}
}

class SimpleDotCom

package SimpleDotComGame;

public class SimpleDotCom {
	
	int[] locationCells;
	int numOfHits = 0;
	
	public void setLocationCells(int[] locs) {
		locationCells = locs;
	}
	
	public String checkYourself(String stringGuess) {
		int guess = Integer.parseInt(stringGuess);
		String result = "miss";
		for (int cell : locationCells) {
			if (guess == cell) {
				result = "hit";
				numOfHits++;
				break;
			}
		}
		
		if (numOfHits == locationCells.length) {
			result = "kill";
		}
		System.out.println(result);
		return result;
	}

}

结果:
在这里插入图片描述
class GameHelper

package SimpleDotComGame;

import java.io.*;

public class GameHelper {
	public String getUserInput(String prompt) {
		String inputLine = null;
		System.out.print(prompt + " ");
		try {
			BufferedReader is = new BufferedReader(new InputStreamReader(System.in));
			inputLine = is.readLine();
			if(inputLine.length() == 0 ) return null;
		}catch (IOException e){
			System.out.println("IOException:" + e);
		}
		return inputLine;
	}

}

class SimpleDotComGame

package SimpleDotComGame;

public class SimpleDotComGame {
	public static void main(String[] args) {
		int numOfGuesses = 0;
		GameHelper helper = new GameHelper();
		
		SimpleDotCom theDotCom = new SimpleDotCom();
		int randomNum = (int) (Math.random() * 5);
		
		int[] locations = {randomNum,randomNum+1,randomNum+2};
		theDotCom.setLocationCells(locations);
		boolean isAlive = true;
		
		while(isAlive == true) {
			String guess = helper.getUserInput("输入一个数字:");
			String result = theDotCom.checkYourself(guess);
			numOfGuesses++;
			if(result.equals("kill")) {
				isAlive = false;
				System.out.println("You took" + numOfGuesses + "guesses");
				}
			}
	}
}

结果:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值