当前位置: 首页 > 知识库问答 >
问题:

Java - 保存基于文本的冒险游戏

贾成天
2023-03-14

所以我是Java编码的新手,我对C#有很好的经验,我知道它们非常相似。我目前正在通过创建一个文本冒险游戏来处理Java,游戏使用案例(案例1、案例2、默认等),目前我正在开发一个保存和加载功能,但我不知道如何保存一个使用案例来进一步编码的分支游戏,有人有什么想法吗?

共有2个答案

强硕
2023-03-14

为了结合您的解释和@JodanGS的答案,这里有一个基本的注释演示,说明如何将不同的“用户相关”变量存储到hashmap中:

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class StoreCase {

    private static Map<String, String> casesMap = new HashMap<>();
    private static final String CASE1 = "case1";
    private static final String CASE2 = "case2";

    public static void main(String[] args) {

        Scanner input = new Scanner( System.in );
        System.out.println("Which  case ? (1 or 2)");

        //initialize map
        casesMap.put(CASE1, null);
        casesMap.put(CASE2, null);

        //select case : get user input
        String s = null; boolean loop = true;
        int case1State = 0;

        while (loop ) {

            s= input.nextLine();

            try {

                case1State = Integer.parseInt(s);

            }catch (NumberFormatException ex) {}

            switch (case1State) {

                case 1:
                    //store case in map
                    casesMap.put(CASE1, String.valueOf(case1State));
                    //stop loop flag
                    loop = false;
                    //do something
                    break;

                case 2:
                    //store case in map
                    casesMap.put(CASE2, String.valueOf(case1State));
                    //stop loop flag
                    loop = false;
                    //do something
                    break;
                default:
                    System.out.println("Not valid. Try again.");
            }
        }

        //print map
        for(String key : casesMap.keySet()) {

            System.out.println(" case "+ key  +" state "+ casesMap.get(key));
        }
    }
}

我希望你觉得它有用。

秦俊
2023-03-14

维护一个数据对象,具有键值对的哈希图应该适合跟踪所有相关状态。每次发生案例时,该键的关联值都会更新。当他们选择保存时,您将哈希图导出为您想要的任何格式的文本文件,只要它是键值对,例如xml。您只需将相同的文件加载到您的哈希图中,这将使您的游戏初始化为停止的状态。

 类似资料:
  • 在我的游戏中有几个类我写过,包括房间,灯,胸,爪哇,玩家,钥匙和地图。这些都经过了测试,并且是正确的,所以现在我正在编写我的adventure类,它是程序的驱动程序。我需要设置球员的房间位置[0][0],但我不知道怎么做。这是我到目前为止在我的房间和冒险课。

  • 我正在Java制作一个基于文本的冒险游戏。我需要让用户能够拿起物品并将其放入库存中,但我不确定如何做到! 这是我的项目当前的设置方式: 我需要能够在某些房间里有特定的物品。有人有什么建议吗?

  • 本文向大家介绍基于javascript实现泡泡大冒险网页版小游戏,包括了基于javascript实现泡泡大冒险网页版小游戏的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了一个很有趣的网页版游戏,有点类似金山打字游戏的青蛙过河,供大家参考,具体内容如下 效果图: 实现思路: 益智类小游戏,主要练习打字能力,基于jq开发。 1.在输入框输入泡泡对应文字,点击enter提交 2.与泡泡文字

  • 我目前正在创建一个冒险游戏,你通过输入命令(北,南)通过一个地牢的房间移动。所以我试图用字典把每个房间连接在一起,这样我就可以用“北”、“南”等键来移动这些房间。但我似乎不明白。有什么想法吗?

  • 我正在创建一个Java的文本冒险,并试图使其尽可能面向对象。我正在讨论如何处理房间和该房间中的可用项目。目前我的房间类设置如下: 我有一个游戏类,我计划初始化房间,我还有一个输入类,它检查用户输入并执行操作。我的问题是我不知道如何处理项目列表。我不想为每个房间创建一个新房间和多个新列表。我觉得这会很快变得一团糟。有没有办法以更干净的方式表达同样的想法?每个房间都有自己的班级,我认为这太过分了。谢谢

  • 问题内容: 我对Java中的一些中间概念还很陌生。最近,我制作了一款名为DazzleQuest的文字冒险游戏,该游戏完全在开发者控制台/终端中运行。它以我的朋友为角色,因此我想向他们展示它,并通过将命令行和控制台的输出功能转移到一个简单的Swing界面(包括一个用于显示游戏输出的a和一个带有,处理来自用户的命令。 我的主类包含名为和的方法,我认为我需要将其与我的类及其子类[扩展] 集成在一起。 总