制作基于文本的游戏

时间:2015-06-24 11:29:10

标签: c# dictionary arraylist

我和我的朋友决定开始在C#中一起制作游戏。主要的问题是,我们在高中编程101中学到的很少,除了我们只能用Javascript编程之外,大部分都被遗忘了。

决定审查我们的旧程序,我们几乎立即遇到了问题。我们制作了一款名为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#时,我们收到错误消息:“数组初始值设定项只能在变量或字段初始值设定项中使用。”

这是我们第一次用一种新语言编写一年,所以除了最基本的表达之外,我们都失去了。请帮忙!

2 个答案:

答案 0 :(得分:1)

Jugged数组(数组数组)是您要声明的内容。正确的语法是

  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'}};

答案 1 :(得分:0)

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

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