期待される:char 'H'はデフォルトの 'X'で作られた5x5配列内を移動します。C#で配列内の文字を移動する
結果1:一致するインデックス付き 'X'を置き換える代わりに、 'H'と 'P'を追加するとグリッドが展開されます。
結果2:char 'H'は移動しません。
ここでのコードは、これまでだ。このような何かが
public static void move(ref int[][] grid, ref int heroX, ref int heroY, int upDown, int leftRight) {
if ((heroX + upDown >= 0) && (heroX + upDown < grid.Length) &&
(heroY + leftRight >= 0) && (heroY + leftRight < grid[heroX + upDown].Length)) {
int aux = grid[heroX][heroY];
grid[heroX][heroY] = grid[heroX += upDown][heroY += leftRight];
grid[heroX][heroY] = aux; //heroX and heroY were changed in the previous operation
}
}
をあなたを助ける必要があるだけで、グリッド、現在のx、英雄のy座標を渡す
class Mainclass
{
public static void Main(string[] args)
{
Console.WriteLine("The Board Game");
Console.WriteLine();
Console.WriteLine(">>Press any key to begin<<");
Console.ReadKey();
Console.Clear();
Console.WriteLine("The Board Game");
Console.WriteLine();
CreateGrid();
Console.WriteLine();
Console.WriteLine("H = your hero");
Console.WriteLine();
Console.WriteLine("X = floor tiles");
Console.WriteLine();
Console.WriteLine("P = enemy pawn");
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("Press the arrows in your keyboard to move in that direction");
}
public static void CreateGrid()
{
int width = 5;
int height = 5;
char[,] grid = new int[width, height];
grid[2, 2] = 'H';
grid[4, 4] = 'P';
for (int x = 0; x < width; x++)
{
for (int y = 0; y < height; y++)
{
Console.Write(grid[x, y] + " ");
}
Console.WriteLine();
}
if (ConsoleKeydown(ConsoleKey.up)){
get hero.index[,];
newHeroPosition = Hero.index +1, +0;
char hero.index = H;
char newHeroPosition = x;
}
/*I want the tile to be identified and swap the char value
of it with the one above it on the grid */
}
}
}
....これは、コードのサービスサイトではありません......しかし、あなたが特定の問題をしようと読んでた後で行うので管理していないかを説明するための場所。 ...あなたの配列にある文字については、代わりに 'char [、]'を使用してください。 –
@Nunoこのサイトでは敬語は必要ありません。私はおそらく、ダウンマーク警察が来る前にそれらを削除するだろう。 –
こんにちは@GiladGreen!申し訳ありませんが、私はここでメタが欠けています。 char可変型に関するヒントをありがとう。私の目標に役立つと思われる参考資料も大歓迎です。 –