Как переназначить координаты в консоли (Console.SetCursorPosition(x, y)) - C#
Формулировка задачи:
Здравствуйте! У меня тестовая мини игра. Не получается смайлик сбросить координаты с начальной позиции при нажатии New game и при нажатии Continion не рисует начальный смайл в той клетке где остался после нажатия "Esc". Перепробовал всё да вот знаю мало пока что, чтоб понять где ошибка
Заранее извиняюсь за код. Изучаю C# почти месяц. Просто изучаю по вечерам и нет возможности другой а хочется знать больше на собственных примерах. Так мне проще усвоить материал.
Проект который делал на Visual Studio 2011 Beta - во вложении
Тут код, части программы где я пытаюсь поставить условие на координаты при нажатии новой игры или продолжение игры.
Вот скрин того что у меня получается. И я понимаю что можно было бы сделать через массив движение и запоминание смайлика, но я просто начал с координат курсора и хотелось бы понять где ошибка. Чтоб знать что и как на будущее. А потом создам с использованием сохранения смайлика в клетках массива.
Заранее извините за исчерпывающую информацию по моему вопросу. И заранее спасибо!
using System; using sc = System.Console; using scc = System.ConsoleColor; namespace Test { public class Game { Map map = new Map(); Player player = new Player(); CursorPosition cpplayer = new CursorPosition(); ConsoleKeyInfo keyboard; bool startend = true; public Game() { } public bool GameCreate(int newcon) { map.MapCreate(); sc.ForegroundColor = scc.Green; if (newcon == 1) cpplayer.CurPosPlaXY(0); if (newcon == 0) { cpplayer.CurPosPlaXY(11); cpplayer.CurPosPlaXY(0); } sc.Write(player.player011); if (newcon == 1) cpplayer.CurPosPlaXY(0); if (newcon == 0) { cpplayer.CurPosPlaXY(11); cpplayer.CurPosPlaXY(0); } while (startend) { if (sc.KeyAvailable == true) { keyboard = sc.ReadKey(true); if (keyboard.Key == ConsoleKey.Escape) return false; player.PlayerStep(keyboard); } } return true; } public int yscp { get; set; } } }
Решение задачи: «Как переназначить координаты в консоли (Console.SetCursorPosition(x, y))»
textual
Листинг программы
using System; using sc = System.Console; using scc = System.ConsoleColor; using st = System.Text; namespace Test { public class Game { Map map = new Map(); Player player = new Player(); CursorPositionPlayer cpplayer = new CursorPositionPlayer(); char player001 = st.Encoding.GetEncoding(437).GetChars(new byte[] { 1 })[0]; // ConsoleKeyInfo keyboard; ConsoleKeyInfo playerstep; bool startend = true; //int cppnc; public string player011; public Game() { //cppnc = 11; player011 = ((char)player001).ToString(); // } public bool GameCreate(int newcon) { map.MapCreate(); cpplayer.CurPosPlaXY(newcon); sc.ForegroundColor = scc.Green; sc.Write(player.player011); sc.ForegroundColor = scc.Black; cpplayer.CurPosPlaXY(newcon); while (startend) { if (sc.KeyAvailable == true) { keyboard = sc.ReadKey(true); if (keyboard.Key == ConsoleKey.Escape) return false; playerstep = keyboard; if (playerstep.Key == ConsoleKey.RightArrow) { if ((cpplayer.cppX == 1 & cpplayer.cppY == 0) | (cpplayer.cppX == 1 & cpplayer.cppY == 4) | (cpplayer.cppX == 5 & cpplayer.cppY == 4)) { sc.Write(" "); cpplayer.CurPosPlaXY(2); //CursorPosition.cs CursorPositionPlayer() sc.ForegroundColor = scc.Green; //Color text(Green) sc.Write(player001); sc.ForegroundColor = scc.Black; //Color text(Black) cpplayer.CurPosPlaXY(10); } } if (playerstep.Key == ConsoleKey.LeftArrow) { if ((cpplayer.cppX == 5 & cpplayer.cppY == 0) | (cpplayer.cppX == 9 & cpplayer.cppY == 4) | (cpplayer.cppX == 5 & cpplayer.cppY == 4)) { sc.Write(" "); cpplayer.CurPosPlaXY(3); //CursorPosition.cs CursorPositionPlayer() sc.ForegroundColor = scc.Green; //Color text(Green) sc.Write(player001); sc.ForegroundColor = scc.Black; //Color text(Black) cpplayer.CurPosPlaXY(10); } } if (playerstep.Key == ConsoleKey.DownArrow) { if ((cpplayer.cppX == 5 & cpplayer.cppY == 0) | (cpplayer.cppX == 5 & cpplayer.cppY == 2) | (cpplayer.cppX == 1 & cpplayer.cppY == 2) | (cpplayer.cppX == 9 & cpplayer.cppY == 2)) { sc.Write(" "); cpplayer.CurPosPlaXY(4); //CursorPosition.cs CursorPositionPlayer() sc.ForegroundColor = scc.Green; //Color text(Green) sc.Write(player001); sc.ForegroundColor = scc.Black; //Color text(Black) cpplayer.CurPosPlaXY(10); } } if (playerstep.Key == ConsoleKey.UpArrow) { if ((cpplayer.cppX == 5 & cpplayer.cppY == 2) | (cpplayer.cppX == 5 & cpplayer.cppY == 4) | (cpplayer.cppX == 1 & cpplayer.cppY == 4) | (cpplayer.cppX == 9 & cpplayer.cppY == 4)) { sc.Write(" "); cpplayer.CurPosPlaXY(5); //CursorPosition.cs CursorPositionPlayer() sc.ForegroundColor = scc.Green; //Color text(Green) sc.Write(player001); sc.ForegroundColor = scc.Black; //Color text(Black) cpplayer.CurPosPlaXY(10); } } } } return true; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д