Spiele programmieren / Sudo Null IT News

Seit mehreren Jahrzehnten herrscht weltweit ein chronischer Mangel an Programmierern mit stetig wachsender Nachfrage. Es gibt die Meinung, dass Programmieren ein spezifischer Beruf ist, der einer begrenzten Anzahl von Menschen zur Verfügung steht. Es gibt nicht viele Menschen auf der Welt mit einem hohen IQ, der Fähigkeit, sich lange zu konzentrieren und mit komplexen abstrakten Strukturen zu operieren.

Es gibt wenige Profis. Aber sie können von Grund auf neu trainiert werden. Theoretisch kann jeder Person mit unbegrenzter Zeit alles beigebracht werden, wenn sie einen endlosen Wunsch und Neugier hat. Es scheint, dass Neugier noch wichtiger ist als Können.

Entsprechende Fähigkeiten können entwickelt und die Intelligenz kann gesteigert werden genetisch definierter breiter Korridor. Dies ist in jedem Alter möglich. Es ist am besten von Kindheit an, obwohl Erwachsene nichts stört … Der einfachste Weg, um anzufangen, ist mit Spielen.


Durch die emotionale Beteiligung und Spannung geht das Lernen in Spielen viel schneller und macht Freude, was auch für die emotionale Bindung an den Beruf wichtig ist.

Einige Spiele werden einfach geschaffen, um das abstrakte Denken und die Logik einer Person zu formen. Das heißt in der Tat – für das Lehren des Programmierens. Die Schöpfer des Spiels hatten nicht vor, Programmierer auszubilden, aber das Spiel tut es tatsächlich. Andere Spiele stellen speziell eine solche Aufgabe – die Ausbildung von Programmierern.

Zum Beispiel auf Courserain MIT und auf anderen Bildungsseiten wird die Erziehung der Jüngsten oft spielerisch in Sprachen durchgeführt Kratzen oder blockig. Das Kind erstellt Algorithmen zur Lösung einfacher und verständlicher Probleme. Zum Beispiel ein Schaf den Weg entlang zu führen, um nicht an den Wolf zu kommen. Die Hauptsache ist, dass Kinder es lieben – und dadurch die Liebe zum Programmieren ein Leben lang behalten (na ja, das ist die Absicht).

Mein Sohn im Alter von sechs Jahren hat es genossen, diese Spiele zu lösen. Jetzt ist er fünfzehn – und die gelegte Basis scheint Wirkung zu zeigen. Im Allgemeinen hat Scratch selbst im Laufe der Jahre seine Wirksamkeit bewiesen und zu einem echten Phänomen geworden mit einem riesigen Publikum von jungen (und nicht nur) Programmierern.

Das heißt, es ist klar, dass Spiele dieser Art speziell in der Bildung verwendet werden.

Aber es gibt andere Spiele – die nicht darauf abzielen, professionellen Programmierern etwas beizubringen, sondern ihnen zu gefallen – die sogenannten Spiele programmieren (Spiele programmieren). Hier ist der Spieler nicht direkt am Spielgeschehen beteiligt. Stattdessen schreibt er ein Kontrollprogramm, das mit seinesgleichen kämpft. Prinzipiell eignet sich dieser Ansatz auch zum Lernen. Vielleicht passt es sogar besser – ein Wettbewerb ist immer interessanter als eine einfache Unterrichtsstunde.

Experten auf Wikipedia schreiben, dass die ersten Programmierspiele waren Darwin (1961) und “Kampf der Erinnerung” (Kernkrieg, 1984). In diesem Spiel kämpfen zwei Bots (Programme) um die Kontrolle über einen virtuellen Computer. Die Aufgabe besteht darin, das Programm des Feindes aufzulegen. Kampfprogramme werden in abstraktem Assembler kompiliert redcode, und dann an einer zufälligen Adresse in den Speicher geladen. Von dort aus führen sie eine Anweisung pro Runde aus, stehlen nach und nach Speicher, zerstören die Prozesse des Feindes (verursachen Fehler, indem sie seine Werte ersetzen) und vertreiben ihn nach und nach vollständig aus dem Territorium (siehe unten). Anleitung im Magazin “Hacker”).

Dieses Spiel wird immer noch bei Weltmeisterschaften gespielt. Von anderen bekannten Programmierspielen heben sich verschiedene Kategorien von Kampfrobotern, Logikspielen (z. B. Turniere von Schachprogrammen) und anderen hervor – die Kontrolle über ein Rennauto, eine Kolonie von Mikroben und so weiter. Die Hauptsache ist, dass nicht Menschen am Spiel teilnehmen, sondern Programme, die von ihnen geschrieben wurden.

