
Co budeme potřebovat?
- IDE (NetBeans, Eclipse…)
- Java JDK
- Příkazový řádek Ubuntu (Linux nebo macOS, windows nepodporuje barvy)
V tomto tutoriálu budu pracovat s Apache NetBeans 9.0(ke stažení zde, windows uživatelé stáhnou binaries, mac os stáhne macOSX bundle) a Java JRE 8u181 určenou na windows 10 64-bit.
Nejdříve si vytvořte nový projekt (v NetBeans ctrl+shift+N neboli file > new project) Java application který si uložíme na disk.

Poté se nám vytvoří předdefinovaný soubor pojmenovaný Hádej-číslo:

Nyní přidáme dva důležité importy:
import java.util.Scanner;
import java.util.concurrent.ThreadLocalRandom;
Poté si přidáme naše proměnné, nejdříve na generování samotného čísla:
static Integer randomNum = ThreadLocalRandom.current().nextInt(1, 100 + 1);
a poté i na barvy textu:
//barvy
public static final String ANSI_RESET = "\u001B[0m";
public static final String ANSI_BLACK = "\u001B[30m";
public static final String ANSI_RED = "\u001B[31m";
public static final String ANSI_GREEN = "\u001B[32m";
public static final String ANSI_YELLOW = "\u001B[33m";
public static final String ANSI_BLUE = "\u001B[34m";
public static final String ANSI_PURPLE = "\u001B[35m";
public static final String ANSI_CYAN = "\u001B[36m";
public static final String ANSI_WHITE = "\u001B[37m";
A naše „hra“ bude vypadat nějak takto:

Teď si vytvoříme funkci na získání vstupu uživatele:
public static String ask(String input){
echo(input);
String readed = null;
Scanner reader = new Scanner(System.in); // získání vstupu
if(reader.hasNext()){
readed = reader.nextLine();
} else {
echo("chyba");
}
if(readed != null){
return readed;
} else {
return null;
}
}
a funkci na vypsání textu:
public static void echo(String input){
System.out.println(input);
}
Tím by jsme měli základní funkce. Nyní si vytvoříme samotnou funkci na porovnání:
public static String checkNum(Integer number){
if(number > randomNum){
return "bigger";
}
if(number < randomNum){
return "smaller";
}
if(number == randomNum){
return "equal";
}
return "error";
}
Teď již máme všechny potřebné funkce naprogramovány. teď již pouze napsat poslední část kódu a budeme mít hotovo:
public static void tryFind(){
String returned = checkNum(Integer.parseInt(ask(ANSI_CYAN+"Hádej číslo"+ANSI_RESET+ANSI_BLUE)));
switch(returned){
case "bigger":
echo(ANSI_RESET+ANSI_RED+"Tvoje číslo je moc velké!"+ANSI_RESET);
tryFind();
break;
case "smaller":
echo(ANSI_RESET+ANSI_RED+"Tvoje číslo je moc malé!"+ANSI_RESET);
tryFind();
break;
case "equal":
echo(ANSI_RESET+ANSI_GREEN+"Uhodl jsi!"+ANSI_RESET);
break;
}
}
Tím by jsme měli kód kompletně hotový. Měl by vypadat nějak takto:
package hádej.číslo;
import java.util.Scanner;
import java.util.concurrent.ThreadLocalRandom;
/* @author TheTutorials */
public class HádejČíslo {
static Integer randomNum = ThreadLocalRandom.current().nextInt(1, 100 + 1);
static boolean debug = false;
//barvy
public static final String ANSI_RESET = "\u001B[0m";
public static final String ANSI_BLACK = "\u001B[30m";
public static final String ANSI_RED = "\u001B[31m";
public static final String ANSI_GREEN = "\u001B[32m";
public static final String ANSI_YELLOW = "\u001B[33m";
public static final String ANSI_BLUE = "\u001B[34m";
public static final String ANSI_PURPLE = "\u001B[35m";
public static final String ANSI_CYAN = "\u001B[36m";
public static final String ANSI_WHITE = "\u001B[37m";
public static void main(String[] args) {
tryFind();
}
public static void tryFind(){
String returned = checkNum(Integer.parseInt(ask(ANSI_CYAN+"Hádej číslo"+ANSI_RESET+ANSI_BLUE)));
switch(returned){
case "bigger":
echo(ANSI_RESET+ANSI_RED+"Tvoje číslo je moc velké!"+ANSI_RESET);
tryFind();
break;
case "smaller":
echo(ANSI_RESET+ANSI_RED+"Tvoje číslo je moc malé!"+ANSI_RESET);
tryFind();
break;
case "equal":
echo(ANSI_RESET+ANSI_GREEN+"Uhodl jsi!"+ANSI_RESET);
break;
}
}
public static String checkNum(Integer number){
if(number > randomNum){
return "bigger";
}
if(number < randomNum){
return "smaller";
}
if(number == randomNum){
return "equal";
}
return "error";
}
public static String ask(String input){
echo(input);
String readed = null;
Scanner reader = new Scanner(System.in); // Reading from System.in
if(reader.hasNext()){
readed = reader.nextLine();
} else {
echo("error");
}
if(readed != null){
return readed;
} else {
return null;
}
}
public static void echo(String input){
System.out.println(input);
}
}
Hurá! Máme vlastní hru! Zkusme si ji zahrát…
