chore: Some minor changes
This commit is contained in:
parent
143c4761f5
commit
47e3a1dec5
25
README.md
Normal file
25
README.md
Normal file
@ -0,0 +1,25 @@
|
||||
# Chronos
|
||||
|
||||
Jednoduchá multiplayer hra napsaná v Javě.
|
||||
|
||||
## Backend
|
||||
|
||||
Backend je napsaný v Javě pomocí Spring. Jedná se o jednoduchý HTTP server.
|
||||
|
||||
**Ano jsem debil, využít relační databázi nebyl rozhodě dobrý nápad. Došlo mi to uprostřed programování a už se mi nechtělo vracet zpět.**
|
||||
|
||||
### Enviromental variables
|
||||
|
||||
Nějaké env variables se musí nastavit pro připojení k databázi:
|
||||
|
||||
- `DATASOURCE_URL`: Jdbc url pro databázi. Např. `jdbc:mysql://localhost:3306/chronos`
|
||||
- `DB_USERNAME`: Uživatelské jméno k přístupu k databázi. Např. `root`
|
||||
- `DB_PASSWORD`: Heslo k přístupu k databázi. Např. `root`
|
||||
|
||||
## Frontend
|
||||
|
||||
Frontend je napsaný ve Vanilla Javě. Config soubor se automaticky ukládá v následujících lokacích:
|
||||
|
||||
- Unix-like operační systémy: `~/.config/Chronos/config.json`
|
||||
- Windows: `C:\Users\<username>\AppData\Chronos\config.json`
|
||||
- MaxOS: `~/Library/Application Support/Chronos/config.json`
|
@ -4,6 +4,7 @@ import cz.jzitnik.game.Chronos;
|
||||
import cz.jzitnik.utils.Cli;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
public class Main {
|
||||
public static void main(String[] args) throws IOException {
|
||||
@ -27,16 +28,16 @@ public class Main {
|
||||
System.out.println();
|
||||
|
||||
String[] options = {"Vytvořit novou hru", "Připojit se do již existující hry"};
|
||||
var option = Cli.selectOption(options);
|
||||
var option = Cli.selectOptionIndex(List.of(options));
|
||||
|
||||
switch (option) {
|
||||
case "Vytvořit novou hru":
|
||||
case 0:
|
||||
chronos.createNewGame();
|
||||
chronos.addUser();
|
||||
Cli.success("Byl jste úspěšně zaregistrován jako první hráč!");
|
||||
chronos.adminPanel();
|
||||
break;
|
||||
case "Připojit se do hry":
|
||||
case 1:
|
||||
chronos.connectToExisting();
|
||||
chronos.addUser();
|
||||
Cli.success("Byl jste úspěšně zaregistrován jako hráč!");
|
||||
|
@ -162,25 +162,21 @@ public class Chronos {
|
||||
|
||||
var testGameKeyResponse = apiService.testGameKey(code).execute().body().getData().get();
|
||||
|
||||
if (testGameKeyResponse == TestGameKeyResponse.INVALID_KEY) {
|
||||
switch (testGameKeyResponse) {
|
||||
case INVALID_KEY -> {
|
||||
Cli.error("Nebyla nalezena hra s tímto kódem!");
|
||||
connectToExisting();
|
||||
return;
|
||||
}
|
||||
|
||||
if (testGameKeyResponse == TestGameKeyResponse.GAME_STARTED) {
|
||||
case GAME_STARTED -> {
|
||||
Cli.error("Tato hra již začala!");
|
||||
connectToExisting();
|
||||
return;
|
||||
}
|
||||
|
||||
if (testGameKeyResponse == TestGameKeyResponse.MAXIUM_PLAYERS) {
|
||||
case MAXIUM_PLAYERS -> {
|
||||
Cli.error("V této hře je již maximální počet hráčů!");
|
||||
connectToExisting();
|
||||
return;
|
||||
}
|
||||
|
||||
localData.setGameKey(code);
|
||||
case WORKING -> localData.setGameKey(code);
|
||||
}
|
||||
}
|
||||
|
||||
public void waitForStart() throws IOException {
|
||||
|
@ -147,37 +147,6 @@ public class Cli {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Displays a menu with the provided options and returns the selected option.
|
||||
*
|
||||
* @param options Array of options to display to the user.
|
||||
* @return The selected option as a String.
|
||||
*/
|
||||
public static String selectOption(String[] options) {
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
int choice;
|
||||
|
||||
System.out.println("Vyberte možnost:");
|
||||
for (int i = 0; i < options.length; i++) {
|
||||
System.out.println((i + 1) + ". " + options[i]);
|
||||
}
|
||||
|
||||
while (true) {
|
||||
System.out.print("Vložte číslo možnosti: ");
|
||||
if (scanner.hasNextInt()) {
|
||||
choice = scanner.nextInt();
|
||||
if (choice >= 1 && choice <= options.length) {
|
||||
return options[choice - 1];
|
||||
} else {
|
||||
System.out.println("Neplatní možnost, vyberte číslo mezi 1 a " + options.length);
|
||||
}
|
||||
} else {
|
||||
System.out.println("Neplatný vstup, vložte číslo.");
|
||||
scanner.next();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays a menu with the provided options and returns the selected option.
|
||||
*
|
||||
|
Loading…
x
Reference in New Issue
Block a user