Das Bild hätte man direkt ChatGPT geben können und man hätte die Lösung incl. Erläuterungen.Na, immerhin hat er sich die Mühe gemacht und eine Überschrift verfasst...ging das wenigstens ohne ChatGPT?
// ===== Benutzer.java =====
import java.util.regex.*;
public class Benutzer {
private String benutzername;
private String passwort;
private int highscore;
public Benutzer(String benutzername, String passwort, int highscore) {
this.benutzername = benutzername;
this.passwort = passwort;
this.highscore = highscore;
}
public String getBenutzername() { return benutzername; }
public String getPasswort() { return passwort; }
public int getHighscore() { return highscore; }
public void setHighscore(int highscore) { this.highscore = highscore; }
public static boolean isSicheresPasswort(String pw) {
return pw.length() >= 8 && pw.matches(".*[A-Z].*") && pw.matches(".*[a-z].*") && pw.matches(".*\\d.*");
}
public String toDateizeile() {
return benutzername + ";" + passwort + ";" + highscore;
}
public static Benutzer fromDateizeile(String zeile) {
String[] teile = zeile.split(";");
return new Benutzer(teile[0], teile[1], Integer.parseInt(teile[2]));
}
}
// ===== Benutzerverwaltung.java =====
import java.io.*;
import java.util.*;
public class Benutzerverwaltung {
private List<Benutzer> benutzerListe = new ArrayList<>();
private final String datei = "benutzer.txt";
public Benutzerverwaltung() throws IOException {
ladeBenutzer();
}
public void ladeBenutzer() throws IOException {
File f = new File(datei);
if (!f.exists()) return;
try (BufferedReader br = new BufferedReader(new FileReader(f))) {
String zeile;
while ((zeile = br.readLine()) != null) {
benutzerListe.add(Benutzer.fromDateizeile(zeile));
}
}
}
public void speichereBenutzer() throws IOException {
try (PrintWriter pw = new PrintWriter(new FileWriter(datei))) {
for (Benutzer b : benutzerListe) {
pw.println(b.toDateizeile());
}
}
}
public Benutzer findeOderErstelleBenutzer(Scanner sc) {
System.out.print("Benutzername: ");
String name = sc.nextLine();
Benutzer b = benutzerListe.stream()
.filter(u -> u.getBenutzername().equals(name))
.findFirst()
.orElse(null);
if (b != null) {
System.out.print("Passwort: ");
String pw = sc.nextLine();
if (b.getPasswort().equals(pw)) return b;
else {
System.out.println("Falsches Passwort.");
return null;
}
} else {
System.out.println("Neuer Benutzer. Bitte Passwort erstellen:");
while (true) {
String pw = sc.nextLine();
if (Benutzer.isSicheresPasswort(pw)) {
Benutzer neu = new Benutzer(name, pw, 0);
benutzerListe.add(neu);
return neu;
} else {
System.out.println("Unsicheres Passwort. Bitte erneut eingeben:");
}
}
}
}
public void aktualisiereHighscore(Benutzer b, int neuerScore) {
if (neuerScore > b.getHighscore()) b.setHighscore(neuerScore);
}
}
// ===== Wortverwaltung.java =====
import java.io.*;
import java.util.*;
public class Wortverwaltung {
private List<String> woerter = new ArrayList<>();
public Wortverwaltung(String dateiname) throws IOException {
try (BufferedReader br = new BufferedReader(new FileReader(dateiname))) {
String zeile;
while ((zeile = br.readLine()) != null) {
woerter.add(zeile.trim());
}
}
}
public String zufallsWort() {
Random r = new Random();
return woerter.get(r.nextInt(woerter.size()));
}
}
// ===== Gluecksrad.java =====
import java.util.*;
public class Gluecksrad {
private static final int[] punkte = { 100, 150, 200, 250, 300 };
public static int drehen() {
return punkte[new Random().nextInt(punkte.length)];
}
}
// ===== Spiel.java =====
import java.util.*;
public class Spiel {
private Benutzer benutzer;
private Wortverwaltung wortverwaltung;
private Scanner scanner;
public Spiel(Benutzer benutzer, Wortverwaltung wortverwaltung, Scanner scanner) {
this.benutzer = benutzer;
this.wortverwaltung = wortverwaltung;
this.scanner = scanner;
}
public int starte() {
String wort = wortverwaltung.zufallsWort().toUpperCase();
char[] geraten = new char[wort.length()];
Arrays.fill(geraten, '_');
Set<Character> versuchte = new HashSet<>();
int fehler = 0, punkte = 0;
while (fehler < 5) {
System.out.println("Wort: " + new String(geraten));
System.out.println("Geratene Buchstaben: " + versuchte);
System.out.print("Buchstabe: ");
String eingabe = scanner.nextLine().toUpperCase();
if (eingabe.length() != 1 || !Character.isLetter(eingabe.charAt(0))) continue;
char buchstabe = eingabe.charAt(0);
if (versuchte.contains(buchstabe)) continue;
versuchte.add(buchstabe);
int raddreh = Gluecksrad.drehen();
boolean gefunden = false;
for (int i = 0; i < wort.length(); i++) {
if (wort.charAt(i) == buchstabe) {
geraten[i] = buchstabe;
gefunden = true;
}
}
if (gefunden) {
punkte += raddreh;
if (new String(geraten).equals(wort)) {
System.out.println("Gewonnen! Wort: " + wort);
return punkte;
}
} else {
fehler++;
System.out.println("Falsch! Fehler: " + fehler + "/5");
}
}
System.out.println("Verloren! Wort war: " + wort);
return punkte;
}
}
// ===== Main.java =====
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
Benutzerverwaltung bv = new Benutzerverwaltung();
Wortverwaltung wv = new Wortverwaltung("woerter.txt");
Benutzer benutzer;
while ((benutzer = bv.findeOderErstelleBenutzer(sc)) == null);
Spiel spiel = new Spiel(benutzer, wv, sc);
int punkte = spiel.starte();
System.out.println("Punkte: " + punkte);
bv.aktualisiereHighscore(benutzer, punkte);
bv.speichereBenutzer();
}
}
Hallo schön, dass du die Aufgaben Stellung gepostet hast.
Aber wo bei was ist jetzt dein Problem.
Eine fertige Lösung wird es hier sicher nicht geben.
Hi !Hallo schön, dass du die Aufgaben Stellung gepostet hast.
Aber wo bei was ist jetzt dein Problem.
Eine fertige Lösung wird es hier sicher nicht geben.
Was hast du bis jetzt?
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /C:/Daten/Projekte/konrad/JavaMavenApp/src/main/java/Spiel.java:[30,30] Symbol nicht gefunden
Symbol: Methode dreheGluecksrad()
Ort: Klasse Spiel
[INFO] 1 error
[INFO] -------------------------------------------------------------
int punkte = dreheGluecksrad();
int punkte = Gluecksrad.dreheGluecksrad();
Dies wurde dir von Konrad schon erklärt.Hi !
ich fange gerade erst an, java zu verstehen ich bin nicht sehr gut, aber ich habe das, was in der Datei steht, mit Hilfe von chatGPT erstellt, aber es funktioniert nicht, es wäre schön, wenn du herausfinden könntest, woran es liegt und es erklären könntest.
Ganz ehrlich: angefangen hat hier jeder mal irgendwann, und gut war da auch niemand. Und die wenigsten hier haben diese Zeit vergessen, es liegt in der Natur der Sache daß man Dinge nicht kann, wenn man sie erst lernt, das ist völlig ok.Hi !
ich fange gerade erst an, java zu verstehen ich bin nicht sehr gut, aber ich habe das, was in der Datei steht, mit Hilfe von chatGPT erstellt, aber es funktioniert nicht, es wäre schön, wenn du herausfinden könntest, woran es liegt und es erklären könntest.
Ganz ehrlich: angefangen hat hier jeder mal irgendwann, und gut war da auch niemand. Und die wenigsten hier haben diese Zeit vergessen, es liegt in der Natur der Sache daß man Dinge nicht kann, wenn man sie erst lernt, das ist völlig ok.
Aber was sollen wir mit deinen ChatGPT-Ergebnissen? Warum sollen wir herausfinden, warum das nicht läuft, es ist doch deine Aufgabe? Glaubst du etwa du wirst irgendetwas verstehen, wenn der Code laufen würde?
Du hast im Eingangspost eine recht umfangreiche Aufgabenstellung gepostet, und da jetzt so die üblichen Zeiten für Zweitklausuren des Wintersemesters laufen nehme ich mal an, daß das der Stoff ist den du seit September des letzten Jahres eigentlich gelernt haben solltest. Was hast du seitdem getrieben, daß du nichtmal eine konkrete Frage hast, sondern schlicht die Aufgabe reinrotzt und ansonsten nichts kannst? Du hast ja nichtmal geschrieben was da bei dir nicht läuft, deine IDE wird garantiert mit einer hilfreicheren Fehlermeldung geantwortet haben. Lies diese Fehlermeldung, und verstehe sie. Und dann behebe du den Fehler.
Ehrlich gesagt: Du solltest das Studium lieber abbrechen, das ist in deinem Fall Zeitverschwendung. Studium heißt in erster Linie, daß man den Kram aktiv selber lernt; Deshalb finde ich es eigentlich auch ganz gut, wenn es in jedem Studium so ein oder zwei Arschlochprofs gibt, die nicht erklären können und harte Siebklausuren schreiben lassen, das ist zwar hart, hält aber Idioten raus. Und du stellst hier gerade unter Beweis, daß selbständiges Lernen und nach dem Studium selbständiges Arbeiten einfach nichts für dich sind. Du wirst, solltest du dein Studium doch irgendwie beenden und eine Arbeit finden, sehr schnell mit Dingen konfrontiert werden von denen du noch nie etwas gehört hast und wo du etwas Neues lernen mußt, willst du da auch deinem Chef vorheulen daß du das nicht kannst, die Antwort von ChatGPT nichts taugt und er das bitte für dich rausfinden soll? Wozu sollte er dich dann eigentlich einstellen?
Mein Post hier mag bissig sein (das ist mir vollkommen egal), allerdings war das immerhin deutlich mehr Arbeit als du, nach dem was du hier bisher geliefert hast, verdienst.
Vielleicht überraschst du uns ja doch noch mit mehr Eigeninitiative...wir werden es sehen. Wenn du konkrete Fragen hast - es wird bestimmt noch jemand beantworten. Aber ich werde garantiert nicht irgendwelche Zipdateien herunterladen und dein Programm debuggen und deine Arbeit für dich übernehmen.
Wenn du nicht helfen kannst, kannst du auch einfach nichts schreiben, anstatt Dinge zu schreiben, die den Leuten trotz deines Wissens einen Grund geben könnten, sich vorzustellen, was für eine Mench sie sind.Ganz ehrlich: angefangen hat hier jeder mal irgendwann, und gut war da auch niemand. Und die wenigsten hier haben diese Zeit vergessen, es liegt in der Natur der Sache daß man Dinge nicht kann, wenn man sie erst lernt, das ist völlig ok.
Aber was sollen wir mit deinen ChatGPT-Ergebnissen? Warum sollen wir herausfinden, warum das nicht läuft, es ist doch deine Aufgabe? Glaubst du etwa du wirst irgendetwas verstehen, wenn der Code laufen würde?
Du hast im Eingangspost eine recht umfangreiche Aufgabenstellung gepostet, und da jetzt so die üblichen Zeiten für Zweitklausuren des Wintersemesters laufen nehme ich mal an, daß das der Stoff ist den du seit September des letzten Jahres eigentlich gelernt haben solltest. Was hast du seitdem getrieben, daß du nichtmal eine konkrete Frage hast, sondern schlicht die Aufgabe reinrotzt und ansonsten nichts kannst? Du hast ja nichtmal geschrieben was da bei dir nicht läuft, deine IDE wird garantiert mit einer hilfreicheren Fehlermeldung geantwortet haben. Lies diese Fehlermeldung, und verstehe sie. Und dann behebe du den Fehler.
Ehrlich gesagt: Du solltest das Studium lieber abbrechen, das ist in deinem Fall Zeitverschwendung. Studium heißt in erster Linie, daß man den Kram aktiv selber lernt; Deshalb finde ich es eigentlich auch ganz gut, wenn es in jedem Studium so ein oder zwei Arschlochprofs gibt, die nicht erklären können und harte Siebklausuren schreiben lassen, das ist zwar hart, hält aber Idioten raus. Und du stellst hier gerade unter Beweis, daß selbständiges Lernen und nach dem Studium selbständiges Arbeiten einfach nichts für dich sind. Du wirst, solltest du dein Studium doch irgendwie beenden und eine Arbeit finden, sehr schnell mit Dingen konfrontiert werden von denen du noch nie etwas gehört hast und wo du etwas Neues lernen mußt, willst du da auch deinem Chef vorheulen daß du das nicht kannst, die Antwort von ChatGPT nichts taugt und er das bitte für dich rausfinden soll? Wozu sollte er dich dann eigentlich einstellen?
Mein Post hier mag bissig sein (das ist mir vollkommen egal), allerdings war das immerhin deutlich mehr Arbeit als du, nach dem was du hier bisher geliefert hast, verdienst.
Vielleicht überraschst du uns ja doch noch mit mehr Eigeninitiative...wir werden es sehen. Wenn du konkrete Fragen hast - es wird bestimmt noch jemand beantworten. Aber ich werde garantiert nicht irgendwelche Zipdateien herunterladen und dein Programm debuggen und deine Arbeit für dich übernehmen.
Ich denke, das die Aussage von @White_Fox nicht falsch ist. Etwas angeklungen ist es ja auch in meiner Antwort.Wenn du nicht helfen kannst, kannst du auch einfach nichts schreiben, anstatt Dinge zu schreiben, die den Leuten trotz deines Wissens einen Grund geben könnten, sich vorzustellen, was für eine Mench sie sind.
Die Sache ist: Ich kann schon (also dir helfen), die Aufgaben sind trivial. Aber du bist derjenige, der sie nicht kann, aber offensichtlich können muß. Ich würde viel lieber schreiben "können will", aber soweit ich das sehe ist das nicht der Fall. Was ansich ja schon der Kern des Problems ist.Wenn du nicht helfen kannst, kannst du auch einfach nichts schreiben, anstatt Dinge zu schreiben, die den Leuten trotz deines Wissens einen Grund geben könnten, sich vorzustellen, was für eine Mench sie sind.