Dateien nach "/" hochladen

main
Tobias Gladhorn 2025-01-09 09:29:00 +01:00
parent 1699c071cc
commit 22808f8a56
5 changed files with 285 additions and 0 deletions

44
Format.java 100644
View File

@ -0,0 +1,44 @@
public class Format {
//>>....---------------<<
public static String padword(String word, int pad) {
String result = ">>"+word;
if (result.length() >= pad-2) {
result += "<<";
}
else {
while(result.length() <= pad-2) {
result += "-";
}
result += "<<";
}
return result;
}
//>>-----------....------------<<
public static String midpadword(String word, int pad) {
String result = word;
if (result.length() >= pad-4) {
result =">>" + result + "<<";
}
else {
while(result.length() <= pad-4) {
result = "-" + result + "-";
}
result =">>" + result + "<<";
}
return result;
}
//##################################################################
public static void pad(int input) {
String result = "#";
while(result.length() < input) {
result += "#";
}
System.out.println(result);
}
}

90
Interface.java 100644
View File

@ -0,0 +1,90 @@
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
public class Interface {
public static void main(String[] arg) throws FileNotFoundException {
menue();
}
public static void menue() throws FileNotFoundException {
welcomescreen();
boolean menue = true;
Scanner scan = new Scanner(System.in);
do {
String input = scan.nextLine();
if (input.equalsIgnoreCase("Starten")) {
Format.pad(141);
WortSpiel.spiel();
menue = false;
}else if(input.equalsIgnoreCase("Regeln")){
regeln();
}else if(input.equalsIgnoreCase("Spieler")) {
Format.pad(141);
WortSpiel.spieleroptionen();
welcomescreen();
}else if(input.equalsIgnoreCase("Ergebnis")) {
Format.pad(141);
WortSpiel.ergebnis();
}else if(input.equalsIgnoreCase("Back")) {
welcomescreen();
}else if(input.equalsIgnoreCase("Stop")) {
menue = false;
}else {
Format.pad(141);
System.out.println(Format.midpadword("Befehl war unzulässig!",140));
Format.pad(141);
welcomescreen();
}
}while(menue);
scan.close();
}
private static void regeln() throws FileNotFoundException {
Format.pad(141);
System.out.println(">->->->->->->->Regeln für das Wortketten-Spiel<-<-<-<-<-<-<-<");
Scanner scan = new Scanner(new File("src/Regeln.txt"));
while(scan.hasNext()) {
System.out.println(Format.padword(scan.nextLine(), 140));
}
Format.pad(141);
scan.close();
}
private static void welcomescreen() {
Format.pad(141);
System.out.println(">->->->Willkommen beim Wörterspiel<-<-<-<");
System.out.println(Format.padword("Starten", 40));
System.out.println(Format.padword("Regeln", 40));
System.out.println(Format.padword("Spieler", 40));
System.out.println(Format.padword("Ergebnis", 40));
System.out.println(Format.padword("Stop", 40));
System.out.println(Format.padword("Back", 40));
System.out.println(">>Bitte geben Sie die gewünschte Aktion an<<");
Format.pad(141);
}
}

17
Regeln.txt 100644
View File

@ -0,0 +1,17 @@
1. Spieleranzahl: Mindestens zwei Spieler.
2. Spielstart: Der erste Spieler nennt ein beliebiges Wort. Beispiel: "Apfel".
3. Spielablauf:
--- Der nächste Spieler muss ein Wort nennen, das mit dem letzten Buchstaben des vorherigen Wortes beginnt.
--- Beispiel: Wenn der erste Spieler "Apfel" sagt, muss der nächste Spieler ein Wort nennen, das mit "L" beginnt, z.B. "Lampe".
--- Die Spieler wechseln sich ab und machen so weiter, bis jemand einen Fehler macht oder kein Wort mehr einfällt.
4. Regeln:
--- Ein Wort darf in einer Runde nur einmal verwendet werden.
--- Wenn ein Spieler länger als 10 Sekunden braucht, um ein passendes Wort zu finden, hat er verloren.
5. Ende des Spiels:
--- Das Spiel endet, wenn ein Spieler kein passendes Wort mehr findet oder gegen eine der Regeln verstößt.
--- Der andere Spieler gewinnt die Runde.
6. Punkte Vergabe:
---Punkte bekommt jeder Spieler in höhe der von ihm gespielten Buchstaben. Wenn er ein Wort mit 5 Buchstaben spielt
---und eins mit 6 dann erhält er 11 Punkte. Der verlierende Spieler erhält 20 Punkte abgezogen.
Viel Spaß beim Spielen und seid kreativ!
Um das Menü anzuzeigen "Back"!

