Discuss Scratch
- Discussion Forums
- » Deutsch
- » [Problem] Wie kann ich Malspuren entfernen?
- Cherryc0ke
- Scratcher
19 posts
[Problem] Wie kann ich Malspuren entfernen?
Hallo,
Ich arbeite gerade an einem “Tetris”
und da lasse ich die Blöcke als Malspuren stehen,
und mein Problem ist, dass ich nicht weiß wie ich eine volle Reihe entfernen kann,
bzw. wie Ich abfragen kann ob eine Reihe voll ist.
Und mein zweites Problem ist,
das ich nicht weiß, wenn eine Reihe weg ist wie ich die darüber liegenden Malspuren an die
unten liegenden Malspuren verbinden kann.
Hier ist das Projekt:
http://scratch.mit.edu/projects/14016954/
Ich würde mich gerne über Hilfe freuen,
Lg Cherryc0ke
Ich arbeite gerade an einem “Tetris”
und da lasse ich die Blöcke als Malspuren stehen,
und mein Problem ist, dass ich nicht weiß wie ich eine volle Reihe entfernen kann,
bzw. wie Ich abfragen kann ob eine Reihe voll ist.
Und mein zweites Problem ist,
das ich nicht weiß, wenn eine Reihe weg ist wie ich die darüber liegenden Malspuren an die
unten liegenden Malspuren verbinden kann.
Hier ist das Projekt:
http://scratch.mit.edu/projects/14016954/
Ich würde mich gerne über Hilfe freuen,
Lg Cherryc0ke
- TM_
- Scratcher
1000+ posts
[Problem] Wie kann ich Malspuren entfernen?
(Nicht erschrecken wegen demlangen Text ich habe es sehr ausführlich erklärt, daher ist es auch so lang)
Erstmal zum scannen, ob eine Reihe voll ist:
Du hast das schonmal geschickt gemacht, denn in einer Reihe stehen alle Blöcke lückenlos nebeneinander. Du kannst jetzt ein Objekt machen, das einfach ein langes Rechteck ist. Dieses beginnt im Block ganz links und endet in dem ganz rechts, darf aber nicht darüber hinaus gehen. Denn er überprüft mithilfe von <wird Farbe weiß berührt?>, ob nun eine Lücke in der Reihe ist oder nicht. Falls ja, soll die Reihe entfernt werden, falls nein, eben nicht.
An deiner Stelle würde ich es so machen, dass dieser “Scanner” Unten anfängt und dann nach jedem Scannen eine Reihe höher geht und nochmal scannt, solange bis er fertig ist. Das geht natürlich auch umgekehrt, also von oben nach unten
Wenn du Listen schon ein wenig kennst, kannst du dann folgendes tun, falls nicht sag mir nochmal bescheid
Also: Wenn der Scanner die Farbe weiß berührt, was also bedeutet, dass es eine Lücke in der Reihe gibt, passiert nichts. Ansonsten wird die aktuelle Reihe (Unten ist z.B. 1, die darüber ist Reihe 2 usw.) in einer Liste gespeichert. Diese muss natürlich vor jedem Scannen geleert werden.
Wenn dann alle Reihen durch gescannt wurden, wird wieder unten angefangen. Falls die Liste die aktuele Reihe enthält, also diese Reihe voll ist, pasiert folgendes:
Die Reihe wird komplett mit weißen Blöcken überstempelt.
Das Objekt geht nach ganz links auf diese Reihe und geht jetzt Spaltenweise vor.
Es schaut sich den Block über sich an (mit wird farbe berührt?) und stempelt diesen darunter, also in die weiße Reihe. Nun wird der abgeschaute Block weiß gemacht. Dann wird geguckt ob der einen Block über sich hat und übernimmt in dem Fall den. Und das bis oben hin.
Nun wird wieder in die Anfangsreihe gesprungen und das Objekt geht einen Block nach rechts und geht wieder die ganze Spalte nach oben hin durch.
Wurden alle Spalten korrigiert, wird wieder nach der Liste gegangen. Doch da alles eine Reihe tiefer ist, muss auch die Liste korrigiert werden. Dazu müssen alle weiteren Listenelemente um 1 verringert werden.
Das ganze sieht komplizierter aus, als es eigentlich ist. Es erfordert Kenntnisse über Variablen und eventuell auch über Listen, aber dein Tetris-Spiel sieht für eienn Anfänger schon sehr gut aus, daher weiß ich nciht, wie weit du schon bist. Du kannst ja versuchen zumindest den Scanner einzubauen, also dass er überprüfen kann, ob eine Reihe voll ist oder nicht und diese dann komplett weiß färben kann. Zu Testzwecken halt.
Danach kann ich dir dann noch einmal da weiterhelfen wo es schwierigkeiten gibt und ich kann dir auch Listen udn Variablen erklären, die sind eigenlich auch nicht schwer wenn man es einmal raus hat
Erstmal zum scannen, ob eine Reihe voll ist:
Du hast das schonmal geschickt gemacht, denn in einer Reihe stehen alle Blöcke lückenlos nebeneinander. Du kannst jetzt ein Objekt machen, das einfach ein langes Rechteck ist. Dieses beginnt im Block ganz links und endet in dem ganz rechts, darf aber nicht darüber hinaus gehen. Denn er überprüft mithilfe von <wird Farbe weiß berührt?>, ob nun eine Lücke in der Reihe ist oder nicht. Falls ja, soll die Reihe entfernt werden, falls nein, eben nicht.
An deiner Stelle würde ich es so machen, dass dieser “Scanner” Unten anfängt und dann nach jedem Scannen eine Reihe höher geht und nochmal scannt, solange bis er fertig ist. Das geht natürlich auch umgekehrt, also von oben nach unten
Wenn du Listen schon ein wenig kennst, kannst du dann folgendes tun, falls nicht sag mir nochmal bescheid
Also: Wenn der Scanner die Farbe weiß berührt, was also bedeutet, dass es eine Lücke in der Reihe gibt, passiert nichts. Ansonsten wird die aktuelle Reihe (Unten ist z.B. 1, die darüber ist Reihe 2 usw.) in einer Liste gespeichert. Diese muss natürlich vor jedem Scannen geleert werden.
Wenn dann alle Reihen durch gescannt wurden, wird wieder unten angefangen. Falls die Liste die aktuele Reihe enthält, also diese Reihe voll ist, pasiert folgendes:
Die Reihe wird komplett mit weißen Blöcken überstempelt.
Das Objekt geht nach ganz links auf diese Reihe und geht jetzt Spaltenweise vor.
Es schaut sich den Block über sich an (mit wird farbe berührt?) und stempelt diesen darunter, also in die weiße Reihe. Nun wird der abgeschaute Block weiß gemacht. Dann wird geguckt ob der einen Block über sich hat und übernimmt in dem Fall den. Und das bis oben hin.
Nun wird wieder in die Anfangsreihe gesprungen und das Objekt geht einen Block nach rechts und geht wieder die ganze Spalte nach oben hin durch.
Wurden alle Spalten korrigiert, wird wieder nach der Liste gegangen. Doch da alles eine Reihe tiefer ist, muss auch die Liste korrigiert werden. Dazu müssen alle weiteren Listenelemente um 1 verringert werden.
Das ganze sieht komplizierter aus, als es eigentlich ist. Es erfordert Kenntnisse über Variablen und eventuell auch über Listen, aber dein Tetris-Spiel sieht für eienn Anfänger schon sehr gut aus, daher weiß ich nciht, wie weit du schon bist. Du kannst ja versuchen zumindest den Scanner einzubauen, also dass er überprüfen kann, ob eine Reihe voll ist oder nicht und diese dann komplett weiß färben kann. Zu Testzwecken halt.
Danach kann ich dir dann noch einmal da weiterhelfen wo es schwierigkeiten gibt und ich kann dir auch Listen udn Variablen erklären, die sind eigenlich auch nicht schwer wenn man es einmal raus hat
Last edited by TM_ (Nov. 13, 2013 21:52:46)
My YouTube-Account: TM_ (TMtheScratcher)
Join the Google+ Community “Persist” and test the latest Alpha-versions and get news about the desktop-game! Persist
- Cherryc0ke
- Scratcher
19 posts
[Problem] Wie kann ich Malspuren entfernen?
Vielen Dank für die schnelle Antwort
Ich werde mich morgen mal dran setzen und das versuchen umzusetzen
Ich werde mich morgen mal dran setzen und das versuchen umzusetzen
- Cherryc0ke
- Scratcher
19 posts
[Problem] Wie kann ich Malspuren entfernen?
So, ich versteh das nicht so richtig mit der liste,
wie ich das machen kann.
Wär cool wenn du mir das noch mal erklären könntest, aber sonst funktioniert es schon
wie ich das machen kann.
Wär cool wenn du mir das noch mal erklären könntest, aber sonst funktioniert es schon
- TM_
- Scratcher
1000+ posts
[Problem] Wie kann ich Malspuren entfernen?
Irgendwie funktioniert dein Spiel nicht mehr. Es stoppt sofort wenn der erste Block den Boden berührt
Aber nun zu den Listen.
Nach jedem Block muss zunächst die Liste geleert werden. Das geht mit dem Block
Nun beginnt der Scanner unten und prüft:
“Reihe” ist eine Variable. Diese wird vorher, wenn die Liste geleert wird, auf 0 gesetzt.
So sieht die schleife aus, die alles miteinander verbindet:
So bekommst du nach dem Scannvorgang eine Liste, die alle vollen Reihen zeigt. Der nächste Schritt ist nun diese Reihen zu löschen, also weiß zu überstempeln. Doch nach jeder Reihe müssen alle nachfolgenden Reihenzahlen in der Liste um 1 verringert werden, weil ja alle Reihen nun eins tiefer liegen.
NOCH IN ARBEIT!
Hab gerade keien Zeit, um weiter zu erklären, ich hoffe du kannst damit erstmal was anfangen. Später schreibe ich dann mehr dazu, wenn du noch eingie Probleme hast
Aber nun zu den Listen.
Nach jedem Block muss zunächst die Liste geleert werden. Das geht mit dem Block
entferne (alles v) aus Liste [Liste v]
Nun beginnt der Scanner unten und prüft:
falls < wird Farbe weiß berührt?> //Also falls die Reihe nicht voll ist
//passiert nichts
sonst
füge (Reihe) zu Liste [Liste v] hinzu
“Reihe” ist eine Variable. Diese wird vorher, wenn die Liste geleert wird, auf 0 gesetzt.
So sieht die schleife aus, die alles miteinander verbindet:
entferne (alles v) aus Liste [Liste v]
setze [Reihe v] auf (0)
wiederhole <Anzahl der Reihen> mal
ändere [Reihe v] um (1)
falls < wird Farbe weiß berührt?>
sonst
füge (Reihe) zu Liste [Liste v] hinzu
So bekommst du nach dem Scannvorgang eine Liste, die alle vollen Reihen zeigt. Der nächste Schritt ist nun diese Reihen zu löschen, also weiß zu überstempeln. Doch nach jeder Reihe müssen alle nachfolgenden Reihenzahlen in der Liste um 1 verringert werden, weil ja alle Reihen nun eins tiefer liegen.
NOCH IN ARBEIT!
Hab gerade keien Zeit, um weiter zu erklären, ich hoffe du kannst damit erstmal was anfangen. Später schreibe ich dann mehr dazu, wenn du noch eingie Probleme hast
Last edited by TM_ (Nov. 14, 2013 18:15:02)
My YouTube-Account: TM_ (TMtheScratcher)
Join the Google+ Community “Persist” and test the latest Alpha-versions and get news about the desktop-game! Persist
- Cherryc0ke
- Scratcher
19 posts
[Problem] Wie kann ich Malspuren entfernen?
Ich hatte gerade nen ein falschen block im script drinne und hab das nun behoben,
und gerade arbeite ich an dem next block,
aber schon mal danke
und gerade arbeite ich an dem next block,
aber schon mal danke
- Cherryc0ke
- Scratcher
19 posts
[Problem] Wie kann ich Malspuren entfernen?
verdammt,
finde keine passende Lösung für das runter setzen
kann mir jemand das bitte erklären wie ich das machen soll?
oder halt lösungsvorschläge ^^
(hier ist die neuere Version: http://scratch.mit.edu/projects/14293547/#player)
finde keine passende Lösung für das runter setzen
kann mir jemand das bitte erklären wie ich das machen soll?
oder halt lösungsvorschläge ^^
(hier ist die neuere Version: http://scratch.mit.edu/projects/14293547/#player)
- Cherryc0ke
- Scratcher
19 posts
[Problem] Wie kann ich Malspuren entfernen?
Habs hin bekommen
ohne listen ^^ allerdings gibts da noch fehler ^^
muss gucken das ich die lös
ohne listen ^^ allerdings gibts da noch fehler ^^
muss gucken das ich die lös
- TM_
- Scratcher
1000+ posts
[Problem] Wie kann ich Malspuren entfernen?
das löschen ist irgendwie noch fehlerhaft. Da rutschen irgendwie nicht alle Blöcke nach
My YouTube-Account: TM_ (TMtheScratcher)
Join the Google+ Community “Persist” and test the latest Alpha-versions and get news about the desktop-game! Persist
- TM_
- Scratcher
1000+ posts
[Problem] Wie kann ich Malspuren entfernen?
bem rübergucken übers script ist mir aufgefallen, dass du objekte immer zeigen läst, dann stempelst und die sichdann verstecken. Das musst du nicht mache,auch im versteckten Zustand stempeln die Korrekt
Zweiter kleiner Tipp: Bei dem Scanner hast du ja einen eigenen Block namesn “Aufrücken” erstellt. Mach dort mal rechtsklick und geh dan auf edit/bearbeiten und klicke dann auf die weiteren Optionen. Dort gibt es eine Checkbox. Kreuze diese an und dann läuft das Programm von “Aufrücken” ohne Bildschirmaktualisierung. Was das heißt: Es behandelt alle Schleifen und Berechnungen blitzschnell und man muss nicht warten. Dadurch wird der Spielablauf flüssiger
Zweiter kleiner Tipp: Bei dem Scanner hast du ja einen eigenen Block namesn “Aufrücken” erstellt. Mach dort mal rechtsklick und geh dan auf edit/bearbeiten und klicke dann auf die weiteren Optionen. Dort gibt es eine Checkbox. Kreuze diese an und dann läuft das Programm von “Aufrücken” ohne Bildschirmaktualisierung. Was das heißt: Es behandelt alle Schleifen und Berechnungen blitzschnell und man muss nicht warten. Dadurch wird der Spielablauf flüssiger
My YouTube-Account: TM_ (TMtheScratcher)
Join the Google+ Community “Persist” and test the latest Alpha-versions and get news about the desktop-game! Persist
- TM_
- Scratcher
1000+ posts
[Problem] Wie kann ich Malspuren entfernen?
Zum Aufrücken: Ichwürde dasa nders gestalten: Ich würde das so machen, dass es in der Reihe anfängt und dann einen nach oben geht, schaut welche farbe der block hat, diesen eins nach unten stempelt (also in die gelöschte reihe), diesen einen block auch löscht und dann wieder eins nach oben geht um den block eins tiefer zu übernehmen udn so weiter. Halt eine ganze Spalte. Erst dann wird die X-Position geändert, um die nächste Spalte zu behandeln. Dabei darf nicht vergessen werden, dass die y-Position wieder der der Reihe entsprechen muss!
Ich glaube dass deswegen das Aufrücken so fehlerhaft ist, da dabei wahrscheinlich falsch vorgegangen wird. Das wiederhole 10 mal und 9 mal sind feste Zahlen, aber eigentlich müsste es sich da auch um variable Werte handeln,denn wird die 2.Oberste Reihe gelöscht, muss ja weniger aufgerückt werden, als bei der untersten reihe.
Ich glaube dass deswegen das Aufrücken so fehlerhaft ist, da dabei wahrscheinlich falsch vorgegangen wird. Das wiederhole 10 mal und 9 mal sind feste Zahlen, aber eigentlich müsste es sich da auch um variable Werte handeln,denn wird die 2.Oberste Reihe gelöscht, muss ja weniger aufgerückt werden, als bei der untersten reihe.
My YouTube-Account: TM_ (TMtheScratcher)
Join the Google+ Community “Persist” and test the latest Alpha-versions and get news about the desktop-game! Persist
- Cherryc0ke
- Scratcher
19 posts
[Problem] Wie kann ich Malspuren entfernen?
Vielen Dank,
habs soweit umgesetzt,
allerdings treten Fehler in der ersten reihe auf.
teilweise auch mitten im Feld.
habs soweit umgesetzt,
allerdings treten Fehler in der ersten reihe auf.
teilweise auch mitten im Feld.
Last edited by Cherryc0ke (Nov. 15, 2013 23:03:10)
- Cherryc0ke
- Scratcher
19 posts
[Problem] Wie kann ich Malspuren entfernen?
So, hab den fehler gefunden
Vielen Dank nochmal für die tolle Hilfe
Vielen Dank nochmal für die tolle Hilfe
- Vyte
- New to Scratch
2 posts
[Problem] Wie kann ich Malspuren entfernen?
My browser / operating system: MacOS Macintosh X 10.9, Safari 7.0, Flash 11.9 (release 900)
say []
when green flag clicked
pen up
- Lirex
- Scratcher
500+ posts
[Problem] Wie kann ich Malspuren entfernen?
Hallo Vyte, erst einmal willkommen bei Scratch! My browser / operating system: MacOS Macintosh X 10.9, Safari 7.0, Flash 11.9 (release 900)say []
when green flag clicked
pen up
Wenn du eine explizite Frage hast, zögere nicht, ein eigenes Thema dafür zu eröffnen.
Wenn du dich vorstellen magst, kannst du dies in der Vorstellungsrunde tun. Um Blöcke etc. auszutesten, kann meiner Meinung nach die Freie Unterhaltung herhalten.
Viel Spaß!
Last edited by Lirex (Dec. 2, 2013 20:01:04)
- Discussion Forums
- » Deutsch
- » [Problem] Wie kann ich Malspuren entfernen?