[Squeak-ev] memory mit squeak

Markus Gaelli gaelli at emergent.de
Don Mar 31 11:58:00 UTC 2005


Hi Christian,

>
> ich bin dabei, für einen Workshop mit Kindern Tutorials vorzubereiten,
> wie man mit Squeak Spiele macht. Ich dachte dabei an klassische Spiele
> wie memory, vier gewinnt. Markus hat ja auch einige Klassiker
> aufbereitet, die alle auch sehr gut geeignet sind (pacman vor allem ;-)
>
> Die Tutorials sollen sowohl das Spiel als auch Squeak einführen - am
> beispiel von memory denke ich an folgende teile:
> 1. Zeichnen von Objekten (Malkasten, basics, Arbeiten in Squeak,
> Ablagen, Spielfeld)
> 2. Erzeugen von Geschwistern eines Objektes (viele memory Karten,
> Arbeitserleichterung...)
> 3. Spielfeld anpassen (Tabellen, Zeilen,,,,)
> 4. Anordnen der Karten auf Feld
> 5. Mischen und Verdecken
> 6. Aufdecken per Mausklick
> 7. Paare als Punkt für Spieler zählen und aus dem Spiel nehmen
> 8. Gewinner -> höchste Punktzahl
> 9. Neues Spiel (-> 4)
>
> Bei meinem Memory komme ich gerade nciht weiter -vielleicht hat ja 
> einer
> einen Tip. Problem: test auf gleiche Paare schaffe ich nciht (Pkt. 7)
> Hat jemand eine Idee, wie man testen könnte und dann bei positivem
> Ergebnis die Paare verstecken kann? Der aktuelle Spieler soll dann 1
> Punkt bekommen.
>
> Es reicht mir der Ansatz, brauche nicht de komplette Lösung.

Ich vermute aufdecken, andersrum waere ja ein wenig einfach ;-)

Fuege eine Variable "letzteKarte" in des Memory-Spielfeld ein.
Diese dann auf den Typ "Spieler/Player" setzen.

Das Skript fuer eine Karte sieht dann grob so aus:
Bei MouseStillDown wird die Graphic der Karte auf jeden Fall angezeigt, 
in einem anderen Skript mit event MouseUp wird folgendes gemacht:
Wenn die Grafik der letzten Karte gleich der Grafik der aktuellen Karte 
ist _und_ die letzte Karte nicht gleich der aktuellen Karte ist, dann 
zeige die Grafik der letzten Karte an.
Sonst verdecke wieder die Grafik der aktuellen Karte.
Dann die letzte Karte im Spielfeld aktualisieren.
Ganz am Anfang die letzte Karte auf den schwarzen Punkt setzen (Land 
der schwarzen Hoeppelchen) und dann immer auf nil/dot abfragen oder 
eine Dummykarte reinnehmen oder...

Hoffe das war kryptisch genug um nicht als Komplettloesung 
durchzugehen, ausserdem hab ich es ohne Hand an Maus geschrieben, von 
daher bestimmt noch ein paar kleine Fehler versteckt...

Liebe Gruesse,

Markus


> Rudimentär ist das Projekt hier:
> http://www.relearn.de/squeak/memory.html
>
> Gruss, Christian
>