Відірвався від літа на кілька годин щоб побавитися компілятором поза роботою. Ціль — емулятор кубика Рубика у терміналі. Чому в терміналі? Тому що для любителів графіки вже є готовий gnubik.
Отже, тягнемо репозитарій:
$ git clone http://github.com/sakhnik/rubik.git Cloning into rubik... remote: Counting objects: 134, done. remote: Compressing objects: 100% (44/44), done. remote: Total 134 (delta 89), reused 127 (delta 86) Receiving objects: 100% (134/134), 20.77 KiB, done. Resolving deltas: 100% (89/89), done.
Збираємо бінарник і маємо улюблену головоломку:
$ cd rubik $ ./autogen.sh $ make $ ./src/rubik
Підтримуються такі команди (див. main.cc
):
Команда | Дія |
---|---|
q | Вийти |
# | Змішати |
#N | Змішати, виконавши N поворотів |
u | Повернути попередній хід |
uN | Повернути N попередніх ходів |
f | Повернути передню грань за годинниковою стрілкою |
F | Повернути передню грань проти годинникової стрілки |
fN | Повернути N передню грань за годинниковою стрілкою. N=1 — передня, N=−1 — задня. |
FN | Повернути N передню грань проти годинникової стрілки |
sN | Повернути N бічну грань за годинниковою стрілкою. N=1 — ліва, N=−1 — права. |
SN | Повернути N бічну грань проти годинникової стрілки |
tN | Повернути N верхню грань за годинниковою стрілкою. N=1 — верхня, N=−1 — нижня. |
TN | Повернути N верхню грань проти годинникової стрілки |
x,y чи z | Глянути на куб з іншої сторони |
Гм, треба буде цю таблицю включити в саму програму.
Під "вікна" компілюються?
ВідповістиВидалитиЕлементарно, це ж тільки стандартна C++ і система збірки GNU:
ВідповістиВидалитиyum install mingw32-gcc-c++
./autogen
./configure --host=i686-pc-mingw32
make
Але програма використовує esc-послідовності для розфарбовування комірок, то щоб її запустити, треба знайти хороший емулятор терміналу.
Як колись додам підтримку ncurses, цяцька взагалі буде працювати, як рідна.