农场游戏开发记录六

嗯……今天完成的任务有:一、实现了卖的方法(farmer类的sell方法)。可以从仓库里卖掉指定货物/数量,库存减少而资金增加。二、创建了土壤soil类,用农场类来管理soil类(数组),实现土壤状态查询,实现农场升级土壤数量增加的方法。
今天学到:数组之间赋值必须按索引一个个的赋值,只写数组名赋值实际上是把地址赋值了。

今天主要更新代码:
Farmer类

package code;

import plants.Plants;

public class Farmer {

	private float cash = 100.0F;

	public void Seed(Plants plts) {
		System.out.println("种植 : " + plts.getName());
		plts.setStatus(1);

	}

	public void TakeCare(Plants plts) {
		if (plts.getStatus() <= 2)
			plts.setStatus(plts.getStatus() + 1);
		else
			System.out.println(plts.getName() + " 已经成熟啦。 ");
	}

	public boolean Harvest(Plants plts) {
		if (plts.getStatus() >= 3) {
			System.out.println("收获了:" + plts.getName());
			return true;

		}

		else {
			System.out.println(plts.getName() + " 还没成熟. ");
			return false;
		}

	}

	public float Sell(Products pdcts) {
		float sum = pdcts.getPrice() * pdcts.getProductNum();
		cash = cash + sum;
		System.out.println("卖了:" + pdcts.getProductNum() + "个" + pdcts.getProductName() + " 共计 " + sum + " 元。");
		return sum;
	}

	public void setCash(float x) {
		cash = x;
	}

	public float getCash() {
		return cash;
	}
}

Soil类:

package farm;

/*土壤类,属性soilStatus,初始值为0,代表没有种植作物。
 * 当赋值为1后则代表已经种上作物,不可以再种。
 * 收割后,soilStatus重置为0。 */

public class Soil {

	private int soilStatus;

	public Soil() {
		soilStatus = 0;
	}

	public int getSoilStatus() {
		return soilStatus;
	}

	public void setSoilStatus(int i) {
		soilStatus = i;
	}
}

Farm类:

package farm;

public class Farm {

	/*
	 * 农场类,用来处理土地对象数组Soil[];农场状态用来表示农场等级,等级越高土地越多。 按每一级增加四块Soil来计算。
	 */
	private int farmArea;
	private int farmStatus;
	private Soil[] soilArray;
	
	Farm(){
		farmStatus = 1;
	}

	/*
	 * 升级农场方法,每升一级,需重新定义Soil数组。并将原Soil数组赋值给新的Soil数组。
	 */
	public void updateFarm() {
		if (farmStatus < 5) {
			farmStatus += 1;
			Soil[] soilArray1 = soilArray;
			setSoilArray();
			for (int i = 0; i < soilArray1.length; i++) {
				soilArray[i] = soilArray1[i];
				System.out.print(soilArray[i].getSoilStatus() + " ");
			}
			System.out.println();
			System.out.println(soilArray.length + "***");
			for (int i = 0; i < soilArray.length; i++) {
				System.out.print(soilArray[i].getSoilStatus() + "/");
			}
			System.out.println("农场成功升到" + farmStatus + "级。");
		}

		else
			System.out.println("农场已升级到顶级!");
	}

	

	public void setFarmArea(int i) {
		farmArea = i;
	}

	public int getFarmArea() {
		return farmArea;
	}

	public void setFarmStatus(int i) {
		farmStatus = i;
	}

	public int getFarmStatus() {
		return farmStatus;
	}

	public void setSoilArray() {
		int i = getFarmStatus();
		//动态的根据农场的等级创建新的Soil数组
		soilArray = new Soil[i * 4];
		for(int j =0;j<soilArray.length;j++) {
			soilArray[j]=new Soil();
		}
//		System.out.println(soilArray.length + "+++");
	}

	public Soil[] getSoilArray() {
		return soilArray;
	}
//測試用main函數
//	public static void main(String[] args) {
//		Farm farm = new Farm();
//		farm.setSoilArray();
//		farm.updateFarm();
//	}
}

下一步的目标是:一、农村合作社类,包括买种子、卖产品等功能。建筑商店,包括升级农场的功能。还是采取继承的办法。一个商店类,下面有农村合作社和建筑商店。二、开始创建控制台交互方法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值