Semesterprojekt3019210/WortSpiel.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));
}
}