Reversi, un jeu du Windows Store en XAML, C# et C++

Applies to Windows only

L’exemple Reversi montre comment combiner plusieurs fonctionnalités des applications du Windows Store en XAML et C#. Il montre également comment une application en C# peut utiliser C++ pour effectuer des calculs sensibles aux performances. Pour finir, il montre comment le modèle Model-View-ViewModel (MVVM) et les tests unitaires peuvent simplifier la gestion du développement d’une application dont la complexité est croissante. Cette rubrique présente l’exemple et fournit des liens vers de la documentation supplémentaire.

Pour une brève présentation du modèle MVVM, voir Utiliser le modèle Model-View-ViewModel (MVVM).

Pour plus d’informations sur la façon dont l’exemple utilise des fonctionnalités spécifiques, voir Découvrir comment l’exemple Reversi utilise les fonctionnalités d’application du Windows Store. Vous découvrirez ici les fonctionnalités qui vous intéressent sans avoir besoin de comprendre l’exemple en entier.

Pour plus d’informations sur le fonctionnement global de l’exemple, voir Comprendre la structure de l’application Reversi. Cette rubrique décrit les couches d’application et les composants de chaque couche.

L’exemple Reversi utilise XAML et C# pour l’application principale et inclut des versions C# et C++ du moteur de jeu. Nous avons créé la version C# en premier, ainsi que ses tests unitaires. Plus tard, nous avons porté le code C# en C++ pour améliorer les performances et avons tiré pleinement parti des tests unitaires existants pour accélérer le développement. Pour plus d’informations sur la création de la version C++, voir Découvrir le moteur de jeu C++ Reversi.

Remarque  Cette documentation reflète l’état de l’exemple à l’heure où nous écrivons ces lignes. Pour obtenir le code le plus récent et des informations sur les mises à jour éventuelles, consultez les liens suivants.

Téléchargez l’exemple d’application Reversi ou parcourez le code source.

Capture d’écran de l’exemple d’application Reversi

Présentation de l’exemple Reversi

Nous avons créé cet exemple pour illustrer comment combiner plusieurs fonctionnalités en une application réelle. La combinaison de fonctionnalités étant synonyme de complexité, un autre objectif consiste à démontrer comment gérer cette complexité. Nous avons choisi de mettre en œuvre une application de jeu de plateau courante car cela constitue un domaine relativement simple avec des fonctionnalités pouvant aller du simple au complexe.

Cet exemple n’offre aucune instruction d’ordre général quant au développement de jeux, bien que vous puissiez l’utiliser comme base pour des applications de jeu de plateau similaires. Pour les applications du Windows Store exigeant de hautes performances graphiques comme les jeux gourmands en calcul, pensez à utiliser DirectX avec C++ pour fournir la meilleure expérience utilisateur sur le plus grand nombre possible d’appareils. Pour plus d’informations, voir Création d’un jeu DirectX.

Reversi est l’un des jeux de plateau les plus courants sur ordinateur. C’est parce que les règles et l’intelligence artificielle (IA) de ce jeu sont relativement faciles à implémenter, et que les règles plus que centenaires ne sont par conséquent pas soumises à des droits d’auteur. Il représente également un problème de programmation d’un niveau de difficulté intermédiaire.

L’exemple d’application Reversi inclut des fonctionnalités qui permettent à un joueur de :

  • lire les règles du jeu ;
  • jouer avec d’autres partenaires ou contre une IA à plusieurs niveaux de difficulté ;
  • suspendre l’horloge lorsque le jeu n’est pas actif ;
  • afficher et masquer l’horloge ;
  • afficher et masquer les indications visuelles de déplacements autorisés et des espaces affectés par le déplacement précédent ;
  • annuler et rétablir des déplacements pour explorer d’autres coups ;
  • jouer sur différentes tailles de plateau.

Cet ensemble de fonctions comporte suffisamment de complexité pour représenter une véritable application du « monde réel », tout en restant assez simple afin que la taille de l’application soit relativement petite, à des fins d’apprentissage.

Lorsqu’une application atteint ce niveau de complexité, l’apport de modifications et l’ajout de nouvelles fonctionnalités peuvent provoquer des problèmes inattendus. L’exemple Reversi gère la complexité croissante en s’appuyant sur une structure qui sépare les différentes sortes de code en différentes couches. Ces couches ne peuvent interagir que de façon très spécifique, ce qui réduit les effets secondaires accidentels susceptibles de se produire même avec des modifications de code apparemment mineures. L’objectif principal de cette structure, est en fait de faciliter les modifications du code et l’ajout de fonctionnalités sans causer de problèmes. Ainsi, vous pouvez trouver la conception de code appropriée dans un environnement où les erreurs ont moins d’impact et sont plus faciles à corriger. Pour plus d’informations, voir Utiliser le modèle MVVM (Model-View-ViewModel).

Ressources

Pour profiter pleinement de l’exemple Reversi et de la documentation, vous devez tout d’abord comprendre XAML, C# et les bases du développement des applications du Windows Store. Les rubriques suivantes fournissent des informations de base nécessaires :

Pour des informations générales sur la conception et le développement d’applications du Windows Store, voir :

Si vous comprenez le langage C++, vous pouvez également tirer profit de la version C++ du moteur de jeu Reversi, bien que cela ne soit pas obligatoire pour comprendre le reste de l’exemple.

Technologies des jeux et performances des applications

L’exemple Reversi vise la catégorie populaire Jeux du Windows Store et fournit du code et des idées réutilisables dans d’autres jeux. Il met en œuvre un jeu de plateau simple et familier afin de se concentrer sur les principes de base du développement de bout en bout d’une application réelle.

Les jeux de style arcade en temps réel exigent souvent des techniques plus avancées que les jeux de société pour assurer de bonnes performances. Les performances sont importantes pour toutes les applications, et en général, vous devez appréhender les exigences en la matière dès le début pour faire les choix technologiques appropriés. Vous devez également valider vos choix en testant votre application sur divers périphériques pendant le développement.

Les langages XAML et HTML/JavaScript sont appropriés pour de nombreux types de jeux grand public, y compris les applications de puzzle ou de jeu de plateau. Les puzzles et les jeux de plateau sont de bons exemples de premières applications « réelles » pour les néophytes du codage ou de la plateforme, et qui dépassent le niveau « prise en main ».

Si vous envisagez de créer un jeu très performant (par exemple, un jeu de style arcade avec des images lourdes), utilisez Microsoft DirectX, qui est beaucoup plus complexe et puissant que XAML ou HTML/JavaScript. Pour plus d’informations, voir Création d’un jeu DirectX et Interopérabilité DirectX et XAML.

Vous pouvez également améliorer les performances des applications XAML et JavaScript en implémentant des modules spécifiques en C++ ou en utilisant les bibliothèques tierces aux performances optimisées. Pour plus d’informations, voir Création de composants Windows Runtime, Utilisation d’un composant Windows Runtime dans les scénarios de fonctionnalités Reversi et Découvrir le moteur de jeu C++ Reversi. Pour améliorer les performances générales de votre code, voir Meilleures pratiques pour les performances des applications du Windows Store en C++, C# et Visual Basic.

Rubriques associées

Exemple d’application Reversi
Utiliser le modèle Model-View-ViewModel (MVVM)
Découvrez comment l’exemple Reversi utilise les fonctionnalités d’application du Windows Store
Comprendre la structure de l’application Reversi
Découvrir le moteur de jeu C++ Reversi
Développement de jeux
Conception de jeux réussis pour Windows
Créer votre première application du Windows Store en C# ou Visual Basic
Feuille de route pour les applications Windows Runtime en C# ou Visual Basic
Liaison de données

 

 

Afficher:
© 2014 Microsoft