Reversi, ein Windows Store-Spiel in XAML, C# und C++

Applies to Windows only

Im Reversi-Beispiel wird gezeigt, wie mehrere Features von Windows Store-Apps mit XAML und C# kombiniert werden. Außerdem wird veranschaulicht, wie C++ von einer C#-App für leistungsrelevante Berechnungen verwendet werden kann. Zuletzt wird erläutert, wie die Verwaltung einer App, deren Komplexität zunimmt, mithilfe des Model-View-ViewModel (MVVM)-Musters und von Komponententests vereinfacht werden kann. In diesem Thema wird das Beispiel vorgestellt. Es enthält außerdem Links zu zusätzlicher Dokumentation.

Eine kurze Einführung in MVVM finden Sie unter Verwenden des Model-View-ViewModel (MVVM)-Musters.

Informationen dazu, wie im Beispiel bestimmte Features verwendet werden, finden Sie unter Verwenden von Windows Store-App-Features im Reversi-Beispiel. Hier erhalten Sie Informationen zu Features, die Sie interessieren, ohne dass Sie das gesamte Beispiel verstehen müssen.

Informationen dazu, wie das übergeordnete Beispiel funktioniert, finden Sie unter Grundlagen des Aufbaus der Reversi-App. In diesem Thema werden die App-Ebenen und die Bestandteile der einzelnen Ebenen beschrieben.

Im Reversi-Beispiel werden XAML und C# für die Haupt-App verwendet, und es sind C#- und C++-Versionen der Spielengine vorhanden. Zuerst wurde die C#-Version zusammen mit den Komponententests erstellt. Danach wurde der C#-Code zu C++ portiert, um eine Leistungssteigerung zu erzielen. Dabei wurden die vorhandenen Komponententests genutzt, um die Entwicklung zu beschleunigen. Informationen zur Erstellung der C++-Version finden Sie unter Informationen zur Reversi-C++-Spielengine.

Hinweis  Diese Dokumentation spiegelt den aktuellen Zustand des Beispiels zum Zeitpunkt der Erstellung dieses Texts wider. Den aktuellen Code und Informationen zu Updates finden Sie unter folgenden Links.

Laden Sie die Reversi-Beispiel-App herunter, oder durchsuchen Sie den Quellcode.

Screenshot der Reversi-Beispiel-App

Einführung in das Reversi-Beispiel

Anhand dieses Beispiels soll veranschaulicht werden, wie mehrere Features zu einer einzelnen App kombiniert werden, die für die Praxis geeignet ist. Die Verwendung mehrerer Features sorgt für eine hohe Komplexität. Ein weiteres Ziel ist jedoch die Erläuterung, wie diese Komplexität gemeistert werden kann. Die Implementierung einer bekannten Brettspiel-App wurde gewählt, weil es sich dabei um einen relativ einfachen Bereich handelt, dessen Features von einfach bis komplex reichen können.

Dieses Beispiel stellt keine allgemeine Anleitung zur Entwicklung von Spielen dar. Sie können es jedoch als Grundlage für ähnliche Brettspiel-Apps verwenden. Für Windows Store-Apps, die Hochleistungsgrafik erfordern (z. B. rechenintensive Spiele), sollten Sie ggf. DirectX mit C++ verwenden, um auf möglichst vielen Geräten die bestmögliche Benutzerfreundlichkeit bereitzustellen. Weitere Informationen finden Sie unter Erstellen eines DirectX-Spiels.

Reversi ist eines der beliebtesten Brettspiele, das auf Computern implementiert wird. Das liegt daran, dass die Regeln und künstliche Intelligenz (KI) relativ leicht zu implementieren sind. Die Regeln sind über 100 Jahre alt und unterliegen daher nicht dem Urheberrecht. Es veranschaulicht außerdem ein Programmierungsproblem, das nicht zu schwerwiegend, aber auch nicht zu einfach ist.

Die Features der Reversi-Beispiel-App ermöglichen Spielern Folgendes:

  • Lesen der Spielregeln
  • Spielen gegen andere Personen oder eine KI mit verschiedenen Schwierigkeitsgraden
  • Anhalten der Uhr, wenn das Spiel nicht aktiv ist
  • Ein- und Ausblenden der Uhr
  • Ein- und Ausblenden visueller Hinweise für zulässige Bewegungen und für von der vorherigen Bewegung betroffene Bereiche
  • Rückgängigmachen und Wiederholen von Bewegungen, um alternative Spielzüge auszuprobieren
  • Spielen auf verschiedenen Brettgrößen

Diese Features sind komplex genug, um eine wirklich realistische App darzustellen. Sie sind jedoch nicht zu komplex, sodass die App zu Lernzwecken relativ klein ist.

Wenn eine App zu komplex wird, können durch Ändern und Hinzufügen neuer Features unerwartete Probleme auftreten. Bei zunehmender Komplexität wird im Reversi-Beispiel eine Struktur verwendet, die unterschiedliche Arten von Code auf verschiedene Ebenen aufteilt. Diese Ebenen können nur auf bestimmte Weise interagieren. Dadurch werden unbeabsichtigte Nebeneffekte vermieden, die auch bei scheinbar unbedeutenden Codeänderungen auftreten können. Das Hauptziel dieser Struktur besteht vielmehr darin, das Ändern von Code und Hinzufügen von Features zu vereinfachen. Auf diese Weise können Sie das richtige Codedesign in einer Umgebung auswählen, in der Fehler keine großen Auswirkungen haben und leichter behoben werden können. Weitere Informationen finden Sie unter Verwenden des Model-View-ViewModel (MVVM)-Musters.

Ressourcen

Damit Sie das Reversi-Beispiel und die Dokumentation optimal nutzen können, sollten Sie zunächst Grundkenntnisse in XAML, C# und der Entwicklung von Windows Store-Apps erwerben. Die folgenden Themen enthalten erforderliche Hintergrundinformationen:

Allgemeine Informationen zum Entwerfen und Entwickeln von Windows Store-Apps finden Sie in den folgenden Themen:

Wenn Sie sich mit C++ auskennen, können Sie auch von der C++-Version der Reversi-Spielengine profitieren. Dies ist für das Verständnis des restlichen Beispielinhalts jedoch nicht zwingend erforderlich.

Spieltechnologien und App-Leistung

Bei dem Reversi-Beispiel handelt es sich um ein Beispiel aus der beliebten Windows Store-Kategorie Spiele. Es enthält wiederverwendbare Codes und Ideen, die andere Entwickler als Grundlage verwenden können. Es wird ein bekanntes, unkompliziertes Brettspiel implementiert, damit Sie sich auf die Grundlagen der Entwicklung realistischer, umfassender Apps konzentrieren können.

Für Echtzeitspiele im Arcade-Stil sind häufig aufwändigere Technologien als für rundenbasierte Brettspiele erforderlich, damit sie eine gute Leistung erzielen. Leistung ist bei jeder App wichtig. Im Allgemeinen sollten Sie die Leistungsanforderungen bald kennen, damit Sie die richtigen Entscheidungen in Bezug auf die Technologie treffen. Darüber hinaus sollten Sie die App während der Entwicklung auf verschiedenen Geräten testen.

Sowohl XAML als auch HTML/JavaScript sind für viele Arten einfacher Spiele, einschließlich Puzzle- und Brettspiel-Apps, geeignet. Puzzles und Brettspiele sind geeignete "realistische" Apps für Benutzer, die mit dem Codieren oder mit der Plattform noch nicht so vertraut sind, aber bereits über gewisse Grundkenntnisse verfügen.

Wenn Sie ein Spiel mit hoher Leistung (z. B. ein Spiel mit komplexer Grafik im Arcade-Stil) erstellen möchten, sollten Sie die Verwendung von Microsoft DirectX in Erwägung ziehen. Dieses Tool bietet mehr Komplexität und Leistung als XAML oder HTML/JavaScript. Weitere Informationen finden Sie unter Erstellen eines DirectX-Spiels und Interoperabilität von DirectX und XAML.

Sie können die Leistung in XAML- und JavaScript-Apps auch steigern, indem Sie spezielle Module in C++ implementieren oder leistungsoptimierte Bibliotheken von Drittanbietern verwenden. Weitere Informationen finden Sie unter Erstellen von Windows-Runtime-Komponenten, Verwenden von Windows-Runtime-Komponenten in Szenarien für Reversi-Features und Informationen zur Reversi-C++-Spielengine. Informationen zum Steigern der allgemeinen Leistung des Codes finden Sie unter Bewährte Methoden zur Leistungssteigerung für Windows Store-Apps mit C++, C# und Visual Basic.

Verwandte Themen

Reversi-Beispiel-App
Verwenden des Model-View-ViewModel (MVVM)-Musters
Hier erfahren Sie, wie das Reversi-Beispiel Windows Store-App-Features verwendet.
Grundlegendes zur Reversi-App-Struktur
Informationen zur Reversi-C++-Spielengine
Entwickeln von Spielen
Entwerfen großartiger Spiele für Windows
Erstellen Ihrer ersten Windows Store-App mit C# oder Visual Basic
Roadmap für Windows-Runtime-Apps mit C# oder Visual Basic
Datenbindung

 

 

Anzeigen:
© 2015 Microsoft