При вызове Console.SetCursorPosition(0, 0) выдает такие ошибки:
Cannot navigate to file File /build/mono/src/mono-4.8.0/mcs/class/corlib/System/TermInfoDriver.cs doesn't exist
System.ArgumentOutOfRangeException: Value must be positive and below the buffer width.
Parameter name: left
at System.TermInfoDriver.SetCursorPosition (System.Int32 left, System.Int32 top) [0x0002a] in :0
at System.ConsoleDriver.SetCursorPosition (System.Int32 left, System.Int32 top) [0x00000] in :0
at System.Console.SetCursorPosition (System.Int32 left, System.Int32 top) [0x00000] in :0
at Snake.GObject.Draw (System.ConsoleColor color) [0x0001f] in :0
at Snake.GObject.Draw () [0x00008] in :0
at Snake.GameService.GenerateWorld () [0x001ce] in :0
at Program.Main (System.String[] args) [0x00033] in :0
Дмитрий: А я специально указал в посте с какими параметрами я вызывал функцию: 0, 0. С какого перепуга размер буфера мог бы быть 0? На винде тот же код работает без проблем.
DarkByte2015: причём здесь размер буфера? Вам пишут, что не бывает координат (0,0). Value must be positive значит, что оба параметра должны быть больше нуля, т. е. минимальная координата (1,1).
DarkByte2015: не знаю как у вас, но в наших школах учили, что положительное значение — то, которое больше нуля. Отрицательное — меньше нуля. А ноль, он и в Африке ноль.
У индусов из МС своё представление какое-то об арифметике.
А сам terminfo то хоть установлен вообще для текущего терминала?
Дмитрий: "Забудьте все чему вас учили в школе" (с) Суровая реальность :D В C# (да и в любом другом ЯП) положительное значение >= 0. Это аксиома. 0 тоже считается положительным числом. Он не может быть "не положительным и не отрицательным", он должен к чему-то принадлежать.
А что за terminfo? Без понятия. Как его установить?
DarkByte2015: ну, из репозитория дистрибутива, естественно. В арче можно так найти нужный: yaourt -Ss terminfo
Исключение же бросается из реализации драйвера terminfo. Значит, вероятно, у вас он не установлен. Обычно такое бывает, когда вы запускаете код удалённо. У вас на локальном машине стоит какой-нибудь экзотический терминал, а на удалённой его нет, и она не знает как с ним общаться.
C# (да и в любом другом ЯП) положительное значение >= 0. Это аксиома.
Зачем вы так обижаете стандарт IEEE 754? Там может быть как -0, так и +0. И никаких аксиом.
$ yaourt -Ss terminfo
community/ghc 8.0.1-1
The Glasgow Haskell Compiler
community/haskell-wl-pprint-terminfo 3.7.1.4-11
A color pretty printer with terminfo support
community/rxvt-unicode-terminfo 9.22-2
Terminfo files for urxvt
community/termite-terminfo 12-2
Terminfo for Termite, a simple VTE-based terminal
community/unibilium 1.2.0-1
A terminfo parsing library
aur/tack 1.07_20150606-1 (2) (0,04)
A program that can be used to verify or refine a terminfo (terminal
information) description of a terminal.
aur/terminfo-italics 6.0+20170429-1 (2) (0,01)
Common terminfo formats patched to support italics
aur/terminfo-neovim-tmux 1.0-1 (1) (0,02)
tmux terminfo formats with Neovim <C-h> key fix
aur/termite-ranger-fix-terminfo-git 1:10.85.gf18155b-1 (11) (0,72)
Terminfo for Termite, a simple VTE-based terminal
У меня нет никакой удаленной машины. Обычный ПК. И никакой экзотики. Арч и XFCE терминал.
John_Nash: Адекватный человек прочитал бы сначала комментарии к вопросу, увидел что это предлагали уже и не помогло и не стал бы предлагать глупые ответы.