HI Leute, ich möchte mit meiner Freundin ein Memoryspiel erstellen. Das Problem dabei ist, dass wir nicht wissen wie wir programmieren, dass die "Karten" verschwinden wenn das richitge Paar angekickt wurde..........vielleicht könnt ihr uns ja helfen........
Lg Schneeweisschen
Offline
Hallo Schneeweisschen,
ein Memoryspiel in Scratch zu programmieren, ist nicht ganz einfach, weil es momentan in Scratch noch keine Arrays/Variablenlisten gibt. Es ist aber bestimmt machbar, und eine großartige Herausforderung. Ich glaube, der Schlüssel zum Erfolg liegt hierbei in der Anwendung von Variablen.
Mein Vorschlag wäre, jeder Karte zwei Kostüme (1 = Vorderseite, 2 = Rückseite) zuzuordnen.
Außerdem würde ich noch eine (globale) Variable erstellen, welche die Anzahl der jeweils aufgedeckten Karten zählt ("aufgedeckteKarten").
Der Vergleich könnte dann in einem Programm über den Fühler-Baustein "Kostüm-Nr. in Objekt" erfolgen.
Damit müsstet Ihr erstmal vorankommen. Wenn Ihr noch mehr Tipps braucht, fragt einfach nochmals nach!
Offline
Angeregt durch Jens, habe ich ein einfaches Memoryspiel versucht. Der Einfachheit halber habe ich nur 6 Karten verwendet.
Für die 6 Karten erstellte ich 6 Objekte. Jedes Objekt besitzt 2 Kostüme ("Vorderseite" und "Rückseite").
Die globale Variable (gilt für alle Objekte) "aufgedeckte Karten" bekommt am Anfang den Wert "0" zugewiesen.
Alle Objekte zeigen am Beginn das Kostüm "Rueckseite".
Jedes Objekt bekommt jetzt folgendes Programm verpasst. Die Objekte "Karte1" und "Karte2" sind sind ein Bildpaar, zeigen also das gleiche Bild.
Wenn Karte1 angeklickt
falls "aufgedeckte Karten < 2"
ziehe Kostüm Vorderseite an
ändere aufgedeckte Karten um 1
falls "aufgedeckte Karten > 1"
warte 1 sek.
setze aufgedeckte Karten auf 0
falls Kostüm Nr. = Kostüm Nr. von Karte2
verstecke dich
sonst
ziehe Kostüm Rueckseite an
Wenn beide Karten die gleichen sind, versteckt sich das Objekt.
Wenn die Karten verschieden sind, wird wieder die Rückseite gezeigt.
"Kostüm Nr. von .." ist unter "Fühlen" zu finden.
Am Anfang wäre es schön, wenn die Karten jedesmal in einer anderen Anordnung erscheinen würden.
Dazu erstellte ich für jedes Objekt eine Zufallsvariable: Zufall1, Zufall2 usw. bis Zufall6.
Das Programm von Karte1 schaut dann so aus:
Wenn grüne Flagge angeklickt
setze Zufall1 auf "Zufallszahl von 1 bis 6"
falls Zufall1 = 1
gehe zu x: ... y: ...
:
:
falls Zufall1 = 6
gehe zu x: ... y: ...
Hier werden der Reihe nach die x- und y-Werte der 6 Objekte angegeben.
Dieses Skript ist in allen 6 Objekten das gleiche, nur mit einer anderen Zufallszahl.
Das Programm des nächsten Objektes soll ein wenig später starten und die Zufallszahl 2 ermitteln. Diese darf aber nicht die Zufallszahl 1 sein. Das ist das Skript von Karte2:
Wenn grüne Flagge angeklickt
warte 0,1 Sek.
wiederhole bis "nicht zufall2 = zufall1"
setze Zufall1 auf "Zufallszahl von 1 bis 6"
falls Zufall2 = 1
gehe zu x: ... y: ...
usw.
Bei den folgenden Objekten habe ich die Sekunden immer um 0,1 erhoeht. Bei der dritten Karte sieht das Skript so aus:
Wenn grüne Flagge angeklickt
warte 0,2 Sek.
wiederhole bis "nicht zufall3 = zufall1 und nicht zufall3 =zufall2 "
setze Zufall1 auf "Zufallszahl von 1 bis 6"
falls Zufall2 = 1
gehe zu x: ... y: ...
usw.
Bei meinem Projekt habe ich versucht, einige falsche Eingaben abzufangen. Ganz ist es mir allerdings auch nicht gelungen.
http://scratch.mit.edu/projects/goch/139594/download
Offline