我和我的朋友决定开始在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#时,我们收到错误消息:“数组初始值设定项只能在变量或字段初始值设定项中使用。”
这是我们第一次用一种新语言编写一年,所以除了最基本的表达之外,我们都失去了。请帮忙!
答案 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[][]{}