resurce
Гуру
(4211)
6 месяцев назад
using System;
using System.Threading;
public class Program
{
private static bool onProgram = true;
private static byte score = 0;
private static int positionX = 10;
private static int positionY = 5;
private static char[] item = { '$', '$', '$' };
private static string point = "Ы";
private static string error = null;
private static char lastKey = ' ';
public static void Main(string[] args)
{
Thread inputThread = new Thread(Walking);
inputThread.Start();
Console.CursorVisible = false;
// Первая прорисовка
Draw();
while (onProgram)
{
error = null;
switch (lastKey)
{
case 'd':
positionX++; break;
case 'a':
positionX--; break;
case 's':
positionY++; break;
case 'w':
positionY--; break;
default:
if (lastKey != ' ')
{
error = "Недопустимая команда";
}
break;
}
// Защита выхода за карту
if (positionX <= 1) positionX = 1;
if (positionY <= 0) positionY = 0;
// Очистка экрана и повторная прорисовка
Draw();
Thread.Sleep(100);
}
}
static void Draw()
{
Console.Clear();
Console.SetCursorPosition(12, 3);
Console.WriteLine(point);
Console.SetCursorPosition(positionX, positionY);
Console.WriteLine(item);
Console.SetCursorPosition(0, 20);
Console.WriteLine($"Счет: {score}");
if (error != null)
{
Console.WriteLine(error);
}
}
static void Walking()
{
while (onProgram)
{
// Чтение вводимого символа
lastKey = Console.ReadKey(true).KeyChar;
// Завершение программы при нажатии клавиши 'q'
if (lastKey == 'q')
{
onProgram = false;
}
}
}
}
resurceГуру (4211)
6 месяцев назад
В данном коде имеется несколько ошибок и проблем:
Метод Main принимает два аргумента, хотя по умолчанию должен принимать только один массив строк args.
Метод Walking неправильно вызывает метод Main.
Переменная text не обновляется внутри метода Main, а передается только один раз в качестве аргумента.
Отсутствует способ корректного завершения программы.
Метод Walking должен принимать только один аргумент или работать с глобальной переменной.
Ошибка CS1503 Аргумент 1: не удается преобразовать из "группа методов" в "System.Threading.ParameterizedThreadStart"
Ошибка CS7036 Отсутствует аргумент, соответствующий требуемому параметру "text" из "Program.Main(string[], char)"