Zadanie III
Dość woooolno Wam idzie rozwiązywanie moich zadań postanowiłem więc również trochę zwolnić..... tak mniej więcej do tempa żółwia.
Logo
Chyba tylko starzy wyjadacze znają ten język. ;) Na ekranie graficznym znajduje się żółw, któremu wydajemy komendy:
- go(N) - idź N kroków (pixeli) naprzód
- lt(N) - obróć się w lewo N stopni
- rt(N) - obróć się w prawo N stopni
i moja radosna tfórczość:
- sc(N) - ustaw kolor na N (z palety lub 24 bit)
- up - przemieszczanie żółwia nie pozostawia śladów
- dn - przemieszczanie żółwia pozostawia ślady
- repeat N { komendy } - powtórz komendy N razy
standardowo żółw znajduje się na środku białego ekranu, opuszczony w dół (dn), głową w górę / północ, zostawia ślady w kolorze czarnym.
przyjmujemy (dla uproszczenia), że każda komenda znajduje się w osobnym wierszu za wyjątkiem polecenia repeat, gdzie komendy znajdują się w jednym wierszu pomiedzy { }, rozdzielone spacją. Tak aby cała pętla była w jednym wierszu.
Waszym zadaniem jest wykonanie interpretera komend LOGO czyli na ekranie ma być ekran żółwia oraz formularz z polem textarea na wpisywanie komend.
Interpreter musi wskazywać błędy (zawierać "debugger") oraz nie dopuszczać do błędów typu wyjście żółwia poza ekran. (żółw poza ekranem "zdycha" i należy dbać o jego zdrowie.)
Oprócz tego aby nie było Wam za łatwo stworzycie listing, dzięki któremu można narysować..... hmm, samochód. Czerwonego małego Fiata.
Termin wykonania: 2003-10-13 23:59 (ok, dodam jeszcze tydzień, ze względu na ilość nadesłanych roziązań)
Sezon ogórkowy w pełni i niestety nie mam czasu aby przyłożyć się do tego zadania. Wszystkich daremnie oczekujących serdecznie przepraszam.