Sokoban - transform!
Ciele
- Pracovať s knižnicou curses.
- Využiť predchádzajúce vedomosti pri implementácii riešenia.
Úvod
Na tomto cvičení budete pokračovať v práci s knižnicou curses. Tiež pretransformujete robota Karla na Sokobana.
Postup
Krok č. 1
Úloha 1.1:
Sokoban sa bude pohybovať priamo o pozíciu vpred/vzad/vľavo/vpravo. Nebude teda potrebné mať samostatnú klávesovú skratku pre jeho otočenie vľavo alebo vpravo. Samozrejme ale na otočenie sokobana môžete použiť funkciu turnLeft() a následne volať funkciu movek().
Ak ste vo svojej implementácii počítali kroky, ktoré spravil robot Karel, aktualizujte taktiež svoj kód tak, aby rátal všetky kroky vpred/vzad/vľavo/vpravo, ale nerátal za krok otočenie sokobana vľavo.
Úloha 1.2:
- znak '$' reprezentuje krabicu (box), ktorú má Sokoban presunúť na cieľové miesto
- znak '.' reprezentuje miesto, kam má Sokoban dotlačiť krabicu (box)
- znak '*' reprezentuje krabicu, ktorá sa nachádza na cieľovom mieste
Úloha 1.3:
##### # # # $ # # ^ # #####
##### # $ # # ^ # # # #####
##### # . # # $ # # ^ # #####
##### # * # # ^ # # # #####
####### # # # $$< # #######
####### # # # $$< # #######
Úloha 1.4:
char* map = "---####|---#--#|---#--#|---#$.#|####--#|#-----#|#@$.--#|#######";Grafická reprezentácia uvedenej mapy je nasledujúca:
#### # # # # #$.# #### # # # #>$. # #######
Krok č. 2
Úloha 2.1:
CORNER FACING DELIVER STEPS (1,6) East 0/2 0čo v tomto prípade znamená, že na cieľovom mieste sa ešte nenachádza žiadna krabica.
Úloha 2.2:
CORNER FACING DELIVER STEPS (1,6) East 2/2 0 #### # # # # #$.# #### # # # #>$. # #######
CORNER FACING DELIVER STEPS (2,6) East 0/2 29 #### # # # # # *# #### # # # # >* # ####### Well done
Doplňujúce úlohy
- Pridajte do hry rolujúci text (horizontálny, v smere zprava doľava), ktorý sa bude bežať počas celej hry v najspodnejšom riadku hry, poprípade rolujúci text môže bežať iba pri zobrazenom menu, ktoré budete implementovať budúce cvičenie.
- Po ukončení hry zobrazte na obrazovke záverečné kredity. Efekt zobrazovania si môžete zvoliť sami (napr. vo forme filmových tituliek zdola nahor alebo postupným zobrazovaním jednotlivých správ alebo ľubovoľný iný).
Ďalšie zdroje
- Sokoban (Wikipédia)
- PDCurses - verzia knižnice curses pre operačný systém Windows (pdcurses.lib, pdcurses.dll)
- Writing Programs with NCURSES
- Introduction to the Unix Curses Library