рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░, рдореЗрд░реЗ рдХрд╛рдо рдореЗрдВ (рдФрд░ рдкрд╣рд▓реЗ рдореЗрд░реА рдкрдврд╝рд╛рдИ рдореЗрдВ) рдореИрдВ рдЕрдХреНрд╕рд░ C # рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рднрд╛рд╖рд╛ рдореЗрд░реЗ рд▓рд┐рдП рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рдЧрдИ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрд╕реЛрд▓ рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ рд▓рд┐рдЦрд╛ред рдореИрдВ рдкреНрд░рд╛рдкреНрдд рдЕрдиреБрднрд╡ рдХрд╛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред
рдореЛрдиреЛ рдореЗрдВ, System.Console рд╡рд░реНрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореЛрдиреЛ рдЙрд╕реА рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ, рдЬреИрд╕реЗ .NET рдореЗрдВ, рдЖрдк рдореВрд▓ C / C ++ рд▓рд┐рдирдХреНрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП P / Invoke рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдПрдХ ncurses рдкреБрд╕реНрддрдХрд╛рд▓рдп рдерд╛ред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
public class Curses {
рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рднреА ncurses рд╡рд┐рдзрд┐рдпрд╛рдБ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдЬреБрдбрд╝реА рд╣реБрдИ рдереАрдВ, рдпрджрд┐ System.Console рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛, рд▓реЗрдХрд┐рди рдпрджрд┐ рдорд╛рдирдХ рд╡рд┐рдзрд┐ рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рддреЛ рдЗрд╕рд╕реЗ рдЬреАрд╡рди рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ncurses wgetch () рд╡рд┐рдзрд┐ рдпреВрдирд┐рдХреЛрдб рд╡рд░реНрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЗ рдмрдЬрд╛рдп рджреЛ рдмрд╛рдЗрдЯреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИ, рдФрд░ рд╕рд┐рд░рд┐рд▓рд┐рдХ рд▓реЗрдЖрдЙрдЯ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдкреЙрдЗрдВрдЯрд░ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдорд╛рдирдХ рдХрдВрд╕реЛрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред ReadKey рдиреЗ рд╕рднреА рдХреЛрдб рдкреНрд░рдмрдВрдзрдиреАрдп рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╛рда рдХреБрдВрдЬрд┐рдпреЛрдВ рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереА, рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ .NET рдкрд░ рдХрд┐рдпрд╛ рдерд╛

рдЬрдм рд╕рдм рдХреБрдЫ рд╕рдЦреНрддреА рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛, рддреЛ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдЗрд╕ рдиреЛрдЯрдмреБрдХ рдХреЛ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕реВрддреНрд░реЛрдВ рд╕реЗ PDCurses рдХреЛ рдЗрдХрдЯреНрдард╛ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ MinGW рдХреА рд╕рдВрд░рдЪрдирд╛ рд╕реЗ рд▓реА рдЧрдИ dll рд▓реА, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо libpdcursesw.dll рдерд╛ рдФрд░ рдЗрд╕рдиреЗ ncurses рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд┐рдпрд╛ред
рдореБрдЭреЗ рдПрдХ рдиреЛрдЯрдмреБрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореЛрдиреЛ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА, рдореИрдВрдиреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд░реЛрдорд╛рдВрдЪ рдХреЗ рд╕рд┐рд░реНрдл рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдореЛрдиреЛрдбреЗрд╡рд▓рдк рд╕рдорд╛рдзрд╛рди рдЦреЛрд▓рд╛ред
рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рд╕рдорд╛рдпреЛрдЬрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рд╡рд╣ рдХрдВрд╕реЛрд▓ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдереА, рдореБрдЭреЗ mvwprintw рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдореИрдВрдиреЗ Print рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛, рдЖрдЙрдЯрдкреБрдЯ рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдиреНрдпреВрдирддрдо рдереЗ:
public void Print(int x, int y, string message) { Console.SetCursorPosition(x, y); Console.Write(message); }
рдореБрдЭреЗ рдкрд╛рда рдХрд╛ рд░рдВрдЧ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдХреЗ рдЖрдХрд╛рд░, рдФрд░ рддрд░реАрдХреЛрдВ рдХреЛ рднреА рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
рдпрд╣ рд╕рдм рдореБрдЭреЗ рдЖрд╢реНрд╡рд╕реНрдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕реА # рд▓рд┐рдирдХреНрд╕ рдФрд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рддрд╣рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЙрдкрдпреБрдХреНрдд рд╣реИ, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред
рдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
GitHub рдкрд░ рдЙрдкрд▓рдмреНрдз
рд╣реИ , рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдФрд░ рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛрдЬрд╝ред