Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added *nix support #3

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open

Added *nix support #3

wants to merge 6 commits into from

Conversation

Lrapava
Copy link

@Lrapava Lrapava commented Nov 27, 2021

Added support for Unix-like operating systems (Unix/Linux/MacOS). The code works fine on Linux. ATTENTION: I have NOT tested the code on Windows, BSD and/or MacOS yet. Please test before accepting the changes. The program should automatically detect the size of the terminal terminal and set width and height accordingly. + a few small changes.

Added support for Unix-like operating systems (Unix/Linux/MacOS) support. The code works fine on Linux. ATTENTION: I have NOT tested the code on Windows, BSD and/or MacOS yet. Please test before accepting the changes. The program should automatically detect the size of the terminal terminal and set width and height accordingly. + a few small changes.
@Lrapava
Copy link
Author

Lrapava commented Nov 27, 2021

Добавил поддержку для Unix-подобных операционных систем (Unix/Linux/MacOS). Код работает на Linux. ВНИМАНИЕ: Я еще НЕ тестировал код на Windows, BSD и/или MacOS. Пожалуйста, проверьте, прежде чем принимать изменения. Программа должна автоматически определять размер терминала и соответственно устанавливать ширину и высоту. + несколько небольших изменений.

@Lrapava
Copy link
Author

Lrapava commented Nov 28, 2021

Код протестирован и на винде. По словам друга, "работает идеально".

@Lrapava
Copy link
Author

Lrapava commented Nov 28, 2021

Прошу владельцев MacBook-ов протестировать на MacOS. Там тоже по идее должно работать.

@Indev450
Copy link

А почему бы просто не использовать библиотеку ncurses? Она же вроде платформонезависимая

Если что, ничего не имею против вашего способа, просто интересно)

@Lrapava
Copy link
Author

Lrapava commented Nov 30, 2021

Я начал писать код с допущением что терминал Windows поддерживает ANSI коды (так как написание кода используя ANSI коды мне показалось самым простым, эффективным и быстрым способом решения проблемы), но окозалось я был не прав. После того как код с использованием ANSI кодов был готов, проще всего было написать 2 функции для Winodws (clearScreen и gotoxy в patforms.cpp). +Если честно, у меня мало опыта работы с ncurses (недавно начал работать над первым моим проектом с ncurses, но еще не доделал.). Также, я не уверен как библиотека ncurses повлияла бы на производительность (скорость вывода текста).

@Lrapava
Copy link
Author

Lrapava commented Nov 30, 2021

Помимо этого, первичная цель этого проекта - образовательная. Думаю было бы разумным писать код наиболее разборчиво, при этом теряя как можно меньше функционала/производительности. Чрезмерное использование нестандартных библиотек (Windows.h, ncurses), менее известных [ для начинающих программистов ] типов данных (wchar_t, строки из C) и указателей служит против основной цели проекта.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants