Diese Erweiterung ist dein Einstieg in den Bereich der künstlichen Intelligenz.
Das ist genau das, was Computer-Gegner bei Videospielen oder selbstfahrenden Autos nutzen.
Dieses Video wird dir zwei Möglichkeiten zeigen, den Gegner zu programmieren.
Die erste Möglichkeit ist leichter zu programmieren aber viel schwieriger zu besiegen.
Für die zweite Möglichkeit ist mehr Code erforderlich,
der Spieler hat dabei aber eine bessere Chance. Dupliziere zunächst die Sportler-Figur.
Falls du bereits einen zweiten Spieler programmiert hast,
kannst du diese Figur als Computer-Gegner nutzen.
Trenne dafür nun den Code des zweiten Spielers vom Ereignis „Wenn Flagge angeklickt“,
sodass er weiterhin vorhanden ist, aber nicht ausgeführt wird.
Gehe dann zu Kostüme, klicke auf „Oben und Unten vertauschen“
und ziehe die neue Figur an den oberen Rand des Bildschirms.
Die erste Möglichkeit, diese Erweiterung zu programmieren, ist, die Figur immer
zur selben Links-rechts-Position gehen zu lassen wie die Ball-Figur.
Gehe zum Tab „Skripte” und wähle im Menü „Bewegung” einen Block „setze x auf“ aus.
Der x-Wert beschreibt die Position der Figur auf der Bühne von links nach rechts.
Null wäre zum Beispiel in der Mitte dieser Linie, 240 wäre eine Position am rechten Rand der Bühne
und minus 240 am linken Rand der Bühne. Gehe zum Menü „Fühlen”.
Ziehe den abgerundeten Block „x-Position von Figur” in den Block „setze x auf“.
Wähle im zweiten Dropdown-Menü des Blocks die Ball-Figur aus.
Dieser Block lautet jetzt: „setze die Links-rechts-Position des Computer-Spielers
auf dieselbe Links-rechts-Position wie die der Ball-Figur“.
Klicke darauf, um zu sehen, ob die Computer-Figur auch wirklich ihre Position verändert.
Genau wie bei den Erweiterungen „Eine Reaktion auf das Abprallen programmieren“
und „Die Punkte zählen“ reicht es nicht aus, diesen Code nur einmal auszuführen.
Die Figur muss das immer wieder wiederholen, damit sie ein würdiger Gegner ist.
Lege eine Schleife „wiederhole fortlaufend“ um den Block.
Setze dann einen Block „setze Drehtyp auf“ an den
Anfang des Blockstapels und wähle im Dropdown-Menü „links-rechts“.
Füge nun am Anfang des Stapels noch einen Block „Wenn Flagge angeklickt“ ein.
Du hast soeben deinen ersten Computer-Gegner erstellt.
Probier’s mal aus! Versuche als Nächstes einen
realistischeren Computer-Gegner zu programmieren. Was du dafür machen musst, wird dir im
weiteren Verlauf dieses Videos erklärt. Was jetzt kommt ist etwas schwieriger;
am Ende wirst du jedoch ein cooleres Projekt haben, das näher an ein echtes Spiel herankommt!
Trenne zunächst den letzten Codestapel vom Ereignis, sodass er nicht ausgeführt wird.
Dupliziere dann den ursprünglichen Blockstapel. Jetzt programmieren wir Folgendes:
Die Computer-Figur wird sich sehr ähnlich verhalten wie ein echter menschlicher Spieler.
Sie wird sich genauso schnell in Richtung des Balls bewegen wie dein Spieler.
Verändere den neuen Codestapel so, dass die Figur automatisch bewegt wird.
Entferne dafür zunächst die Blöcke „Taste gedrückt“ aus dem Stapel.
Ersetze sie durch Blöcke aus dem Menü „Operatoren”.
Ziehe einen Block „größer als“ in das erste leere Feld.
Ziehe nun einen Block „kleiner als“ in das zweite leere Feld.
Ziehe jeweils einen weiteren der Blöcke „Position von Figur“ aus dem Menü „Fühlen” in das erste
leere Feld der Operatoren-Blöcke. Achte darauf, dass im Dropdown-Menü
jeweils „x-Position“ und „Tennisball“ (oder die Ball-Figur in deinem Programm) ausgewählt ist.
Für das jeweils zweite leere Feld findest du im Menü „Bewegung” einen Block, der die x-Position
der aktuellen Figur angibt. Ziehe jeweils einen davon in die zwei Felder, die noch leer sind.
Setze jetzt noch ein Ereignis „Wenn Flagge
angeklickt“ an den Anfang und probier‘ das Ganze mal aus.
Okay, einen Moment. Der Computer-Spieler rennt ja vom Ball weg.
Er geht in die falsche Richtung! Der Code in unserem Beispiel lautet:
„Falls der Ball sich rechts vom Sportler befindet, gehe nach links.“
Na klar, das ist doch falsch herum. Falls dir das auch passiert,
ziehe einfach die Bewegungsblöcke aus dem Block „falls“ heraus und vertausche sie.
Super, jetzt kannst du dir anschauen, wie sich die Computer-Figur in Richtung der Ball-Figur bewegt.
Wenn deine Computer-Figur sich in die falsche Richtung bewegt,
hast du vielleicht einfach nur die Bedingungen in den Anweisungen „falls” vertauscht.
Es gibt hier noch einen letzten Fehler.
Siehst du, dass sich die neue Figur ständig umdreht, wenn sie sich rückwärts bewegt?
Der Block „wiederhole fortlaufend“ prüft beide Bedingungen „falls“ sehr schnell,
sodass es scheint, als würden beide Bedingungen gleichzeitig erfüllt werden.
Dadurch sieht es aus, als würde die Figur sich umdrehen.
Das kannst du beheben, indem du unter dem zweiten Block „falls“ einen Block „warte“ einfügst.
Experimentiere mit diesem Wert herum, bis du einen findest, der für dein Programm geeignet ist.
Probier’s aus!
Gute Arbeit!
Wenn du fertig bist, hast du einen Computer-Gegner mit künstlicher Intelligenz programmiert!
Das ist der Spielplan:
Programmiere die Computer-Figur so, dass sie sich fortlaufend zur x-Position der Ball-Figur bewegt.
Programmiere die Computer-Figur dann so, dass sie prüft, ob sie nach links oder rechts gehen muss,
und sich dann in die gleiche Richtung bewegt wie der menschliche Spieler.