How to do 2048 gut
Hergestellt gerade für Spaß!
Ein AI hinzugefügt wird, dank DJBen. Tippen Sie auf „Hint“ Hinweis zeigen (zum Beispiel nach links / rechts / oben / unten); Tippen Sie "Auto Run" AI automatisch ausgeführt wird. Prüfen Sie es in der AI verzweigen. Sie können auch diese Demo-Video auf YouTube sehen.
Themen und anstehende Verbesserungen
Derzeit ist die Suchtiefe 2 und es manchmal nicht. (NSInteger) maximumSearchingDepth in M2GlobalState + AI.h - Sie können durch Änderung der Rückgabewert die Nummer 3 oder mehr erhöhen.
Idealerweise sollte die KI von 0 Tiefe bis ins Unendliche suchen und eine Zeit aus, zeichnet sie die derzeit besten bewegen, wenn beendet die aktuelle Tiefe der Suche und sofort stoppt, wenn bisher den besten Zug abgelaufen und zurück. Allerdings habe ich ein wenig Mühe, wenn sie mit NSOperationQueue tun, damit ich nicht es auf diese Weise tun. Nun ist die KI sucht nur an der angegebenen -maximumSearchingDepth.
Da es sich um ein Derivat des ursprünglichen 2048 ist, ist es nicht das gleiche. Deutlicher ausgedrückt, hat es die folgenden Ergänzungen:
Diese Version von 2048 ist SpriteKit gebaut unter Verwendung der neuen 2-D-Spiel-Engine Apple iOS 7. Als Ergebnis eingeführt, es erfordert iOS 7 zu laufen. Auf der anderen Seite, ist diese App hat die folgenden beiden großen Eigenschaften:
- Es beruht nicht auf einer Drittanbieter-Bibliothek. Nicht, dass Cocos-2D ist nicht groß, aber die Tatsache, es SpriteKit mit ist bedeutet, dass es keine Abhängigkeiten hat.
- Es hat keine Bilder. Stimmt. Die gesamte Benutzeroberfläche erfolgt entweder über UIKit oder von Core Graphics. Überprüfen Sie die zugehörigen Dateien zu sehen, wie das getan wird, wenn Sie neugierig sind.
Zunächst einmal, das Beste, was über den Code ist, dass es ziemlich gut dokumentiert ist. Die meisten Methoden haben das Apple-Stil-Dokumentation, was bedeutet, dass Sie einen Dreifachklick auf den Namen der Methode, die Dokumentation zu erhalten.
- Die M2GameManager Klasse steuert die Spiellogik. Es gibt nur eine Aktion im Spiel: bewegen. So ist die Mehrheit dieser Klasse ist der Umgang mit dem Umzug. Der Rest ist zu prüfen, ob Sie gewonnen haben oder gestorben sind, usw.
- Die M2Grid Klasse ist die Datenstruktur für den Vorstand. Das Original 2048 verwendet, um ein 1-D-Array, aber was soll, 2-D-Matrix scheint nicht so schlimm, hier zu sein. außer Looping ist es ein bisschen hässlich, so habe ich eine forEach Helferfunktion.
- Die M2Cell Klasse ist die „slot“ s. Sie sind nicht die Fliesen selbst. Der Vorteil dieser Klasse zu haben, ist, dass die Zellen nicht bewegen, so dass sie gute Referenzen sind und sie nicht mit Zohan Zeug.
- Die M2Tile Klasse ist die tatsächlichen Fliesen, und das ist die eigentliche SpriteKit Klasse. Wenn alles, was Sie wollen einige Beispiel-Code für SpriteKit ist, hier ist es. Ich glaube, meine Animationen sind glatter als die anderen 2048 im App Store und sind näher an der ursprünglichen Animation.
- Die M2GlobalState Klasse ist eine globale Klasse von überall im Universum. Nun, globales Zeug ist schlecht, nicht wahr? Mindestens so sagt man uns. Aber es ist zumindest besser die globalen Sachen in eine einzigen Objekt (Namespace) zu kapseln, und das ist ein Singleton recht.
- Die M2Theme Klasse und ihre Unterklassen steuern das Thema.
- Es gibt auch einige Controller-Klassen und Ansichtsklassen. Es ist wahrscheinlich eine bessere Idee, das Spiel vorbei Szene in SpriteKit zu tun, aber ich war faul, damit ich gefälscht es eine Ansicht verwenden. Die M2GridView Klasse ist derjenige, der das Brett zieht, btw.
Etwaige Beiträge sind mehr als willkommen! Wenn Sie es zu verbessern tun, denken Sie daran, sich zu setzen in der „Über 2048“ Seite selbst Kredit zu bekommen.