108 lines
3.2 KiB
Java
108 lines
3.2 KiB
Java
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));
|
|
}
|
|
}
|