Základy programování pro Android na příkladu hry Sudoku. Vývoj aplikace pro Android. Jak vytvořit vlastní aplikaci pro Android
Věk OS Android se blíží k desátému výročí. Přestože od prvního vydání tohoto operačního systému uplynulo tolik času, neznamená to, že vlak odjel, a na vývoj aplikací pro Android je příliš pozdě. Ve skutečnosti je nyní čas se učit: nikdy neexistovalo tolik efektivních způsobů, jak vytvářet úžasné aplikace pro Android.
A všechny nové Chromebooky nyní a navždy získaly podporu pro aplikace pro Android: lze je stáhnout, nainstalovat a spustit jako v jejich nativním prostředí. Trh se softwarem pro Android pouze roste. Neměli byste si myslet, že čas uplynul - není příliš pozdě začít. Vše, co potřebujete k zahájení: připravte se, zhluboka se nadechněte, vyberte správný programovací jazyk - a vydejte se na cestu.
Ale který programovací jazyk je pro vás nejlepší? Výběr správného vývojového nástroje je první úkol, který nikdo nemůže udělat lépe než vy. Hodně závisí na zkušenostech s programováním (nebo na nedostatku zkušeností v konkrétních vývojových prostředích), na osobním pohodlí při používání konkrétního jazyka. Naštěstí je výběr slušný. Tento článek pojednává o výběru nejlepších programovacích jazyků pro Android.
Pokud jde o aplikace pro Android, Java nemůže být špatným jazykem. Kromě toho, že jde o oficiální programovací jazyk tohoto OS, je to také druhý nejčastější zdroj GitHub a je tak populární již více než 20 let. To znamená, že v Javě existuje mnoho návodů a návodů a v blízké budoucnosti byste si neměli dělat starosti se zastaráváním tohoto jazyka.
Protože se jazyk Java rozšířil do desítek programátorských odvětví, doporučujeme vám, abyste se jej začali učit s knihami o Javě v kontextu ekosystému Android. Java je samozřejmě stejná ve všech prostředích, ale oddělená paradigmata a výrazy pomohou zkoumající mysli rychle pochopit podstatu vývoje aplikací pro Android. Přesně tento úkol si většina knih na toto téma stanovila.
Stojí za zmínku, že kvůli svému úctyhodnému věku postrádá Java některé vlastnosti, které se vyskytují v mladších jazycích. Pro začátečníky to není tak důležité, ale pro zkušenější programátory přecházející na jazyk řekněme ze Swiftu může být Java zpočátku klaustrofobní.
Programovací jazyk Kotlin byl vytvořen speciálně pro běh na virtuálních strojích Java. To znamená, že aplikace Kotlin jsou kompilovány do kódu Java, který jim umožňuje běžet na jakémkoli počítači s podporou Java. A protože většina strojů má podporu Javy, je použití Kotlin relativně snadný způsob vývoje softwaru napříč platformami.
Používat Kotlin znamená aplikovat všechny nejlepší aspekty Javy v softwarovém produktu bez jeho nevýhod. Syntaxe a další funkce programování Kotlin jsou moderní, srozumitelné a rychlé. Toto je opravdu šikovné vývojové prostředí. Tam, kde se zdá Java těžkopádná, trapná a zastaralá, vypadá Kotlin pohodlně, svěže a dokonce hezky. Do určité míry můžeme předpokládat, že Kotlin byl speciálně vytvořen pro vývoj aplikací pro Android.
Ale na druhou stranu? Kotlin je velmi mladý jazyk. Jeho první verze byly vydány v roce 2011 a oficiální vydání proběhlo až v roce 2016. Je tu dobrá zpráva: Kotlin je bezplatný a open source. Dá se očekávat, že se bude vyvíjet skokově. Ale v každém případě bude trvat několik let, než se tento jazyk prokáže jako skutečně spolehlivá volba.
C # je neuvěřitelný programovací jazyk! Z Javy si vzal všechno nejlepší a zanechal po sobě nejhorší vlastnosti tohoto jazyka. A vyvíjel se stejným správným směrem. Zdá se, že Microsoft kdysi viděl potenciál Javy a rozhodl se vyvinout vlastní, lepší verzi.
Vážnou nevýhodou používání C # bylo dlouhou dobu to, že fungoval pouze na systémech Windows: je založen na .NET Framework. Ale v roce 2014 se to změnilo: Microsoft otevřel zdroj .NET Framework. Kromě toho v roce 2016 společnost získala Xamarin, vývojáře Mono (projekt, který umožňuje spouštění programů C # na různých platformách).
V důsledku těchto slavných počinů můžete nyní pomocí rámců Xamarin.Android a Xamarin.iOS vytvářet mobilní aplikace v sadě Visual Studio nebo Xamarin Studio. Je to skvělý způsob, jak začít s vývojem, protože funkce jazyka můžete v budoucnu využívat i v jiných oblastech - například při vytváření komplexních her pomocí Unity a C #. Vizuální příklady aplikací vytvořených pomocí Xamarinu? MarketWatch - nic víc, nic míň.
Nakonec si všimněte, že Xamarin donedávna vyžadoval poplatek. Microsoft však toto prostředí uvolnil!
Přestože Android nemá nativní podporu Pythonu, existují nástroje pro psaní aplikací v Pythonu a jejich následné převádění na nativní aplikace APK pro Android. Skvělý příklad vitality Pythonu jako skutečně efektivního jazyka. Milovníci Pythonu, kteří si chtějí vyzkoušet vývoj aplikací pro Android, tuto příležitost rozhodně ocení - aniž by se ponořili do džungle Javy.
Mezi nejoblíbenější řešení pro převod kódu Pythonu na APK patří projekt Kivy. Nejde ani o jeho povahu open source, a nejen podporu pro Windows, Mac, Linux a iOS kromě Androidu. Kivy je navržen tak, aby skutečně urychlil vývoj aplikací. Každopádně jej můžete použít jako prototypovací nástroj. Kolik toho lze udělat s několika řádky kódu!
Při absenci nativní podpory pro Python však nebude možné využít nativního prostředí Android. Aplikace napsané pomocí Kivy mají tendenci se kompilovat do větších APK, pomalého spouštění a obecně pod průměrný výkon. Každé nově vydané vydání je však skutečně lepší než to předchozí a dnešní mobilní zařízení jsou tak výkonná, že na suboptimálním výkonu aplikací tolik nezáleží. Nechť tento faktor není překážkou.
Několik ukázkových aplikací pro Android napsaných v Kivy: Kognitivo a Barly.
HTML5 + CSS + JavaScript
Tyto tři jazyky, které byly kdysi vytvořeny pro vývoj front-endových aplikací na webu, se od té doby rozrostly v něco víc. Nyní nástroje HTML5, CSS a JavaScript stačí k vytvoření široké škály aplikací pro mobilní zařízení i klasická PC. Programátor v zásadě vytváří webovou aplikaci, která dokáže využít veškerou sílu a kouzlo offline platforem.
K vytváření aplikací pro Android tímto způsobem můžete využít sílu Adobe Cordova, open source framework, který podporuje také iOS, Windows 10 Mobile, Blackberry, Firefox a mnoho dalších. Jakkoli je Cordova užitečná, vytvoření nějaké slušné aplikace v ní vyžaduje hodně práce. Mnoho programátorů proto upřednostňuje projekt Ionic Framework (který používá Cordovu k nasazení na více platforem).
Ukázka aplikací pro Android napsaných v HTML5, JavaScript a CSS: Untappd a TripCase.
Existuje další možnost: použití knihovny React Native. Lze jej nasadit na Android, iOS a Universal Windows Platform. Tuto knihovnu používají odborníci z Facebooku, Instagramu a dalších velkých společností, takže se můžete spolehnout na její spolehlivost. Trénink není jednoduchý, ale když dojde na konec, budete mít veškerou sílu, flexibilitu a pohodlí, které byste si mohli přát.
Lua je starý skriptovací jazyk, který byl původně vytvořen jako doplněk pro programy napsané ve složitějších jazycích: C, VB.NET atd. V tomto jazyce existují některé funkce, díky nimž Lua vyčnívá z řady podobných - například začátek polí s 1 místo 0 nebo absence nativních tříd.
Pro určité úkoly lze tedy Lua použít jako hlavní programovací jazyk. Nejlepším příkladem je sada Corona SDK. S Coronou můžete vytvářet výkonné aplikace bohaté na funkce, které lze nasadit na Windows, Mac, Android, iOS a dokonce i Apple TV + Android TV. Corona má také vestavěné možnosti monetizace a navíc je to slušný trh z hlediska objemu, kde najdete užitečné doplňky.
Nejčastěji se Corona používá k vytváření her (mezi příklady - Fun Run 2 a HoPiko), existují však ukázky nástrojů a obchodních aplikací (My Days a Quebec Tourism).
C / C ++
Pro vytváření aplikací pro Android Google oficiálně poskytuje dvě vývojová prostředí:
SDK (používá Javu);
a NDK (používá nativní jazyky jako C a C ++).
Všimněte si toho, že nebudete moci používat C, C ++ a „holou“ Javu k vytvoření celé aplikace. Místo toho vám NDK umožňuje vytvářet knihovny, k jejichž funkcím lze přistupovat pomocí částí kódu Java z aplikace.
Obecně není nutné používat NDK. Toto prostředí by nemělo být používáno jako hlavní, už jen proto, že budete muset více kódovat v C / C ++, a ne v Javě. Existence NDK je u těchto úkolů oprávněná, když potřebujete při provádění složitých výpočetních úkolů vyždímat co nejvíce výkonu. NDK také umožňuje vložit do vaší aplikace knihovny C a C ++.
Ale v ostatních případech stojí za to držet se Javy, kdykoli je to možné. Vývoj aplikací pro Android v C / C ++ je mnohokrát obtížnější než v Javě. A častěji než ne, je nárůst výkonu příliš malý.
Jaké aplikace byste chtěli dělat?
Poslové, hry, kalkulačky, notebooky, hráči. Možnosti jsou nekonečné! V mnoha ohledech jsou neomezené díky výše uvedeným programovacím jazykům a rámcům. Není nutné je studovat všechny za sebou - pouze ty, které budou užitečné při řešení vašeho problému. Pokud v budoucnu potřebujete rozšířit své vlastní znalosti, můžete se sebevzdělávat, až přijde čas.
Na závěr doporučujeme přečíst si blogy věnované vývoji mobilních aplikací. Umožní vám určit ingredience potřebné k přípravě úspěšné mobilní aplikace a pomůže překonat mnoho obtíží, které se nevyhnutelně vyskytují na cestě všech programátorů.
Rozhodli jste se tedy stát vývojářem mobilních aplikací pro operační systém Android. Je to skvělé řešení, ale bez určitých znalostí to nepůjde. Přinejmenším se musíte naučit programovat. Existuje několik programovacích jazyků a budete si muset vybrat, kterým začnete. Je mezi nimi rozdíl a přijít na to nemusí být úplně jednoduché.
Zde jsou programovací jazyky, které by budoucí vývojář systému Android mohl zvážit:
Java je oficiální vývojový jazyk pro Android a je podporován IDE společnosti Google. Naučit se to může být složité.
Kotlin - Tento jazyk byl představen jako druhý oficiálně podporovaný jazyk. Je v mnoha ohledech podobný Javě, ale je snazší začít s ním.
C / C ++ - Android Studio podporuje C ++. Tento jazyk je ještě složitější, ale aktivně se používá při vývoji her.
C # - Tento jazyk by se mohl líbit začátečníkům. Je podporován Unity a Xamarin. Poskytují výhody při vývoji her a produktů pro různé platformy.
ZÁKLADNÍ - Tento jazyk podporuje B4A IDE, což je jednoduchý, ale účinný nástroj.
Corona / LUA - Prostředí LUA je dobré pro vývoj produktů napříč platformami. Značně zjednodušuje vytváření aplikací a poskytuje přístup k nativním knihovnám.
PhoneGap (HTML, CSS, JavaScript) - Tato možnost je vhodná pro ty, kteří vědí, jak vytvářet interaktivní webové stránky. S PhoneGap můžete podobným způsobem vytvářet aplikace napříč platformami.
Nyní se na tyto možnosti podíváme podrobněji.
Jáva
Programovací jazyk Java je první jazyk, který vás napadne při vývoji Androidu. Java byla vydána společností Sun Microsystems v roce 1995. Používá se pro mnoho různých typů aplikací. Pokud jde o aplikace pro Android, Java je nejlepší volbou pro ty, kteří se chtějí dostat do vývoje Androidu přímo. Pro začátečníka to však není nejlepší jazyk. Určitě budete čelit obtížím. Pokud jste začátečník, chcete vytvořit hru nebo se chcete začít učit, ale ještě jste se nerozhodli, jakého výsledku chcete dosáhnout, možná byste měli začít s něčím jednodušším.
Kotlin
Kotlin, stejně jako Java, je vhodný pro vývoj aplikací pro Android. Rozdíl je v tom, že Kotlin je pro začátečníky snazší, ale stále není snazší než mnoho dalších možností. Zaslouží si pozornost, protože jazyk je mladý a můžete s ním pracovat v Android Studio, což je velké plus.
C / C ++
Není to nejlepší volba pro jednoduché aplikace. S jazykem v Android Studiu můžete pracovat pomocí Android NDK, ale na rozdíl od Javy a Kotlinu neběží na Java Virtual Machine. Na zařízení však funguje nativně, což vám může poskytnout více možností pro práci s pamětí. Můžete s ním získat lepší výkon pro 3D hry. Pokud je to vaše volba, připravte se na potíže. Možná vám bude lépe k vytváření her používat běžný herní engine.
C #
C # je jednodušší verze C a C ++ vyvinutá společností Microsoft. S tímto jazykem si nemusíte dělat starosti s pamětí, jako je tomu u Javy. C # je však modernější a čistší než Java. C # a Unity se ukáží jako velmi užitečné a snadno vyvíjitelné hry. Pro vývoj aplikací není prostředí Unity tak dobré. C # je skvělá volba, ale pokud se chcete stát profesionálním vývojářem systému Android, omezí vaše možnosti.
ZÁKLADNÍ
Tento jazyk je nejlepší volbou pro začátečníky. Budete jej moci používat ve vývojovém prostředí B4A. Tato kombinace není příliš vhodná pro vytváření her, ale je ideální pro učení, jak se rozvíjet. Budete se moci naučit spoustu nových věcí bez přílišného úsilí a vytvářet dobré aplikace. Za všechny tyto radosti se ale bude muset zaplatit penězi. Naučíte se něco nového, ale nestanete se profesionálem, umíte jen programovat v ZÁKLADĚ.
Corona
Corona ve spojení s LUA vám umožní vývoj nejen pro Android a je to mnohem snazší, než se začít učit Javu. Bude se vám to líbit a výsledek potěší, ale abyste mohli rozvíjet své dovednosti, budete se muset naučit něco jiného. Stejně jako v případě BASIC se nemůžete stát profesionálem.
PhoneGap
Poslední možnost je vhodná pro ty, kteří jsou dobří ve vývoji webových aplikací a mohou vytvářet interaktivní webové stránky pomocí HTML, CSS a JavaScript. PhoneGap vám umožní vytvořit aplikaci se stejnými nástroji. Tato možnost má velmi málo společného s vývojem systému Android, ale je v pořádku, pokud máte konkrétní cíle a neplánujete vývoj pro Android v budoucnu.
Možností je mnoho. Jsme si jisti, že si budete moci vybrat správně.
Na základě materiálů od Android Authority
Pokuta. Ale kde začít? Jaký jazyk se naučit? Jaké jsou zdroje? A kde uplatnit získané základní dovednosti? Náš článek vám pomůže získat odpovědi na tyto otázky.
Každý jazyk a rámec má své vlastní složitosti a nuance, výhody a nevýhody. Podívejme se na hlavní jazyky pro psaní aplikací pro Android.
Jáva
Oficiální programovací jazyk podporovaný vývojovým prostředím Android Studio. Podle každoročního průzkumu zdroje Stackoverflow v roce 2018 vstoupila Java mezi pět nejpopulárnějších programovacích jazyků.
Prvním krokem ke zvládnutí Javy je instalace Android Studio. Jedná se o typ softwaru s názvem IDE - Integrované vývojové prostředí nebo vestavěné vývojové prostředí. Součástí Android Studio je Android SDK - sada nástrojů pro vývoj pro Android a vše, co potřebujete ke spolehlivému začátku.
Většina oficiální dokumentace Google odkazuje na Javu a je snadné najít bezplatné a placené knihovny a návody - existuje jich mnoho.
Hlavní důvody používání PhoneGap pro vývoj aplikací při živém psaní byly:
snížení času a nákladů na vývoj aplikace pro několik platforem najednou (aplikace pro získání předplatného sportovních zařízení města);
možnost používat stávající web klienta a jeho fragmenty (aplikace pro platby za služby a online nákupy).
Závěr
Obecně platí, že aplikace pro Android lze vytvářet téměř v jakémkoli populárním jazyce - pro všechno existují rámce a nástroje. Pokud se však chcete stát profesionálním vývojářem Androidu, využívat všechny možnosti operačního systému a mít přístup k nejnovějším funkcím Androidu, pak se Java nebo Kotlin stanou vašimi věrnými společníky. I když vám tyto jazyky nejsou známé a zdají se komplikované, stojí za to se s nimi učit, abyste mohli psát rozmanité, krásné a funkční aplikace pro operační systém Android.
A s teoretickou stránkou vývoje Androidu se musíte začít seznamovat z našeho článku, ve kterém jsme posbírali.
V každém podnikání je nejtěžší začátek. Často je obtížné dostat se do kontextu, kterému jsem čelil při rozhodování o vývoji své první aplikace pro Android. Tento článek je pro ty, kteří chtějí začít, ale neví, kde.
Článek se bude zabývat celým vývojovým cyklem aplikace. Společně napíšeme jednoduchou hru Tic-Tac-Toe s jednou obrazovkou (v OS Android se tomu říká Activity).
Nedostatek zkušeností s vývojem Javy by neměl být překážkou zvládnutí Androidu. Příklady tedy nebudou používat konstrukce specifické pro Javu (nebo budou co nejvíce minimalizovány). Pokud píšete například v PHP a znáte základní principy vývoje softwaru, bude vám tento článek nejužitečnější. Na druhé straně, protože nejsem odborník na vývoj Javy, lze předpokládat, že zdrojový kód netvrdí, že je označen jako „osvědčené postupy při vývoji Javy“.
Instalace potřebných programů a nástrojů
Uvedu seznam potřebných nástrojů. Jsou 3 z nich:
IDE s podporou vývoje pro Android: Plugin Eclipse + ADT;
IntelliJ IDEA Community Edition;
Netbeans + nbandroid plugin;
Obslužné programy se instalují v pořadí uvedeném výše. Nemá smysl instalovat všechna uvedená IDE (pokud nemáte potíže s výběrem toho správného). Používám IntelliJ IDEA Community Edition, jedno z dosud nejpokročilejších IDE pro Javu.
Spuštění virtuálního zařízení
Seznam zařízení
Po spuštění AVD Manager a instalaci dalších balíčků (SDK různých verzí) můžete začít vytvářet virtuální zařízení s požadovanými parametry. Rozumět rozhraní by nemělo být obtížné.
Vytvoření projektu
Vždy se chci pustit do práce a minimalizovat přípravné činnosti, mezi které patří vytvoření projektu v IDE, zvláště když je projekt vzdělávací a nevztahuje se na produkci.
Takže Soubor-> Nový projekt:
Stisknutím tlačítka F6 bude projekt sestaven, zkompilován a spuštěn na virtuálním zařízení.
Struktura projektu
Předchozí snímek obrazovky ukazuje strukturu projektu. Protože v tomto článku sledujeme čistě praktické cíle, zaměříme se pouze na ty složky, které v tomto procesu použijeme. Jedná se o následující adresáře:
Ve složce gen existují soubory, které jsou generovány automaticky při vytváření projektu. Nelze je změnit ručně.
Složka res je určena pro ukládání zdrojů, jako jsou obrázky, texty (včetně překladů), výchozí hodnoty, rozložení.
src- to je složka, ve které bude probíhat hlavní část práce, protože jsou zde uloženy soubory se zdrojovými kódy našeho programu.
První řádky
Jakmile se vytvoří aktivita (obrazovka aplikace), zavolá se metoda onCreate (). IDE to vyplnilo 2 řádky:
(saveInstanceState); setContentView
Metoda setContentView (ekvivalent this.setContentView) nastaví rozložení xml pro aktuální obrazovku. Rozložení xml se dále bude nazývat „rozložení“ a obrazovky - „Aktivita“. Rozložení v aplikaci bude následující:
Pro tuto aplikaci je ideální TableLayout. Id lze přiřadit jakémukoli zdroji. V tomto případě je TableLayout přiřazeno id = main_l. Pomocí metody findViewById () můžete přistupovat k zobrazení:
soukromé rozložení TableLayout; // toto je vlastnost třídy KrestikinolikiActivity public void onCreate (Bundle savedInstanceState) (saveInstanceState); setContentView layout = (TableLayout) findViewById buildGameField ( );)
Nyní musíte implementovat metodu buildGameField (). To vyžaduje vygenerování pole ve formě matice. To provede třída Game. Nejprve musíte pro buňky vytvořit třídu Square a třídu Player, jejíž objekty tyto buňky vyplní.
Square.java
Player.java
balíček veřejná třída Square (soukromý Player player = null; public void fill (Player player) (this.player = player;) public boolean isFilled () if if (player! = null) (return true;) return false;) public Player getPlayer () (návratový hráč;))balíček public class Player (private String name; public Player (String name) = name;) public CharSequence getName () (return (CharSequence) name;))
Všechny třídy naší aplikace jsou umístěny ve složce src.
Game.java
balíček hra veřejné třídy ( / ** * pole * / soukromé pole Square; / ** * Constructor * * / public Game () (pole = nové náměstí; squareCount = 0; // vyplnění pole pro (int i = 0, l = délka pole; i
Inicializace hry v konstruktoru KrestikinolikiActivity.
public KrestikinolikiActivity () (hra = new Game (); game.start (); // bude implementováno později)
Metoda buildGameField () třídy KrestikinolikiActivity. Dynamicky přidává do tabulky (hracího pole) řádky a sloupce:
soukromá tlačítka tlačítek = nové tlačítko; // (....) private void buildGameField () (Square square = game.getField (); for (int i = 0, lenI = field.length; i
Řádek 8 vytvoří objekt, který implementuje rozhraní View.OnClickListener. Pojďme vytvořit vnořenou třídu Listener. Bude viditelný pouze z KrestikinolikiActivity.
public class Listener implementuje 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 (Zobrazit zobrazení) (Tlačítko tlačítko = (Tlačítko) zobrazení;))
Zbývá implementovat logiku hry.
hra veřejné třídy ( / ** * hráči * / soukromí hráči hráče; / ** * pole * / soukromé pole pole; / ** * začíná hra? * / začal soukromý boolean; / ** * aktuální hráč * / soukromý Player activePlayer; / ** * Počítá počet vyplněných buněk * / soukromý int naplněný; / ** * Celkový počet buněk * / private int squareCount; / ** * Constructor * * / public Game () (pole = nový čtverec; squareCount = 0; // vyplnění pole pro (int i = 0, l = délka pole; i
Určení vítěze
WinnerCheckerHorizontal.java
WinnerCheckerVertical.java
WinnerCheckerDiagonalLeft.java
WinnerCheckerDiagonalRight.java
KO navrhuje, aby ten, kdo bude řadit X nebo O v řadě rovnající se délce pole svisle, vodorovně nebo diagonálně, vybral mřížky a křížky. První myšlenka, která vás napadne, je napsat metody pro každý případ. Myslím si, že vzor Chain of Responsobility je v tomto případě vhodný. Pojďme definovat rozhraníbalíček veřejné rozhraní WinnerCheckerInterface (public Player checkWinner ();)Protože hra je zodpovědná za určení vítěze, implementuje toto rozhraní. Nyní je načase vytvořit virtuální „čáry“, z nichž si každý vyzkouší svoji stranu. Všichni implementují rozhraní WinnerCheckerInterface.balíček veřejná třída WinnerCheckerHorizontal implementuje WinnerCheckerInterface (soukromá herní hra; veřejná WinnerCheckerHorizontal (herní hra) (this.game = hra;) veřejná Kontrola hráčeWinner () (Čtvercové pole = hra.getField (); Hráč proudPlayer; Hráč lastPlayer = null; pro (int i = 0, len = délka pole; ibalíček veřejná třída WinnerCheckerVertical implementuje WinnerCheckerInterface (soukromá herní hra; veřejná WinnerCheckerVertical (herní hra) (this.game = hra;) veřejná Player checkWinner () (čtvercové pole = game.getField (); Player proudPlayer; Player lastPlayer = null; pro (int i = 0, len = délka pole; ibalíček veřejná třída WinnerCheckerDiagonalLeft implementuje WinnerCheckerInterface (soukromá hra; veřejná WinnerCheckerDiagonalLeft (hra) (this.game = game;) public Player checkWinner () (Square square = game.getField (); Player proudPlayer; Player lastPlayer = null; int successCounter = 1; pro (int i = 0, len = délka pole; ibalíček veřejná třída WinnerCheckerDiagonalRight implementuje WinnerCheckerInterface (soukromá herní hra; veřejná WinnerCheckerDiagonalRight (herní hra) (this.game = hra;) veřejná Kontrola hráčeWinner () (Čtvercové pole = hra.getField (); Hráč proudPlayer; Hráč lastPlayer = null; int successCounter = 1; pro (int i = 0, len = délka pole; iPojďme je inicializovat v konstruktoru hry:// (....) / ** * "Soudci" =). Po každém tahu zkontrolují, zda existuje * vítěz * / soukromý WinnerCheckerInterface winnerCheckers; // (....) public Game () (// (....) winnerCheckers = new WinnerCheckerInterface; winnerCheckers = new WinnerCheckerHorizontal (this); winnerCheckers = new WinnerCheckerVertical (this); winnerCheckers = new WinnerCheckerDiagonalLeft (this); winnerCheckers = nový WinnerCheckerDiagonalRight (this); // (....))Implementace CheckWinner ():public Player checkWinner () (pro (WinnerCheckerInterface winChecker: winnerCheckers) (Player winner = (); if (winner! = null) (return winner;)) return null;)Vítěze kontrolujeme po každém tahu. Přidejte kód do metody onClick () třídy Listenerpublic void onClick (Zobrazit zobrazení) (Tlačítko tlačítko = (Tlačítko) zobrazení; Hra g = hra; Hráč hráč = g.getCurrentActivePlayer (); if (makeTurn (x, y)) (button.setText (player.getName ()) ;) Hráč vítěz = (); if (vítěz! = Null) (gameOver (vítěz);) if (g.isFieldFilled ()) (// pokud je pole vyplněno gameOver ();))Metoda gameOver () je implementována ve 2 variantách:private void gameOver (Player player) (CharSequence text = "Player " " + player.getName () +" "won!"; (this, text, Toast.LENGTH_SHORT) .show (); (); refresh ();) private void gameOver () (CharSequence text = "Draw"; (this, text, Toast.LENGTH_SHORT) .show (); (); refresh ();)Pro Javu jsou gameOver (Player player) a gameOver () různé metody. Pomocí od Builderu můžete rychle vytvořit a zobrazit oznámení. Refresh () obnoví stav pole:private void refresh () (Čtvercové pole = game.getField (); for (int i = 0, len = field.length; i
Připraveno! Doufám, že vám tento článek pomohl dostat se do světa vývoje Android OS. Děkuji za pozornost!
Video hotové aplikace