середу, 18 серпня 2010 р.

Кубик Рубика у терміналі

Відірвався від літа на кілька годин щоб побавитися компілятором поза роботою. Ціль — емулятор кубика Рубика у терміналі. Чому в терміналі? Тому що для любителів графіки вже є готовий 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Глянути на куб з іншої сторони

Гм, треба буде цю таблицю включити в саму програму.