Das bekannteste Kampfroboterspiel ist Robocodeursprünglich zum Erlernen der Java-Sprache erstellt.

Später erschien eine neue Version dieses Spiels: Robocode Tank Royale (Java 11+). Im Gegensatz zur Originalversion findet der Kampf hier nicht im Einzelkampf (PvP) statt, sondern im Massenschlachtmodus, wonach es einen Gewinner gibt, dh den „königlichen Kampf“.

▍ Robocode. Battle-Royale

Das Ziel des Spiels ist es, einen Bot in Form eines virtuellen Panzers zu erstellen, der in einer virtuellen Kampfarena gegen andere Bots antritt. Wie bei anderen Programmierspielen ist der Bot auf „Free Float“ eingestellt, sodass wir keinen Einfluss auf das Spiel haben, nachdem wir das Steuerprogramm geschrieben haben. Das Programm legt fest, wie sich der Bot verhalten und auf Ereignisse in der Arena reagieren soll.

Ein Beispiel für einen Kampf in Robocode Tank Royale:

Dieses Spiel hilft Ihnen auch, Java zu lernen und allgemein zu lernen, wie man programmiert oder Ihre Fähigkeiten verbessert – und dabei Spaß hat. Robocode ist auch nützlich, um die Grundlagen des maschinellen Lernens zu erlernen.

Der Tank besteht aus drei Teilen:

  • rahmen
  • Werkzeug
  • Radar

Der Körper bewegt sich vorwärts und rückwärts und kann sich auch nach links und rechts drehen.

Die Kanone feuert Energiegeschosse ab. Sie dreht sich auch relativ zum Körper.

Der schwierigste Teil des Panzers ist das Radar. Es wird oben auf der Waffe montiert und scannt andere Bots. Das Radar schwenkt nach links oder rechts. Es scannt und erkennt Bots nur beim Abbiegen und nur solche Bots, die sich innerhalb der Radarreichweite befinden. Der Radar-Sweep ist als Delta zwischen dem anfänglichen und dem endgültigen Drehwinkel definiert. Das heißt, wenn sich das Radar nicht dreht, scannt es nichts. Und je schneller es rotiert (unter Berücksichtigung der Rotation von Rumpf und Kanone), desto größer ist der Sweep. In jedem Fall muss sich das Radar ständig drehen.

Das Spiel ist außerdem rundenbasiert. Bei jedem Schritt erhält das Programm Informationen vom Server und sendet ihm die nächsten Anweisungen zu den Aktionen des Bots in der Arena.

Hier sind einige Regeln der Spielwelt:

  • Der Schaden durch einen Treffer wird nach der Formel 4F berechnet, wobei F die Feuerkraft des Panzers von 0,1 bis 3 ist, was seiner aktuellen Energie entspricht. Im Gegenzug wird die Energie durch das Auftreffen auf andere Panzer um Level 3F erhöht.
  • Die Fasserwärmung wird nach der Formel (1+F)/5 berechnet.
  • Die Projektilgeschwindigkeit beträgt 20−3F.

In der einfachsten Version fährt der Panzer einen zufälligen Azimut ab, scannt den umgebenden Raum und schießt auf alles. Einen Gegner zu treffen ist keine so einfache Aufgabe, da er wahrscheinlich zurückschießt und seine Flugbahn ändert, wenn ein äußerer Panzer entdeckt wird.

▍ Moderne Kampfspiele

In den letzten Jahren sind eine Reihe neuer schöner Spiele erschienen. Viele von ihnen sind vom gleichen Typ: Schreiben Sie ein Programm, um den Bot zu steuern – und starten Sie ihn in die Arena, wo er mit denselben Programmen kämpft. Sie haben hübschere Grafiken und unterstützen alle wichtigen Programmiersprachen, nicht nur Java wie Robocode.

Hier sind einige solcher Spiele:

  1. Halit
  2. Ja
  3. Kampfschlange
  4. Codierungsspiele (bei KDPV)
  5. Schreit
  6. Schwarm
  7. Lia

▍ Regex lernen

Ein Beispiel für ein weiteres ungewöhnliches Spiel für Programmierer ist

Regex-Abenteuer

um die Semantik regulärer Ausdrücke zu lernen, aber das ist ein kostenpflichtiges Spiel (es gibt

Kostenlose Demo

).

Hier geht der Spieler spazieren und sammelt Buchstaben, aus denen er Zauber wirken kann, die zum Namen des Feindes passen. Beispielsweise stimmen drei Punkte mit jedem Namen mit drei Buchstaben überein und so weiter.

