制作基于文本的游戏

本文关键字:文本 游戏 于文本 | 更新日期: 2023-09-27 17:59:39

我和我的朋友决定一起用C#制作游戏。主要的问题是,除了我们只能用Javascript编程这一事实之外,我们在高中时在编程101中所学到的很少的东西大多已经被遗忘了。

在决定重新审查我们的旧程序时,我们几乎立刻遇到了问题。我们被要求制作一款名为Wompus的游戏,这是一款简单的基于文本的冒险游戏,由一张地图、一个怪物和黄金组成。我们使用以下代码在Java中制作了地图:

static char[][] cave = {
        {'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X'},
        {'X', 'O', 'O', 'X', 'O', 'O', 'X', 'O', 'M', 'X'},
        {'X', 'O', 'X', 'X', 'O', 'O', 'O', 'O', 'O', 'X'},
        {'X', 'O', 'X', 'O', 'O', 'O', 'O', 'O', 'X', 'X'},
        {'X', 'O', 'O', 'O', 'O', 'O', 'X', 'X', 'X', 'X'},
        {'X', 'O', 'O', 'O', 'X', 'O', 'O', 'O', 'X', 'X'},
        {'X', 'O', 'O', 'X', 'X', 'X', 'O', 'O', 'O', 'X'},
        {'X', 'O', 'O', 'X', 'O', 'O', 'O', 'O', 'X', 'X'},
        {'X', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'X', 'X'},
        {'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X'}};

X代表一堵墙,O代表一个空白(M和G分别是Monster和Gold)。然而,当转换到C#时,我们会得到错误消息:"数组初始化器只能在变量或字段初始化器中使用。"

这是我们一年多来第一次使用新语言进行编程,所以除了最基本的表达式外,我们已经失去了所有的表达式。请帮助!

制作基于文本的游戏

Jugged array(数组的数组)是您试图声明的。正确的语法是

  static Char[][] cave = new Char[][] { // <- new Char[][] - creating an array of array
    // new Char[] <- each line is an array 
    new Char[] {'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X'},
    new Char[] {'X', 'O', 'O', 'X', 'O', 'O', 'X', 'O', 'M', 'X'},
    new Char[] {'X', 'O', 'X', 'X', 'O', 'O', 'O', 'O', 'O', 'X'},
    new Char[] {'X', 'O', 'X', 'O', 'O', 'O', 'O', 'O', 'X', 'X'},
    new Char[] {'X', 'O', 'O', 'O', 'O', 'O', 'X', 'X', 'X', 'X'},
    new Char[] {'X', 'O', 'O', 'O', 'X', 'O', 'O', 'O', 'X', 'X'},
    new Char[] {'X', 'O', 'O', 'X', 'X', 'X', 'O', 'O', 'O', 'X'},
    new Char[] {'X', 'O', 'O', 'X', 'O', 'O', 'O', 'O', 'X', 'X'},
    new Char[] {'X', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'X', 'X'},
    new Char[] {'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X'}};

我认为您必须使用new关键字初始化数组:

static char[][] cave = new char[][]{}