In der Schule machen wir gerade eben ein Projekt, bei dem jede Gruppe etwas programmieren soll.
Ich hab Tamagotchi gewählt, weil ich finde, dass es das einfachste von allen ist.
Könnt ihr mir da vllt. helfen? Bin nämlich nicht gerade gut x)
Vielen Dank schonmal im vorraus
Hier ist die "Angabe":
Es soll verschiedene Zustände annehmen können (glücklich, hungrig, gelangweilt, tot,...). Zustände sollen am Bildschirm durch Anzeige entsprechender Bilder dargestellt werden. Mögliche Erweiterung: Integration eines Zeitgebers (tick() als auslösende Aktion).
Klingt ganz nach einem sogenannten Automaten. Die verschiedenen möglichen Zustände hast du ja schon gegeben, also überlege dir als nächstes wie der Tamagotchi von einem Zustand in einen anderen Zustand wechselt. Das könnte zum Bespiel so aussehen:
aktueller Zustand: hungrig Ereignis: die Füttern-Taste wird gedrückt Ausgabe: ein lachender Smily neuer Zustand: glücklich
aktueller Zustand: hungrig Ereignis: es sind 3 Tage seit dem letzten Füttern vergangen Ausgabe: Bild eines Grabsteins neuer Zustand: tot
aktueller Zustand: glücklich Ereignis: jemand zeigt dem Tamagotchi eine Briefmarkensammlung Ausgabe: ein schlafender Smily neuer Zustand: gelangweilt
...und so weiter. Wenn du diese ganzen Zustandsübergänge ersteinmal festgeschrieben hast, dann weisst du schonmal was du eigentlich programmieren möchtest. Und wenn es später beim wie hakt, dann frage halt einfach nochmal hier im Forum nach.
aktueller Zustand: müde Ereignis: von planlosem Studenten ziellose und unkonkrete Fragen gestellt Ausgabe: Nicht-leere Menge Fragezeichen über dem Kopf neuer Zustand: frustriert
aktueller Zustand: frustriert Ereignis: Planlosigkeit des Studenten verfestigt sich, weil nicht einmal elementare Kenntnisse vorhanden sind Ausgabe: Faregzeichen vermehren sich explosionsartig neuer Zustand: genervt
aktueller Zustand: genervt Ereignis: Computerabsturz Ausgabe: Blue-Screen neuer Zustand: tot
ähmn das hast du Falsch verstanden. Der Bereich Hausaufgaben ist nicht dazu da dir kostenlos deine Hausübung zu machen.
Wir helfen gerne bei konkreten Fragen, manche machen auch Übungen gegen Bezahlung aber die Lösung gibt dir hier sicher keiner...
Das ist ein Projekt, dass ich auch umsetzen möchte =)
Die Idee dazu kam mir, als ich mich in der Berufsschule mit dem StateDesignPattern beschäftigen sollte. Das ist ein Entwurfsmuster, wo ein Objekt verschiedene Zustände annehmen kann.
Programmiert habe ich das am Beispiel eines Geldautomaten (Programm siehe unten).
Aber das Prinzip lässt sich auch auf ein Tamagotchi anwenden!
Denn ein Tamagotchi ist ja auch nur ein Objekt, dass verschiedene Zustände annehmen kann (und durch ein Bild dargestellt wird)
Bevor ich mich da ran mache, werde ich mich aber erst durch mein Java Buch arbeiten, aber vielleicht inspiriert dich mein Geldautomaten Programm bei der Lösung des Problems!
Und wenn du nach StateDesignPattern suchst findest du im Netz auch gute Beispiele.
Hier ein Bildchen, welche Zustände der Geldautomat annehmen kann und in welchen Zustand er von welchem Zustand aus wechseln kann:
packagetutorials.designPatterns.state;publicclassZustandAnimplementsZustand{privateGeldautomat automat;publicZustandAn(Geldautomat automat){this.automat = automat;}@OverridepublicvoidgibGeld(){// TODO Auto-generated method stubSystem.out.println("100€ werden ausgegeben");}@OverridepublicvoidschalteEin(){// TODO Auto-generated method stubSystem.out.println("Das Gerät ist bereits eingeschaltet");}@OverridepublicvoidschalteAus(){// TODO Auto-generated method stubSystem.out.println("Das Gerät wird ausgeschaltet");
automat.setZustand(automat.zustandOffline);}@OverridepublicvoidhackMe(){// TODO Auto-generated method stubSystem.out.println("Starte Exploit");System.out.println("011011100 000111001 10111010 01001010");System.out.println("Gerät wurde gehacked");
automat.setZustand(automat.zustandOwned);}}
Java:
packagetutorials.designPatterns.state;publicclassZustandAusimplementsZustand{privateGeldautomat automat;publicZustandAus(Geldautomat automat){this.automat = automat;}@OverridepublicvoidgibGeld(){// TODO Auto-generated method stubSystem.out.println("Geldausgabe nicht möglich. Automat ist ausgeschaltet.");}@OverridepublicvoidschalteEin(){// TODO Auto-generated method stubSystem.out.println("Das Gerät wird eingeschaltet");
automat.setZustand(automat.zustandOnline);}@OverridepublicvoidschalteAus(){// TODO Auto-generated method stubSystem.out.println("Das Gerät ist bereits ausgeschaltet");}@OverridepublicvoidhackMe(){// TODO Auto-generated method stubSystem.out.println("Das Gerät ist ausgeschaltet und kann nicht gehacked werden");}}
Java:
packagetutorials.designPatterns.state;publicclassZustandHackedimplementsZustand{privateGeldautomat automat;publicZustandHacked(Geldautomat automat){this.automat = automat;}@OverridepublicvoidgibGeld(){// TODO Auto-generated method stubSystem.out.println("200€ werden ausgegeben");}@OverridepublicvoidschalteEin(){// TODO Auto-generated method stubSystem.out.println("Das Gerät ist bereits eingeschaltet (und wurde gehacked)");}@OverridepublicvoidschalteAus(){// TODO Auto-generated method stubSystem.out.println("Das Gerät wird ausgeschaltet");
automat.setZustand(automat.zustandOffline);}@OverridepublicvoidhackMe(){// TODO Auto-generated method stubSystem.out.println("Automat wurde bereits gehacked");}}
Was du brauchst ist also ein Tamagotchi Objekt, ein Interface und für jeden Zustand eine Klasse
Warum soll er das machen... die sind doch froh dass sie die Schüler los sind die sowieso nur die Übungen kopieren... die zukünfigten Arbeitgeber werden dann eine Freude haben...
hehe....aber nicht wegen der Lösungen, sondern wegen den Aufgaben xD
Da kommt dann plötzlich in der Schulaufgabe eine Fragestellung hier ausm Forum dran ^^