@stanislav_krayniy

Как написать проверку на нахождение знака в консоли c#?

Только начал программировать. На c#. Пишу крестики-нолики, мне нужно чтобы пользователь не мог 2 раза поставить в одно место. Для этого нужно написать проверку на нахождение там знака (?) И как это сделать? Кидаю код:
using System;

namespace дд
{
	class MainClass
	{
		public static void Main (string[] args)
		{
			int a;
			int first;
			Console.SetCursorPosition (70, 7);
			Console.WriteLine ("Choose a game mode");
			Console.SetCursorPosition (70, 8);
			Console.WriteLine ("1 - 2p");
			Console.SetCursorPosition (70, 9);
			Console.WriteLine ("2 - vs pc - (not available!)");
			a = int.Parse (Console.ReadLine ());
			if (a == 2)
			{
				Console.WriteLine("Error");
			}

			else

			{

			 
			
			Console.SetCursorPosition (70, 8);
			Console.WriteLine ("1 - 2p");
			Console.SetCursorPosition (70, 10);
			Console.WriteLine ("first step - x");
			Console.SetCursorPosition (70, 11);
			Console.WriteLine ("choose a cell from 1 to 9");
			Console.SetCursorPosition (70, 7);
			Console.WriteLine ("first step - x");
			for (int y = 0; y <= 30; y += 10)
			{
				for (int x = 0; x < 30; x++)
				{
					Console.SetCursorPosition (x, y);
					Console.Write ("█");
				}
			}

			for (int x = 0; x <= 30; x+=10)
			{
				for (int y = 0; y < 30; y++)
				{
					Console.SetCursorPosition (x, y);
					Console.Write ("█");
				}
			}
			int number = 0;
			int x0;
			int y0;
			int hod = -1;

			for (int step = 0; step < 9; step++)
			{
				Console.SetCursorPosition (70, 15);
				number = int.Parse (Console.ReadLine ());
				Console.SetCursorPosition (70, 20);
				Console.WriteLine ("next move");
				x0 = ((number - 1) % 3) * 10 + 2;
				y0 = ((number - 1) / 3) * 10 + 2;

				if (hod == 1)
				{
					for (int x = x0; x < x0 + 7; x++)
					{

						for (int y = y0; y < y0 + 7; y++)
						{
							if (x == x0 || x == x0 + 6 || y == y0 || y == y0 + 6)
							{
								Console.SetCursorPosition (x, y);
								Console.Write ("█");
							}
						}
					}
				}
				if (hod == -1)
				{
					for (int x = x0; x < x0 + 7; x++)
					{

						for (int y = y0; y < y0 + 7; y++)
						{
							if (x - y == x0 - y0 || x + y == y0 + x0 + 6)
							{
								Console.SetCursorPosition (x, y);
								Console.Write("█");
							}
						}
					}
				}


				hod = hod * -1;

			}
			Console.ReadLine();
		}
		}
	}
}
  • Вопрос задан
  • 162 просмотра
Пригласить эксперта
Ответы на вопрос 1
yarosroman
@yarosroman Куратор тега C#
C# the best
Первое, вам не нужно на экране искать. Создайте двумерный массив, где пустое место - 0, крестик - 1, нолик - 2, и в нем запоминайте информацию. А дальше, соответственно выводите инфу на экран.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы