Bases de programmation pour Android en utilisant l'exemple du jeu Sudoku. Développement d'applications Android. Comment créer votre propre application Android

Le système d'exploitation Android approche de son dixième anniversaire. Bien que depuis la première version de ce système opérateur Tant de temps a passé, cela ne veut pas dire que le train est parti, et il est trop tard pour apprendre à développer des applications Android. En fait, il est temps d’apprendre : jamais auparavant il n’y a eu autant de moyens efficaces créer des applications Android étonnantes.

Et tous les nouveaux Chromebooks prennent désormais en charge les applications Android : ils peuvent être téléchargés, installés et lancés, comme dans leur environnement natif. Le marché des logiciels Android ne fait que croître. Ne pensez pas que le temps est passé : il n’est pas trop tard pour commencer. Tout ce dont vous avez besoin pour commencer : préparez-vous, respirez profondément, choisissez le langage de programmation approprié - et commencez votre voyage.

Mais quel langage de programmation vous convient le mieux ? Choisir le bon outil de développement est la première tâche que personne ne peut faire mieux que vous. Beaucoup dépend de l'expérience en programmation (ou du manque d'expérience dans des environnements de développement spécifiques), du confort personnel lors de l'utilisation d'un langage particulier. Heureusement, il existe une sélection décente. Cet article présente une sélection des meilleurs langages de programmation pour Android.

En ce qui concerne les applications Android, Java n’est en aucun cas un mauvais choix. En plus d'être le langage de programmation officiel de cet OS, il est également le deuxième plus répandu sur la ressource GitHub, et il est si populaire depuis plus de 20 ans. Cela signifie qu'il existe un grand nombre d'instructions et de manuels sur Java, et qu'il n'y a absolument aucune raison de s'inquiéter de l'obsolescence de ce langage dans un avenir proche.

Le langage Java s'étant largement répandu dans des dizaines d'industries de programmation, nous vous recommandons de commencer à l'étudier avec des livres dédiés à Java dans le contexte de l'écologie. Systèmes Android. Bien sûr, Java est le même dans tous les environnements, mais des paradigmes et des expressions distinctes aideront un esprit curieux à comprendre rapidement l'essence. Développement Android-applications. C'est précisément la tâche que se fixent la plupart des livres sur ce sujet.

Il convient de noter qu'en raison de l'âge avancé de Java, il lui manque certaines fonctionnalités trouvées dans les langages plus jeunes. Ce n'est peut-être pas un gros problème pour les débutants, mais pour les programmeurs plus expérimentés qui utilisent le langage, par exemple Swift, Java peut sembler claustrophobe au début.

Le langage de programmation Kotlin a été créé spécifiquement pour fonctionner sur des machines virtuelles Java. Cela signifie que les applications Kotlin sont compilées en code Java, ce qui leur permet de s'exécuter sur n'importe quelle machine compatible Java. Et comme la plupart des machines prennent en charge Java, l’utilisation de Kotlin est un moyen relativement simple de développer des logiciels multiplateformes.

Utiliser Kotlin est une application dans produit logiciel tout le monde meilleurs côtés Java sans ses inconvénients. La syntaxe et les autres fonctionnalités de la programmation dans Kotlin sont modernes, compréhensibles et rapides. C'est un environnement de développement vraiment pratique. Alors que Java semble lourd, maladroit et ancien, Kotlin semble confortable, frais et même beau. Dans une certaine mesure, on peut considérer que Kotlin a été créé spécifiquement pour le développement Applications Android.

Mais d'autre part? Kotlin est une langue très jeune. Ses premières versions sont sorties en 2011, et la sortie officielle n'a eu lieu qu'en 2016. Bonne nouvelle : Kotlin est gratuit et open source. Nous pouvons nous attendre à ce qu’il se développe à pas de géant. Mais dans tous les cas, il faudra plusieurs années avant que ce langage se révèle être un choix véritablement fiable.

C# est un langage de programmation incroyable ! Il a tiré le meilleur de Java, laissant derrière lui les pires caractéristiques de ce langage. Et cela s’est développé dans la même bonne direction. Il semble que Microsoft ait vu le potentiel de Java et ait décidé de développer sa propre version, meilleure.

Pendant longtemps, l’un des inconvénients majeurs de l’utilisation de C# était qu’il ne fonctionnait que sur les systèmes Windows : le langage est basé sur le .NET Framework. Mais en 2014, cette situation a changé : Microsoft a ouvert le .NET Framework. De plus, en 2016, la société a acquis Xamarin, le développeur de Mono (un projet qui permet aux programmes C# de s'exécuter sur diverses plateformes).

Le résultat de ces actes glorieux est qu’aujourd’hui vous pouvez utiliser les environnements Xamarin.Android et Xamarin.iOS pour créer Applications mobiles dans Visual Studio ou Xamarin Studio. Très bon moyen commencer le développement, car à l'avenir, il sera possible d'utiliser les outils de ce langage dans d'autres domaines - par exemple, créer jeux stimulants en utilisant Unity et C#. Exemples illustratifs des applications construites dans Xamarin ? MarketWatch – ni plus, ni moins.

Enfin, notons que jusqu’à récemment, travailler dans Xamarin était payant. Mais Microsoft a rendu cet environnement gratuit !

Bien qu'Android ne prenne pas en charge nativement Python, il existe des outils qui vous permettent d'écrire des applications en Python, puis de les convertir en applications APK Android natives. Un excellent exemple de la viabilité de Python en tant que véritable langage efficace. Les passionnés de Python qui souhaitent s'essayer au développement d'applications Android apprécieront certainement cette opportunité - sans plonger dans la jungle de Java.

Parmi les solutions les plus populaires pour convertir du code Python en APK figure le projet Kivy. Et ce n'est même pas une question de nature Open source, et pas seulement dans Prise en charge de Windows, Mac, Linux et iOS en plus d'Android. Kivy est conçu pour accélérer réellement le développement d'applications. Au contraire, vous pouvez l'utiliser comme outil de prototypage. Vous pouvez faire tellement de choses avec seulement quelques lignes de code !

Cependant, en l’absence de support natif de Python, vous ne pourrez pas profiter de l’environnement natif d’Android. Les applications écrites avec Kivy ont tendance à se compiler dans des APK plus volumineux, ont des temps de démarrage lents et ont généralement des performances inférieures à la moyenne. Cependant, chaque nouvelle version est vraiment meilleure que la précédente, et les appareils mobiles aujourd'hui si puissant que des performances d'application sous-optimales ne signifient pas grand-chose. Que ce facteur ne soit pas un obstacle.

Quelques exemples d'applications Android écrites en Kivy : Kognitivo et Barly.

  1. HTML5 + CSS + JavaScript

Ce trio de langages, autrefois créé pour développer des applications frontales dans un environnement Web, est depuis devenu quelque chose de plus. Désormais, les outils HTML5, CSS et JavaScript suffisent pour créer le plus différentes applications pour les appareils mobiles et les PC classiques. Essentiellement, un programmeur crée une application Web capable d’exploiter la puissance et la magie des plateformes hors ligne.

Pour créer des applications Android de cette manière, vous pouvez utiliser les capacités d'Adobe Cordova - il s'agit d'un framework open source qui prend également en charge iOS, Windows 10 Mobile, Blackberry, Firefox et bien d'autres. Cependant, aussi utile que soit Cordova, la création d’une application décente nécessite un travail sérieux. Par conséquent, de nombreux programmeurs préfèrent le projet Ionic Framework (qui utilise Cordova pour le déploiement sur diverses plateformes).

Exemples d'applications Android écrites en HTML5, JavaScript et CSS : Untappd et TripCase.

Il existe une autre possibilité : utiliser la bibliothèque React Native. Il peut être déployé sur Android, iOS et le " Applications universelles Les fenêtres". Cette bibliothèque est utilisée par des spécialistes de Facebook, Instagram et autres grandes entreprises, vous pouvez donc compter sur sa fiabilité. Ce n'est pas la courbe d'apprentissage la plus simple, mais à la fin, vous aurez toute la puissance, la flexibilité et la commodité dont vous pourriez rêver à portée de main.

Lua - vieux langage de script, qui a été créé à l'origine comme un module complémentaire pour les programmes écrits dans des langages plus complexes : C, VB.NET, etc. Ce langage possède certaines caractéristiques qui distinguent Lua d'un certain nombre de langages similaires - par exemple, le début des tableaux par 1 au lieu de 0, ou l'absence de classes natives.

Ainsi, pour certaines tâches, Lua peut être utilisé comme langage de programmation principal. Le meilleur exemple - SDK Corona. Grâce à Corona, vous pouvez créer des applications puissantes et riches en fonctionnalités qui peuvent être déployées sur Windows, Mac, Android, iOS et même Apple TV + Android TV. Corona possède également des capacités de monétisation intégrées, et il s'agit en outre d'un marché de taille décente où vous pouvez trouver des plugins utiles.

Corona est le plus souvent utilisé pour créer des jeux (par exemple Fun Run 2 et HoPiko), mais il existe également des exemples d'applications utilitaires et commerciales (Mes journées et Tourisme Québec).

  1. C/C++

Pour créer des applications Android, Google propose officiellement deux environnements de développement :

  • SDK (utilise Java);
  • et NDK (utilise des langages natifs comme C et C++).

Notez que pour créer une application entière, utiliser C, C++ et Java « nu » ne fonctionnera pas. Au lieu de cela, le NDK vous permet de créer des bibliothèques dont les fonctions sont accessibles par des parties de code Java depuis votre application.

En règle générale, il n'est pas nécessaire d'utiliser le NDK. Cet environnement ne doit pas être utilisé comme environnement principal, ne serait-ce que parce que vous devrez faire plus de codage en C/C++ plutôt qu'en Java. L'existence de NDK est justifiée dans les tâches où il est nécessaire d'obtenir autant de performances que possible lors de l'exécution de tâches informatiques complexes. Le NDK vous permet également d'implémenter des bibliothèques C et C++ dans votre application.

Mais dans d’autres cas, cela vaut la peine de s’en tenir à Java autant que possible. Développer des applications Android en C/C++ est bien plus difficile qu’en Java. Et le plus souvent, les gains de performances sont trop faibles.

Quelles applications souhaiteriez-vous aborder ?

Messagers, jeux, calculatrices, bloc-notes, lecteurs. Les possibilités sont infinies! À bien des égards, ils sont illimités grâce aux langages et frameworks de programmation répertoriés ci-dessus. Il n'est pas nécessaire de tous les étudier d'affilée - seulement ceux qui sont spécifiquement utiles pour résoudre votre problème. Si, à l’avenir, vous avez besoin d’élargir vos propres connaissances, vous pourrez alors vous lancer dans l’auto-éducation le moment venu.

Enfin, nous vous recommandons de lire les blogs dédiés au développement d’applications mobiles. Ils vous permettront de déterminer les ingrédients nécessaires à la préparation d’une application mobile réussie et vous aideront à surmonter de nombreuses difficultés qui surgissent inévitablement sur le chemin de tout programmeur.

Vous avez donc décidé de devenir développeur d’applications mobiles pour le système d’exploitation Android. C'est une excellente solution, mais sans certaines connaissances, cela ne fonctionnera pas. Au minimum, vous devez apprendre la programmation. Il existe plusieurs langages de programmation et vous devrez choisir par lequel commencer. Il y a une différence entre eux, et elle n’est peut-être pas très facile à comprendre.

Voici les langages de programmation qu’un futur développeur Android pourrait envisager :

  • Java est le langage de développement officiel pour Android et est pris en charge par l'environnement de développement de Google. Ce n'est peut-être pas si facile à apprendre.
  • Kotlin – Cette langue a été introduite comme deuxième langue officiellement prise en charge. Il est similaire à Java à bien des égards, mais il est plus facile de démarrer.
  • C/C++ – Android Studio prend en charge le C++. Ce langage est encore plus complexe, mais il est activement utilisé dans le développement de jeux.
  • C# – ce langage peut plaire aux débutants. Il est pris en charge par les environnements de développement Unity et Xamarin. Ils offrent des avantages lors du développement de jeux et de produits pour différentes plateformes.
  • BASIC – Ce langage est pris en charge par l'IDE B4A, qui est un outil simple mais puissant.
  • Corona/LUA – L'environnement LUA est idéal pour développer des produits multiplateformes. Il simplifie grandement la création d’applications et donne accès à des bibliothèques natives.
  • PhoneGap (HTML, CSS, JavaScript) – Cette option convient à ceux qui savent créer des pages Web interactives. Avec PhoneGap, vous pouvez créer des applications multiplateformes de la même manière.

Examinons maintenant ces options plus en détail.

Java

Langue Programmation Java vient à l’esprit en premier lorsqu’il s’agit de développement Android. Java a été lancé par Sun Microsystems en 1995. Il est utilisé pour différents types applications. En ce qui concerne les applications Android, Java est Le Meilleur Choix pour ceux qui veulent se lancer à corps perdu dans le développement Android. Cependant, ce n'est pas le plus meilleure langue pour un débutant. Vous rencontrerez certainement des difficultés. Si vous êtes débutant, que vous souhaitez créer un jeu ou commencer à apprendre, mais que vous n'avez pas encore décidé quel type de résultat vous souhaitez obtenir, vous voudrez peut-être commencer par quelque chose de plus simple.

Kotlin

Kotlin, tout comme Java, est idéal pour le développement d'applications Android. La différence est que Kotlin est plus facile pour les débutants, mais pas encore plus facile que de nombreuses autres options. Cela vaut le détour car le langage est jeune et vous pouvez travailler avec lui dans Android Studio, ce qui est un gros plus.

C/C++

Pas le meilleur choix pour créer applications simples. Vous pouvez travailler avec la langue dans Android Studio avec en utilisant Android NDK, mais contrairement à Java et Kotlin, il ne s'exécute pas sur la machine virtuelle Java. Cependant, il fonctionne nativement sur l'appareil, ce qui peut vous offrir plus d'options de mémoire. Vous pouvez réaliser avec cela meilleure performance dans le cas des jeux 3D. Si tel est votre choix, préparez-vous aux difficultés. Vous feriez peut-être mieux d'utiliser un moteur de jeu prêt à l'emploi pour créer vos jeux.

C#

C# est plus version simplifiée C et C++, développés par Microsoft. Avec ce langage, vous n'avez pas à vous soucier de la gestion de la mémoire, tout comme avec Java. Cependant, C# est plus moderne et plus propre que Java. C# et Unity seront très utiles et faciles à développer des jeux. Pour le développement d’applications, l’environnement Unity n’est pas très bon. C# Bon choix, mais cela limitera vos options si vous souhaitez devenir un développeur Android professionnel.

BASIQUE

Cette langue - la meilleure option pour un débutant. Vous pourrez l'utiliser dans l'environnement de développement B4A. Cette combinaison n'est pas idéale pour créer des jeux, mais elle est idéale pour apprendre à développer. Vous pouvez apprendre beaucoup de nouvelles choses sans trop de travail et créer de bonnes applications. Cependant, pour toutes ces joies, vous devrez payer en argent. Vous apprendrez quelque chose de nouveau, mais vous ne deviendrez pas un professionnel si vous savez seulement programmer en BASIC.

Couronne

Corona en conjonction avec LUA vous permettra de développer non seulement pour Android, mais c'est beaucoup plus facile que de commencer à apprendre Java. Vous l'aimerez et serez satisfait des résultats, mais pour développer vos compétences, vous devrez apprendre autre chose. Comme avec BASIC, il n’y a aucun moyen de devenir professionnel.

Espace téléphonique

La dernière option convient à ceux qui maîtrisent le développement Web et peuvent créer un site Web interactif en utilisant HTML, CSS et JavaScript. PhoneGap vous permettra de créer une application en utilisant les mêmes outils. Cette option a très peu à voir avec le développement Android, mais elle convient si vous avez des objectifs spécifiques et que vous n'envisagez pas de développer pour Android à l'avenir.

Il existe de nombreuses options. Nous sommes convaincus que vous saurez faire le bon choix.

Par Matériaux Android Autorité

Super. Mais par où commencer ? Quelle langue dois-je apprendre ? De quelles sources ? Et où appliquer les compétences de base acquises ? Notre article vous aidera à obtenir des réponses à ces questions.

Chaque langage et framework a ses propres complexités et nuances, avantages et inconvénients. Regardons les principaux langages d'écriture d'applications Android.

Java

Le langage de programmation officiel pris en charge par l'environnement de développement Android Studio. Selon l'enquête annuelle Stackoverflow, en 2018, Java figurait parmi les cinq langages de programmation les plus populaires.

La première étape pour maîtriser Java consiste à installer Android Studio. C'est le genre logiciel appelé IDE - Integrated Development Environment, ou environnement de développement intégré. Livré avec Android Studio SDK Android— un ensemble d'outils pour le développement Android et tout ce dont vous avez besoin pour un démarrage fiable.

La plupart de la documentation officielle de Google fait référence à Java, et vous pouvez trouver des bibliothèques gratuites et les conseils ne seront pas difficiles - ils sont nombreux.

Les principales raisons d'utiliser PhoneGap pour le développement d'applications chez Live Typing étaient :

  • réduire le temps et le coût de développement d'une application pour plusieurs plateformes à la fois (une demande d'abonnement aux institutions sportives de la ville) ;
  • la possibilité d’utiliser le site Internet existant du client et ses fragments (demande de paiement de prestations et d’achats en ligne).

Conclusion

En général, les applications pour Android peuvent être créées dans presque toutes les langues populaires - il existe des frameworks et des utilitaires pour tout. Cependant, si vous souhaitez devenir un développeur Android professionnel, utilisez toutes les fonctionnalités du système d'exploitation et accédez aux dernières Fonctions Android, alors Java ou Kotlin deviendront vos fidèles compagnons. Même si ces langages ne vous sont pas familiers et semblent compliqués, ils valent la peine d'apprendre à écrire des applications riches, belles et fonctionnelles pour le système d'exploitation Android.

Et vous devez commencer à vous familiariser avec le côté théorique du développement Android à partir de notre article dans lequel nous avons collecté.

Dans toute entreprise, le plus difficile est le début. Il est souvent difficile de se remettre dans son contexte, c'est ce que j'ai rencontré lorsque j'ai décidé de développer ma première application Android. Cet article s’adresse à ceux qui veulent commencer, mais ne savent pas par où.

L'article couvrira l'ensemble du cycle de développement d'applications. Ensemble, nous allons écrire un simple jeu de Tic-Tac-Toe avec un seul écran (sous Android OS, cela s'appelle Activity).

Manque d'expérience en développement Langage Java ne doit pas devenir un obstacle à la maîtrise d’Android. Ainsi, les exemples n'utiliseront pas de constructions spécifiques à Java (ou seront minimisés autant que possible). Si vous écrivez, par exemple, PHP et connaissez les principes fondamentaux du développement logiciel, cet article vous sera très utile. À mon tour, comme je ne suis pas un expert en développement Java, on peut supposer que source ne revendique pas le label « bonnes pratiques pour le développement Java ».

Installation des programmes et utilitaires nécessaires

je vais lister outils nécessaires. Il y en a 3 :

  1. IDE avec prise en charge du développement Android :
    • Plugin Eclipse + ADT ;
    • IDÉE IntelliJ Edition communautaire;
    • Plugin Netbeans + nbandroid ;

Les utilitaires sont installés dans l'ordre spécifié ci-dessus. Cela ne sert à rien d’installer tous les IDE répertoriés (sauf si vous avez des difficultés à choisir le bon). J'utilise IntelliJ IDEA Community Edition, l'une des plus avancées sur ce moment EDI pour Java.

Démarrer un appareil virtuel

En lançant AVD Manager et en installant forfaits supplémentaires(SDK différentes versions), vous pouvez commencer à créer périphérique virtuel avec les paramètres nécessaires. Comprendre l'interface ne devrait pas être difficile.

Liste des périphériques

Créer un projet

J'ai toujours hâte de me mettre au travail, en minimisant les activités préparatoires, qui incluent la création d'un projet dans l'IDE, surtout lorsque le projet est éducatif et n'a pas l'intention d'être produit.

Donc, Fichier->Nouveau projet :

En appuyant sur le bouton F6, le projet sera assemblé, compilé et lancé sur l'appareil virtuel.

Structure du projet

La capture d'écran précédente montre la structure du projet. Puisque dans cet article nous poursuivons des objectifs purement pratiques, nous nous concentrerons uniquement sur les dossiers que nous utiliserons dans le processus de travail. Il s'agit des répertoires suivants : génération, rés Et src.

Dans le dossier génération certains fichiers sont générés automatiquement lors de la construction du projet. Vous ne pouvez pas les modifier manuellement.

Le dossier res est destiné à stocker des ressources telles que des images, des textes (y compris des traductions), des valeurs par défaut, des mises en page.

src- c'est le dossier dans lequel se déroulera l'essentiel du travail, car ici sont stockés les fichiers avec le code source de notre programme.

Premières lignes

Dès la création de l'Activité (écran de l'application), la méthode onCreate() est appelée. L'EDI l'a rempli de 2 lignes :
super.onCreate(savedInstanceState); setContentView(R.layout.main);
La méthode setContentView (équivalente à this.setContentView) définit la présentation XML pour écran actuel. Dans ce qui suit, nous appellerons les layouts XML « layout » et les écrans « Activity ». La présentation dans l'application sera la suivante :

TableLayout est idéal pour cette application. L’identifiant peut être attribué à n’importe quelle ressource. Dans ce cas, TableLayout se voit attribuer id = main_l. En utilisant la méthode findViewById(), vous pouvez accéder à la vue :
mise en page TableLayout privée ; // il s'agit d'une propriété de la classe KrestikinolikiActivity public void onCreate(Bundle savingInstanceState) ( super.onCreate(savedInstanceState); setContentView(R.layout.main); layout = (TableLayout) findViewById(R.id.main_l); buildGameField( ); )

Nous devons maintenant implémenter la méthode buildGameField(). Pour ce faire, vous devez générer un champ sous forme de matrice. Cela sera fait par la classe Game. Vous devez d’abord créer une classe Square pour les cellules et une classe Player dont les objets rempliront ces cellules.

Carré.java

package com.exemple; Place de classe publique (privée Joueur joueur= nul ; public void fill(Player player) ( this.player = player; ) public boolean isFilled() ( if (player != null) ( return true; ) return false; ) public Player getPlayer() ( return player; ) )

Joueur.java

package com.exemple; public class Player (private String name; public Player(String name) ( this.name = name; ) public CharSequence getName() ( return (CharSequence) name; ) )

Toutes les classes de notre application se trouvent dans le dossier src.

Jeu.java

package com.exemple; public class Game ( /** * field */ private Square field; /** * Constructor * */ public Game() ( field = new Square; squareCount = 0; // remplissant le champ pour (int i = 0, l = champ.longueur;i

Initialisation du jeu dans le constructeur KrestikinolikiActivity.
public KrestikinolikiActivity() ( game = new Game(); game.start(); // sera implémenté plus tard)

La méthode buildGameField() de la classe KrestikinolikiActivity. Il ajoute dynamiquement des lignes et des colonnes au tableau (champ de jeu) :
boutons de bouton privés = nouveau bouton ; //(....) private void buildGameField() ( Square field = game.getField(); for (int i = 0, lenI = field.length; i
La ligne 8 crée un objet qui implémente l'interface View.OnClickListener. Créons une classe Listener imbriquée. Il ne sera visible que depuis KrestikinolikiActivity.
public class Listener implémente View.OnClickListener ( private int x = 0; private int y = 0; public Listener(int x, int y) ( this.x = x; this.y = y; ) public void onClick(View view) ( Bouton bouton = vue (Bouton); ) )
Reste à mettre en œuvre la logique du jeu.
public class Game ( /** * joueurs */ joueurs joueurs privés; /** * champ */ champ carré privé; /** * le jeu a-t-il commencé ? */ private boolean démarré ; /** * joueur actuel */ privé Joueur actifPlayer; /** * Compte le nombre de cellules remplies */ private int rempli; /** * Total de cellules */ private int squareCount; /** * Constructeur * */ public Game() ( field = new Square; squareCount = 0; // remplissant le champ pour (int i = 0, l = field.length; i

Détermination du gagnant

K.O. suggère que le gagnant du tic-tac-toe est celui qui aligne X ou O sur une ligne égale à la longueur du terrain verticalement, horizontalement ou en diagonale. La première pensée qui me vient à l’esprit est d’écrire des méthodes pour chaque cas. Je pense que le modèle de chaîne de responsabilité fonctionnerait bien dans ce cas. Définissons l'interface
package com.exemple; interface publique WinnerCheckerInterface ( public Player checkWinner(); )
Puisque le jeu a la responsabilité de déterminer le gagnant, il implémente cette interface. Il est temps de créer des « juges de lignes » virtuels, chacun vérifiant son camp. Tous implémentent l’interface WinnerCheckerInterface.

WinnerCheckerHorizontal.java

package com.exemple; public class WinnerCheckerHorizontal implémente WinnerCheckerInterface (private Game game; public WinnerCheckerHorizontal(Game game) ( this.game = game; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; for (int i = 0, len = champ.longueur ; i

WinnerCheckerVertical.java

package com.exemple; public class WinnerCheckerVertical implémente WinnerCheckerInterface ( jeu privé; public WinnerCheckerVertical (jeu) ( this.game = game; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; for (int i = 0, len = champ.longueur ; i

WinnerCheckerDiagonalLeft.java

package com.exemple; public class WinnerCheckerDiagonalLeft implémente WinnerCheckerInterface ( jeu privé ; public WinnerCheckerDiagonalLeft (jeu) ( this.game = game; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer ; Player lastPlayer = null ; int successCounter = 1 ; pour (int i = 0, len = field.length ; i

WinnerCheckerDiagonalRight.java

package com.exemple; classe publique WinnerCheckerDiagonalRight implémente WinnerCheckerInterface ( jeu privé ; public WinnerCheckerDiagonalRight (jeu) ( this.game = game; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer ; Player lastPlayer = null ; int successCounter = 1 ; pour (int i = 0, len = field.length ; i
Initialisons-les dans le constructeur Game :
//(....) /** * "Juges" =). Après chaque coup, ils vérifieront * pour voir s'il y a un gagnant */privé WinnerCheckerInterface gagnantCheckers ; //(....) public Game() ( //(....) gagnantCheckers = nouveau WinnerCheckerInterface; gagnantCheckers = nouveau WinnerCheckerHorizontal(this); gagnantCheckers = nouveau WinnerCheckerVertical(this); gagnantCheckers = nouveau WinnerCheckerDiagonalLeft(this); gagnantCheckers = new WinnerCheckerDiagonalRight(this); //(....) )
Implémentation de checkWinner() :
public Player checkWinner() ( pour (WinnerCheckerInterface winChecker: gagnantCheckers) ( Joueur gagnant = winChecker.checkWinner(); if (winner != null) ( return gagnant; ) ) return null; )
Nous vérifions le gagnant après chaque coup. Ajoutons du code à la méthode onClick() de la classe Listener
public void onClick(Afficher la vue) ( ​​Bouton bouton = (Bouton) vue ; Jeu g = jeu ; Joueur joueur = g.getCurrentActivePlayer(); if (makeTurn(x, y)) ( bouton.setText(player.getName()) ; ) Joueur gagnant = g.checkWinner(); if (winner != null) ( gameOver(winner); ) if (g.isFieldFilled()) ( // si le champ est rempli gameOver(); ) )
La méthode gameOver() est implémentée en 2 variantes :
private void gameOver (Joueur joueur) ( CharSequence text = "Player \"" + player.getName() + "\" gagné!"; Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset (); rafraîchir(); ) private void gameOver() ( CharSequence text = "Draw"; Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset(); rafraîchir(); )
Pour Java, gameOver(Player player) et gameOver() - différentes méthodes. En utilisant le Builder Toast.makeText, vous pouvez créer et afficher rapidement une notification.fresh() met à jour l'état du champ :
private void rafraîchir() ( Square field = game.getField(); for (int i = 0, len = field.length; i

Prêt! J'espère que cet article vous a aidé à vous familiariser avec le monde du développement Android. Merci de votre attention!

Vidéo de la candidature terminée