Я новичок в языке C #, и мне жаль, если эту проблему легко решить, я проверил веб-сайт, и в настоящее время у меня возникает проблема, когда переменная изменилась, не вызывает каких-либо изменений в методе, это звучит довольно расплывчато, поэтому вот код ниже.
public string PlayerToIcon(int LocA, int LocB)
{
PlayGame play = new PlayGame();
int[,] Board = play.Board;
int LocData = (Board[LocA, LocB]);
if (LocData == 0) { return " "; }
else if (LocData == 1) { return "X"; }
else { return "O"; }
}
Плата показана ниже и представляет собой простой массив. - это в другом файле
public class PlayGame
{
public int[,] Board = new int[3, 3]
{ //A B C
{0,0,0 }, // 1
{0,0,0 }, // 2
{0,0,0 } // 3
};
}
Я сделал функцию для изменения чисел в массиве, и, как видно, он работает при использовании прямых команд, но в PlayerToIcon цифры не меняются.
Например, если это было 0, и я изменил его на 1, PlayerToIcon все еще читает это как 0
Спасибо
Извините, если это простая проблема
Редактировать
Это то, что изменяет переменные в массиве. Return State гарантирует, что оно не изменится, если 1 или 2
public class PlayGame
{
public bool SelectSquare(string Location, int Player)
{
List<int> ConvertedLocation = ConvertLoc(Location);
Console.WriteLine(ReturnState(Location));
Console.WriteLine(ConvertedLocation[0].ToString() + ConvertedLocation[1].ToString());
if (ReturnState(Location) == 0) { Board[ConvertedLocation[0], ConvertedLocation[1]] = Player; return true;}
else { return false; }
}
}
Код не распознается на дисплее
public class Interface
{
PlayGame play = new PlayGame();
public void GenMap()
{
string NewLine;
Console.Clear();
Console.WriteLine(" | A | B | C |");
Console.WriteLine("-----------------");
new PlayGame();
NewLine = System.String.Format("| 1 | {0} | {1} | {2} |", (play.PlayerToIcon(play,0, 0)), (play.PlayerToIcon(play, 0, 1)), (play.PlayerToIcon(play, 0, 2)));
Console.WriteLine((string)NewLine);
Console.WriteLine("----------------");
NewLine = System.String.Format("| 2 | {0} | {1} | {2} |", (play.PlayerToIcon(play, 1, 0)), (play.PlayerToIcon(play, 1, 1)), (play.PlayerToIcon(play, 1, 2)));
Console.WriteLine((string)NewLine);
Console.WriteLine("-----------------");
NewLine = System.String.Format("| 3 | {0} | {1} | {2} |", (play.PlayerToIcon(play, 2, 0)), (play.PlayerToIcon(play, 2, 1)), (play.PlayerToIcon(play, 2, 2)));
Console.WriteLine((string)NewLine);
Console.WriteLine("-----------------");
}
public string PlayerToIcon(int LocA, int LocB)
{
int[,] Board = play.Board;
int LocData = (Board[LocA, LocB]);
if (LocData == 0) { return " "; }
else if (LocData == 1) { return "X"; }
else { return "O"; }
}
}