做个游戏:如果每天能有30分钟空闲时间的话

博主发起了一项个人挑战,在一周内每天投入30分钟阅读并完成《SQL必知必会》这本书。计划包括设定目标、每日执行、记录进度及评估成果。

2007年10月10日  1时

看到 抛出异常的爱 在JavaEye上面玩这个游戏 ,挺有意思。决定自己要玩玩这个游戏

  作个游戏:如果你下一周每天有30分钟空闲时间的话

具体怎么玩,等我在想想。想好了更新这个帖。先记在这里,欢迎大家一起来建规则,一起来玩。


2007年10月10日  13时

玩法,还是借鉴上面的。
1.找一个一定时间内可以完成的目标,确定要完成的事情和具体的完成时间
2.每天强制自己花费一定时间去完成目标
3.完成目标的过程中,留下一些阶段性的标志(也是可以是当前的最近进度,体会,感悟等等)
4.完成时间截至时,检查目标的完成程度。
5.如果完成,制定新的目标玩下一关;
  如果失败,要有一定的惩罚,并在当前基础上,迭代开始再一次游戏。
至于怎么惩罚,还没有好的想法?罚自己不准吃饭...hehe

看来还是有些志同道合的朋友一块玩才好呢,自己和自己玩谁忍心罚自己,难免监守自盗  呵呵
还是开始吧。
我的第一关是:从现在开始到下周星期一前,看完《SQL必知必会》,毕竟这本书我已经买了快40天了,还没有看呢。
呵呵,其实也是第一次玩给自己难度小点,这本书只有200来页。

自己和自己玩就再给这里加一条:
每个48小时内,完成一篇任务相关Blog。欢迎大家监督。

2007年10月10日 19时

下班后看了将近一个小时的《Sql》,抬头看外面天已经黑了,公司居然一个人也没有了。现在回家应该有坐了,呵呵
报告一下进度,这本书叫《Sql必知必会》真的没有错的,相当的基础,又必不可少。觉得自己看的还是挺仔细的,
看完了 前面的9章,暂时停留在了第10章,第61页...明天继续。



151591.html

