Plansza do łamigłówki
Zaprogramować planszę do łamigłówki;
indywidualne warianty zadania będą przydzielone w komentarzu w
formularzu z punktacją,
lista łamigłówek jest tutaj. To zadanie proszę przesłać
przez formularz do wysyłania zadań,
ale też należy je zademonstrować i dokładnie omówic w
czasie zajęć. Termin - do końca semestru.
Program powinien dostarczać interfejs graficzny do łamigłówki.
Nie powinien sam nic rozwiązywać a tylko pilnować aby użytkownik
postępował zgodnie z regułami. Można nieco modyfikować graficzny wygląd
planszy, w stosunku do oryginalnego opisu, żeby sobie ułatwić
programowanie, np. zamiast rozdzielania różnych obszarów
planszy liniami, rozróżnić je kolorując różnie odpowiednie obszary.
Pełne rozwiazanie powinno dawać następujace możliwosci (ale można
przedstawić do oceny rozwiazania niepełne):
-
konstruowanie rozwiazania i zmiany juz dokonanych wyborów czy posunięć
-
kontrolę, czy wykonywane wybory sa zgodne z regułami łamigłowki i czy osiągnięto rozwiązanie
(kontrola ta może być robiona na bieżaco lub na życzenie).
Realizacja tego punktu zrobiona
w taki sposób, że porównuje się aktualny stan ze znalezionym wcześniej
prawidłowym rozwiązaniem jest nisko punktowana. Lepsze podejście to
przyjęcie założenia, że może być wiele rozwiązań i sprawdzanie
zgodności z regułami łamigłówki tak jak są te reguły zapisane.
To daje ogólniejszy program, który może być użyty do różnych wersji sytuacji
startowej.
-
zapamiętywać wszystkie dotad wykonane ruchy i umożliwiać chodzenie w
tył i w przód w historii tworzenia rozwiązania łamigłowki.
-
zapisanie na życzenie użytkownika aktualnego stanu łamigłowki
(łącznie z historią) do pliku i odtworzenie (na życzenie) tego stanu
z pliku po ponownym wystartowaniu programu, czyli dać możliwosć
przerwania zabwy i powrotu do niej. Powinna być możliwosć wyboru
pliku do zapisu i odczytu,
-
uzyskanie jakichś instrukcji (mini "help")
-
W prostszej wersji można przyjąć, że łamigłówka jest ustalona na sztywno.
Wyżej punktowane rozwiązanie powinno dawać możliwość jakiejś modyfikacji
ustawienia początkowego. Może to być zrobione tak, że początkowe ustawienie
(a może nawet rozmiar planszy) będzie odczytywane z pliku, który można
osobno redagować. Inny sposób, to wprowadzić do programu osobną fazę budowania
początkowego ustawienia, po zakończeniu której następuje faza rozwiązywania
łamigłówki.
Ważny element techniczny: interfejs graficzny powinien być
rozdzielony od modelu łamigłowki, podobnie jak w ćwiczeniu z Graficznym
Interfejsem
(w przeciwnym razie będzie mniejsza punktacja.)
Tekst programu powinen zawierać nieco komentarzy (do ważniejszych
metod i klas), jak rownież informację kto jest autorem. Ocenie podlega
rownież pełne zrozumienie kodu programu przez autora.
Wskazówka: w pliku
Plansza12.java.
znajduje się szkic programu wyswietlającego
planszę-szachownicę zbudowaną z przycisków.