▍ Faktorio

Und natürlich ist es unmöglich, es nicht zu erwähnen Faktor (und Mod Weltraumforschung), das zu Recht von Ingenieuren und Menschen mit technischer Denkweise geliebt wird.

Manchmal sogar Wird in Vorstellungsgesprächen verwendet, um Kandidaten zu überprüfen. Befürworter dieses Ansatzes glauben, dass das Durchlaufen des gesamten Factorio-Zyklus ein nahezu perfekter Indikator dafür ist, wie gut eine Person allgemeine technische Probleme löst.


Logistiknetzwerk

Tatsächlich offenbaren die üblichen Sozialdienste die Fähigkeiten des Kandidaten nicht und zeichnen manchmal sogar ein verzerrtes Bild von ihm. Factorio ist also eine durchaus funktionierende Alternative. Es gibt kein Schummeln und kein Vortäuschen. Darüber hinaus werden beim gemeinsamen Spielen in Factorio neben technischem Denken, Intelligenz und Schlagfertigkeit auch Soft Skills getestet: „Wie funktioniert ein Mensch im Team mit Kollegen?“. Und zwar nicht mit irgendwelchen abstrakten Kollegen, sondern mit konkreten Menschen, mit denen er in den nächsten Jahren in der Realität Schulter an Schulter arbeiten muss:

Debugging ist die offensichtlichste Parallele zwischen Factorio und echter Softwareentwicklung. Die Fähigkeit, das wirkliche Problem schnell herauszufinden, ist eine entscheidende Fähigkeit, und der Denkprozess ist fast identisch mit dem Aufspüren der Ursache eines Absturzes in einem echten Programm.

… Es gab Zeiten, in denen die ganze Pflanze stehen geblieben ist, weil Sie angefangen haben, etwas zu erforschen, das keine gelbe Wissenschaft erfordert. Infolgedessen haben Sie aufgehört, Drohnenrahmen zu verwenden, die nicht mehr mit Elektromotoren ausgestattet waren, die eine Schmierflüssigkeit verwendeten, für deren Herstellung Heizöl verwendet wurde. Infolgedessen wurde das Ölauslassrohr an der Raffinerie verstopft, wodurch Ihnen das Erdölbegleitgas ausging, was die Kunststoffproduktion stoppte. Infolgedessen wurde die Produktion des roten Signalkabels eingestellt – und die gesamte Fabrik brach zusammen … Wenn ein guter Programmierer eine kaputte Raffinerie erhält, kann er normalerweise das Problem bis zur Quelle zurückverfolgen, verstehen, was passiert ist, und schnell versuchen, eine Lösung zu finden. Auf der anderen Seite, wenn eine Person ohne triftigen Grund einfach ein paar neue Tanks auf den Boden knallt (er ist sich absolut sicher, dass immer Schmierflüssigkeit benötigt wird), dann ist dies ein großes Warnsignal für die Problemlösungsmethoden in seine Programme.

Aus dem Artikel „Co-op bei Factorio zu spielen, ist das beste Programmierinterview, das wir je hatten“

Sie sagen, dass alle kollektiven Spiele nützlich sind, um die Kommunikation zu fördern, und nicht nur bestimmte technische, aber dies ist ein separates Problem.

Im Allgemeinen werden logische Denkfähigkeiten in vielen strategischen, taktischen, rundenbasierten Logikspielen verfeinert. Im Allgemeinen ist es schwierig, mindestens ein nutzloses Spiel zu nennen. Alle von ihnen sind nützlich. Alle Videospiele pumpen Stressresistenz, Entscheidungsgeschwindigkeit, Arbeitsgedächtnis oder etwas anderes. Dies sind sehr nützliche Fähigkeiten für einen zukünftigen Programmierer.

Nachdem Sie all das oben genannte gespielt haben, denken Sie unwillkürlich: Ich wünschte, sie würden Videospiele in Schule und Universität geben. Zum Beispiel sind wir Differentialgleichungen durchgegangen – wir springen mit einem Timer aus einem Flugzeug, um einen Fallschirm zu öffnen (der Luftwiderstand ist proportional zum Quadrat der Geschwindigkeit) mit zufälligem Wind, Höhe und Schwerkraft. Der Punkt ist, dass sich der Fallschirm so nah wie möglich am Boden öffnet – und während des Fluges müssen Sie den genauen Wert des Timers berechnen. Für verschiedene Aufgaben können Sie sich einige andere Spiele einfallen lassen, es ist immer interessant.

Similar Posts

Leave a Reply

Your email address will not be published.