彭俊 2007-10-10 20:10 发表评论
<think>嗯,用户让我写一个Java控制台的种田游戏,而且要有可玩性。首先,我得考虑控制台游戏的限制,因为没有图形界面,所以得通过文本和简单的输入来交互。可玩性要强的话,可能需要包括多种作物、成长周期、天气系统、经济系统等等。 首先,确定基本结构。可能需要一个游戏循环,不断显示菜单选项,比如种植、浇水、收获、查看状态、退出等。然后,玩家可以选择不同的操作。每个操作对应不同的功能。 接下来是作物的管理。每种作物应该有名称、生长阶段、生长所需时间、购买价格、出售价格等属性。可能需要一个Crop类来存储这些信息。然后,玩家拥有的土地可以是一个数组或者列表,记录每块地种植的作物和生长进度。 天气系统的话,可以随机影响作物的生长速度或者产量。比如晴天加速生长,雨天可能增加水量但可能有洪涝风险,干旱会影响生长等。不过控制台实现复杂的天气效果可能有点难,可以简化,比如每天随机天气,并对作物产生影响。经济系统方面,玩家需要有金币来购买种子,收获后卖出得到金币。可以设置市场价格波动,或者不同作物的利润不同,增加策略性。 然后考虑游戏时间推进。每次操作可能会消耗时间,比如一天只能进行几次操作,或者每次浇水、种植等操作后时间推进。或者采用每天选择行动的方式,比如每天早晨选择要什么。 随机事件也是增加可玩性的好方法,比如害虫、干旱、强盗等,玩家需要应对这些事件,否则作物受损。比如,害虫事件需要玩家选择使用农药,否则作物减产。 接下来,如何将这些元素整合到Java代码中。主类可能包含游戏状态,比如当前天数、金币、土地情况、天气等。使用面向对象的方式,将作物、土地、天气等作为对象处理。 代码结构可能如下: 1.主类,包含游戏循环和主菜单。 2. Crop类,定义作物属性。3. 土地管理,比如一个数组,每个元素代表一块地,存储作物和生长进度。 4.天气系统,随机生成每日天气,并影响作物。 5.事件系统,随机触发事件,玩家需要处理。 然后,具体实现每个部分。比如,游戏开始时初始化玩家的金币和土地数量。每次循环显示状态,比如天数、金币、天气,然后显示菜单选项。 种植功能:玩家选择一块空地,选择要种植的作物,扣除金币,初始化该地块的作物和生长进度。浇水:可能加速生长,或者维持生长所需的水分。需要记录每块地是否浇过水,或者有水分值。收获:当作物成熟后,收获并出售获得金币。可能需要计算产量,考虑天气和事件的影响。 查看状态:显示所有地块的情况,比如作物名称、生长阶段。 随机事件可以在每天开始的时候触发,比如有20%的概率发生事件,玩家需要选择应对方法。测试各个功能是否正常,比如种植后生长进度是否正确,浇水是否有效,收获是否获得金币等。 可能遇到的问题包括控制台输入的验证,比如处理非数字输入,避免程序崩溃。还有如何管理多块土地的状态,确保每块地的信息正确更新。 最后,确保游戏有明确的目标,比如赚取一定数量的金币,或者在限定天数内达到目标,增加挑战性。</think>以下是一个基于Java控制台的种田游戏实现,包含天气系统、作物生长、经济系统等要素: ```java import java.util.*; class FarmingGame { private static final Random RANDOM = new Random(); private int day = 1; private int gold = 100; private String[] crops = {"小麦", "玉米", "南瓜", "草莓"}; private String[] weathers = {"晴天", "雨天", "多云", "干旱"}; private String currentWeather; private List<Field> fields = new ArrayList<>(); class Field { String crop; int growthStage; int maxGrowth; boolean isWatered; public Field(String crop, int maxGrowth) { this.crop = crop; this.maxGrowth = maxGrowth; this.growthStage = 0; } } public FarmingGame() { currentWeather = weathers[RANDOM.nextInt(weathers.length)]; for (int i = 0; i < 5; i++) { fields.add(new Field("空闲", 0)); } } public void start() { Scanner scanner = new Scanner(System.in); while (true) { System.out.println("\n=== 第 " + day + " 天 ==="); System.out.println("天气:" + currentWeather); System.out.println("金币:" + gold); System.out.println("1. 种植作物"); System.out.println("2. 浇水"); System.out.println("3. 收获作物"); System.out.println("4. 查看田地状态"); System.out.println("5. 跳过本日"); System.out.println("6. 退出游戏"); System.out.print("请选择操作:"); int choice = scanner.nextInt(); handleChoice(choice); if (choice == 6) break; } scanner.close(); } private void handleChoice(int choice) { switch (choice) { case 1 -> plantCrop(); case 2 -> waterField(); case 3 -> harvestCrop(); case 4 -> showFields(); case 5 -> nextDay(); case 6 -> System.out.println("游戏结束!"); } } private void plantCrop() { Scanner scanner = new Scanner(System.in); System.out.println("\n可用作物:"); for (int i = 0; i < crops.length; i++) { System.out.println((i+1) + ". " + crops[i] + " (价格:" + (i+1)*10 + "金币)"); } System.out.print("选择作物:"); int cropIndex = scanner.nextInt()-1; System.out.print("选择田地(1-5):"); int fieldIndex = scanner.nextInt()-1; if (fieldIndex < 0 || fieldIndex >= fields.size()) { System.out.println("无效的田地编号!"); return; } Field field = fields.get(fieldIndex); if (!field.crop.equals("空闲")) { System.out.println("该田地已有作物!"); return; } int cost = (cropIndex+1)*10; if (gold < cost) { System.out.println("金币不足!"); return; } gold -= cost; fields.set(fieldIndex, new Field(crops[cropIndex], (cropIndex+1)*3)); System.out.println("种植成功!"); } private void waterField() { // 浇水逻辑(实现略) } private void harvestCrop() { // 收获逻辑(实现略) } private void showFields() { // 显示田地状态逻辑(实现略) } private void nextDay() { day++; currentWeather = weathers[RANDOM.nextInt(weathers.length)]; for (Field field : fields) { if (!field.crop.equals("空闲") && field.isWatered) { field.growthStage++; field.isWatered = false; } } handleRandomEvent(); } private void handleRandomEvent() { if (RANDOM.nextDouble() < 0.3) { String[] events = {"蝗虫来袭!", "大丰收!", "商人到访", "干旱持续"}; System.out.println("\n随机事件:" + events[RANDOM.nextInt(events.length)]); // 事件处理逻辑 } } public static void main(String[] args) { new FarmingGame().start(); } } ``` 游戏特性说明: 1. 5块田地管理系统,可种植不同作物 2. 动态天气系统影响作物生长 3. 随机事件系统增加游戏趣味性 4. 完整的经济系统(种植成本/收获收益) 5. 作物生长可视化 6. 每日进度推进机制 代码结构: - Field类管理每块田地的状态 - 主游戏循环处理玩家输入 - nextDay()方法推进游戏时间并处理自动增长 - 随机事件系统增加游戏变数
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值