Permalänk

C# 2D Vektor spel

Kämpar i nuläget med denna uppgift, jag förstår inte varför utskriften blir fel. Koordinaterna som matas in hamnar inte rätt på spelbrädet, och jag kan inte luska ut vart jag har knappat fel. Hjälp snälla!

UPPDATERING: Jag tror det är Y axeln som inte funkar som den ska.

static void Main(string[] args) { int[,] GameBoard = new int[4, 4]; int x; int y; System.Random Position = new System.Random(); GameBoard[Position.Next(4), Position.Next(4)] = 2; while (true) { GameGrid(GameBoard); System.Console.WriteLine("NEW SHOT"); System.Console.Write("INPUT X COORDINATES: "); x = int.Parse(System.Console.ReadLine()); int guessedRow = x-1; System.Console.Write("INPUT Y COORDINATES: "); y = int.Parse(System.Console.ReadLine()); int guessedColumn = y-1; System.Console.WriteLine("____________________"); if(GameBoard[guessedRow,guessedColumn] == 2) { System.Console.WriteLine("You hit the target, congratulations!!"); return; } else { GameBoard[guessedRow,guessedColumn] = 1; //användarens inmatning sätts som variabeln: 1 System.Console.WriteLine("You missed! try again"); } } } //______________________________________________________ static void GameGrid(int[,] grid) { int count = 1; System.Console.WriteLine(" |1|2|3|4|"); for (int y = 0; y < 4; y++) { System.Console.Write("" + count + "|"); for (int x = 0; x < 4; x++) { if(grid[y,x] == 1) //Här sker något fel. Användarens inmatning är 1. Men det blir helt fel placering på spelbrädet { System.Console.Write("* "); } else { System.Console.Write(""); } } System.Console.WriteLine(""); count++; } }

Permalänk
Medlem

När du hanterar användarens inmatning så använder du motsvarande [x, y] som koordinater, men när du ritar ut spelplanen så använder du istället [y, x].

Permalänk
Medlem

Som perost säger har du vänt på x och y, sedan så ser det skumt ut pga att " " inte fyller ut något när du skriver det till konsolen så det trycks ihop.

testa

static void GameGrid(int[,] grid) { int count = 1; System.Console.WriteLine(" |1|2|3|4|"); for (int y = 0; y < 4; y++) { System.Console.Write("" + count + "|"); for (int x = 0; x < 4; x++) { if(grid[x,y] == 1) //Här sker något fel. Användarens inmatning är 1. Men det blir helt fel placering på spelbrädet { System.Console.Write("*|"); } else { System.Console.Write(" |"); } } System.Console.WriteLine(""); count++; } }

Visa signatur

"One is always considered mad, when one discovers something that others cannot grasp."
- Ed Wood