Programovanie hier pre začiatočníkov – ako naprogramovať hru v Java: Hádaj číslo

Rozmýšľal si niekedy, že by si sa chcel naučiť programovací jazyk Java, ale nechce sa ti študovať siahodlhé tutoriály? Nebolo by super, keby si si naprogramoval hru – svoju vlastnú aplikáciu a zároveň sa pomaly, nenásilne začal učiť základy programovania? Programovanie hier pre začiatočníkov môže spočiatku pôsobiť ako zložitá záležitosť, najmä ak s ním práve začínaš. V tomto článku si ale ukážeme, že vytvorenie prvej aplikácie nemusí byť vôbec komplikované, dokonca sľubujeme, že to bude zábavné. Zistíš, ako si naprogramovať hru na hádanie čísel v jazyku Java a uvidíš, že to zvládneš aj ty!

Java hra Hádaj číslo, na ktoré myslím

Prečo začať práve s hrou na hádanie čísla? Táto Java hra je ideálnym cvičením pre začiatočníkov z niekoľkých dôvodov. Jednoduché hry môžu byť skvelým vstupom do sveta kódovania, pretože v jednoduchosti je krása. Hra je založená na jednoduchom koncepte – hráč má uhádnuť náhodne vygenerované číslo v danom rozsahu. Nie sú potrebné žiadne zložité algoritmy ani pokročilé techniky.

Precvičíme si kombináciu základných princípov interakcie s používateľom aplikácie, ako si vypýtať vstup od používateľa a spracovať jeho odpovede.

Naučíš sa tu pracovať s:

  • s dátovými typmi – čísla, texty, premenné,
  • podmienkami (kontrola, či je odpoveď správna),
  • cyklami (opakované pokusy používateľa),
  • generovaním náhodných čísel (čo dodáva hre dynamiku a náhodnosť).

Táto zaujímavá Java hra ti umožní pochopiť, ako sa jednotlivé časti programu spájajú do jedného celku. Vyskúšaj si naprogramovať túto hru – nielenže sa zabavíš, ale zároveň sa veľa naučíš. Programovanie pre začiatočníkov nie je o tom hneď vytvárať veľké aplikácie, ale najmä o radosti z riešenia malých problémov. A táto hra je skvelým začiatkom!

Pravidlá hry Hádaj číslo

Hra ti poskytne niekoľko pokusov, počas ktorých budeš hádať číslo, ktoré počítač náhodne vygeneroval. Po každom tvojom odhade ti hra povie, či si sa trafil, alebo či máš skúsiť menšie či väčšie číslo. Ak uhádneš, program ťa pochváli. Ak nie, oznámi ti správne číslo po uplynutí všetkých pokusov.

Si pripravený ponoriť sa do sveta Java a vytvoriť si vlastnú hru?

Implementácia Java hry Hádaj číslo

Tento program je jednoduchá hra na hádanie čísla v jazyku Java. Hráč má za úlohu uhádnuť náhodne vygenerované číslo z určitého rozsahu v obmedzenom počte pokusov.

Trieda NumberGuessing

package games;

import java.util.Scanner;

public class NumberGuessing {
    private int min, max, attempts, guess;
    private final String
            text1A = "Hadaj cislo medzi ",
            text1B = " a ",
            text2A = "Mas ",
            text2B = " pokusov.",
            text3 = "Hadaj cislo:",
            text4 = "Cislo je vacsie ako ",
            text5 = "Cislo je mensie ako ",
            text6 = "Smola, neuhadol si. Cislo bolo ",
            text7 = "Vyborne! Uhadol si cislo.";

    public void createGame(int min, int max, int attempts) {
        this.min = min;
        this.max = max;
        this.attempts = attempts;
    }

    public void play()
    {
        Scanner sc = new Scanner(System.in);
        // Generate random number to guess between <min, max>.
        int number = min + (int)((max + 1) * Math.random());
        System.out.println(text1A + min + text1B + max + ". " + text2A + attempts + text2B);
        for (int i = 1; i <= attempts; i++) {
            System.out.println(text3);
            // Get the guess from the player.
            guess = sc.nextInt();
            // If the number is guessed correctly.
            if (number == guess) {
                System.out.println(text7);
                return;
            }
            // If the guess is smaller than real number.
            else if (number > guess && i != attempts) {
                System.out.println(text4 + guess);
            }
            // If the guess is bigger than real number.
            else if (number < guess && i != attempts) {
                System.out.println(text5 + guess);
            }
        }
        // Player lost. Reveal the right answer.
        System.out.println(text6 + number);
    }
}

Obsahuje premenné pre minimálnu (min) a maximálnu (max) hodnotu hádaného čísla, počet pokusov (attempts) a aktuálny odhad hráča (guess).

Textové konštanty (text1A až text7) obsahujú správy, ktoré sú vypisované počas hry, aby informovali hráča o stave hádania.

Metóda createGame()

Umožňuje nastaviť parametre hry: minimálne a maximálne číslo a počet pokusov, ktoré hráč má.

Metóda play()

Táto metóda spúšťa samotnú hru:
Vygeneruje náhodné číslo medzi hodnotami min a max.
Informuje hráča o rozsahu čísel a počte dostupných pokusov.
Hráč zadá odhad a program kontroluje, či je tento odhad správny.
Ak je odhad nižší alebo vyšší než vygenerované číslo, program o tom informuje hráča a umožní ďalší pokus.
Ak hráč uhádne správne číslo, hra končí s úspešným výsledkom.
Ak hráč neuhádne ani po poslednom pokuse, program oznámi správne číslo.

Trieda Main

import games.NumberGuessing;

public class Main {
    public static void main(String[] args) {
        NumberGuessing game = new NumberGuessing();
        game.createGame(1, 100, 5);
        game.play();
    }
}

Spúšťa hru vytvorením objektu NumberGuessing a volá metódy createGame()play().
Hra sa nastaví s číslami od 1 do 100 a hráč má 5 pokusov na uhádnutie čísla.

Proces Java hry:
Program vypíše rozsah čísiel a informuje hráča o počte pokusov.
Hráč zadá svoje odhady a program mu poskytuje spätnú väzbu, či má hádať vyššie alebo nižšie.
Ak uhádne správne, hra skončí úspechom, inak hráč prehrá a program vypíše správne číslo.
Program funguje ako jednoduchá hra na tréning odhadu a logického myslenia.

Výstup hry môže vyzerať nasledovne:

Programovanie hier pre začiatočníkov – ako naprogramovať hru v Java: Hádaj číslo

Tu si môžeš stiahnuť zdrojové kódy naprogramovanej Java hry NumberGuessingGame.

V tomto článku sme si ukázali programovanie hier pre začiatočníkov v Java. Veríme, že ako naprogramovať hru Java nebolo také zložité, ako si možno očakával a že budeš mať chuť sa naďalej v programovaní zdokonaľovať.

Ak si Java programátor a hľadáš prácu, pozri si naše benefity pre zamestnancov a reaguj na najnovšie ponuky práce.

O autorovi

Jozef Wagner

Java Developer Senior

Viac ako 10 rokov programujem v Jave, momentálne pracujem v msg life Slovakia ako Java programátor senior a pomáham zákazníkom implementovať ich požiadavky do poistného softvéru Life Factory. Vo voľnom čase si rád oddýchnem v lese, prípadne si zahrám nejakú dobrú počítačovú hru.

Daj nám o sebe vedieť