27
Spieler.java 100644
View File

@ -0,0 +1,27 @@
public class Spieler {
private String name = "Spieler";
private int score = 0;
Spieler(String name){
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
System.out.println(Format.midpadword("Name wurde "+name+" geändert!", 140));
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score += score;
}
}

107
WortSpiel.java 100644
View File

@ -0,0 +1,107 @@
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Date;
import java.util.Scanner;
public class WortSpiel {
public static Spieler spieler1 = new Spieler("Spieler1");
public static Spieler spieler2 = new Spieler("Spieler2");
//spieler einstellungen
public static void spieleroptionen() {
Scanner scan = new Scanner(System.in);
ergebnis();
System.out.println(Format.padword("Wollen sie die bisherigen Spieler weiter nutzen?", 140));
System.out.println(Format.padword("Ja/Nein", 140));
String answer = scan.nextLine();
if(answer.equalsIgnoreCase("nein")) {
System.out.println(Format.midpadword("Geben sie bitte den Namen des ersten Spielers ein:",140));
String name = scan.nextLine();
spieler1.setName(name);
System.out.println(Format.midpadword("Geben sie bitte den Namen des zweiten Spielers ein:",140));
name = scan.nextLine();
spieler2.setName(name);
}else {}
}
public static void spiel() throws FileNotFoundException {
//initialisieren der grundlagen
System.out.println(Format.midpadword("Wortkettenspiel", 140));
boolean spielen = true;
char letter = '*';
Scanner scan = new Scanner(System.in);
ArrayList<String> usedwords = new ArrayList<String>();
int j = 2;
Spieler turne = spieler1;
do {
if (j%2==0) {
System.out.println(Format.padword(spieler1.getName()+" wort bitte.", 140));
turne = spieler1;
}else {
System.out.println(Format.padword(spieler2.getName()+" wort bitte.", 140));
turne = spieler2;
}
//zeitmessung
long starttime = new Date().getTime();
String word = scan.nextLine();
// für erstes wort
if (letter == '*') {
letter = word.charAt(word.length() - 1);
turne.setScore(word.length());
System.out.println(Format.padword("Jetzt ein Wort mit: " + letter, 140));
usedwords.add(word);
} else if (word.equals("")) {
continue;
//antwort bei ungültigem wort
} else if(usedwords.contains(word)){
spielen = false;
turne.setScore(-20);
System.out.println(Format.padword("Dieses Wort wurde bereits genutzt!", 140));
//abfrage ob der buchstabe passt
} else if (letter == word.charAt(0)) {
letter = word.charAt(word.length() - 1);
turne.setScore(word.length());
System.out.println(Format.padword("Jetzt ein Wort mit: " + letter, 140));
usedwords.add(word);
} else {
spielen = false;
turne.setScore(-20);
System.out.println(Format.padword("Das Wort war Falsch du hast verloren!", 140));
}
// abfrage antwortzeit und dementsprechende antwort
long endtime = new Date().getTime();
long time = (endtime - starttime)/1000;
if (time >= 10) {
spielen = false;
System.out.println(Format.padword("Du hast verloren, "+time+"s sind zu langsam zum Antworten!", 140));
}
j++;
} while (spielen);
Interface.menue();
}
public static void ergebnis() {
System.out.println(Format.padword((spieler1.getName()+" hat insgesamt: "+ spieler1.getScore()+" Punkte."),140));
System.out.println(Format.padword((spieler2.getName()+" hat insgesamt: "+ spieler2.getScore()+" Punkte."),140));
}
}