Schere ,Stein, Papier in Java?

Hallo, ich bin noch Anfänger in Java und kenne mich nicht besonders gut mit dem Programm aus. Wollte deshalb als Übung Schere, Stein Papier programmieren. Habe im Prinzip ein fertiges Programm, doch wenn ich die erste Antwort eingebe, wird mir eine Fehlermeldung angezeigt. Könnte mir jemand erklären was diese bedeutet und was ich an meinem Code verändern muss?

Code:

import java.util.Scanner;

public class scheresteinpapier {

  public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in); 

    int runden= 0;

    int schere = 1;

int stein = 2;

int papier = 3;

    int user=0;

    int pc=0;

   int userchoice;

   

   double pcchoice;

     

    while(runden<3)

    {

      System.out.print("Waehle Schere, Stein oder Papier.");

pcchoice = (int) (Math.random()*3);  

    userchoice = scanner.nextInt();

    if (userchoice==schere)

{

  if(pcchoice==schere)

  {

    System.out.print("Unentschieden!");

  }

  else if(pcchoice==stein){

    System.out.print("Der PC hat diese Runde gewonnen!");

    pc++;

  }

  else{

    System.out.print("Du hast diese Runde gewonnen!");

     user++;

  }

}  

else if (userchoice==stein)

{

  if(pcchoice==schere)

  {

   System.out.print("Du hast diese Runde gewonnen!");

   user++;

  }

  else if(pcchoice==stein){

    System.out.print("Unentschieden!");

  }

  else{

   System.out.print("Der PC hat diese Runde gewonnen!");

   pc++;

  }

}  

else {

  if(pcchoice==schere)

  {

   System.out.print("Der PC hat diese Runde gewonnen!");

   pc++;

  }

  else if(pcchoice==stein){

    System.out.print("Du hast diese Runde gewonnen!");

    user++;

  }

  else{

     System.out.print("Unentschieden!");

  }

}  

    runden+=1;

    }

    if (pc==user)

    {

      System.out.print("Das Spiel ist unentschieden ausgangen!");

    }

    else if (pc<user){

       System.out.print("Du hast das Spiel gewonnen!");

    }

    else{

       System.out.print("Der Pc hast das Spiel gewonnen!");

    }

  }

}

Fehlermeldung:

ERROR!

Exception in thread "main" java.util.InputMismatchException

at java.base/java.util.Scanner.throwFor(Scanner.java:939)

at java.base/java.util.Scanner.next(Scanner.java:1594)

at java.base/java.util.Scanner.nextInt(Scanner.java:2258)

at java.base/java.util.Scanner.nextInt(Scanner.java:2212)

at scheresteinpapier.main(scheresteinpapier.java:21)

Java, Code
Java Fx Eclipse Projekt exportieren funktioniert nicht?

Hallo, ich habe ein Programm in Eclipse geschrieben. Extern geholt habe ich mir dafür die Bibliotheken "Java FX" und "Java SDK". Das problem ist, dass ich schon beim Exportieren als "runnable JAR-file" ganz of die Fehlermeldung bekomme, dass es zu oft eine module-info gäbe (duplicate module-info). Allerdings wird die module info von mir nur einmal definiert. Laut diversen Videos ist der fehler aber anscheinend egal. Sie können die Datei nach dem Exportieren trotzdem öffnen. Wenn ich die exportierte Datei mit Java SDX öffnen will, dann passiert nichts. Kurz kommt der ladekreis über dem Mauszeiger und dann ist's vorbei. Über CMD habe ich nachgesehen was das Problem sein könnte. Anscheinend kann die Hauptklasse nicht gefunden werden. (Obwohl ich meine Hauptklasse beim exportieren aber definiert habe). Dann habe ich versucht eine Systemvarbiable im Path hunzuzufügen. Hat auch nichts gebracht. Die Versionen stimmen überein. Sowohl die Java SDX mit FX als auch Excplise. Ein Kollege wollte auch schon mit seinem entwickler tool meines exportieren (er verwendet Marven). Hat auch bei ihm nicht funktionniert. Ich hab auch schon in meinen Projekt Properties die Run-Depug einstellungen gelöscht, meine eigene erstellt und auch VM-Argumente eingefügt (--module-path /path/to/JavaFX/lib --add-modules=javafx.controls , javafx.fxml, javafx.graphics). Nichts hat funktioniert, ich weiß wirklich nicht mehr weiter.

Java, Eclipse, JavaFX, exportieren
Könnt ihr mir bei meinem Processing-Spiel helfen?

Hey, ich habe eine Frage zu einem Java-Code. Und zwar habe ich ein unfertiges Spiel gemacht, wo drei Kugeln herunterfallen und wieder oben erscheinen, falls diese ganz unten angekommen sind.

Im Programmieren bin ich noch ein Anfänger und ich habe nicht so viel Wissen dazu.

Mit den Pfeiltasten rechts und links kann man unten das Rechteck bewegen.

Die Kugeln erhalten immer eine neue Farbe, wenn sie oben neu erscheinen.

Meine zwei Fragen wären:

  1. Wie kann ich es so machen, dass, wenn eine Kugel wieder oben erscheint, nur diese vom fill-Befehl betroffen ist und somit nicht das Rechteck und alle anderen Kugeln eine neue Farbe erhalten, wenn eine Kugel oben neu erscheint (Priorität)?
  2. Wie kann ich die Bewegung vom Rechteck smoother machen? Weil wenn man zu schnell rechts und links drückt, dann laggt das und geht irgendwie in die entgegengesetze Richtung, die man drückt (optional).

Den Code habe ich in Processing geschrieben.

Ich bedanke mich schon einmal im Voraus für jede Antwort.

Hier der Code:

float x = 200; // Rechts-, Links-Wert für den Eimer
float x1 = 250; // Wo die 1. Kugel sich horizontal befindet
float y1 = 0; // Wo die 1. Kugel sich vertikal befindet
float x2 = 100; // Wo die 2. Kugel sich horizontal befindet
float y2 = 50; // Wo die 2. Kugel sich vertikal befindet
float x3 = 385; // Wo die 3. Kugel sich horizontal befindet
float y3 = 250; // Wo die 3. Kugel sich vertikal befindet

void setup() {
  size(500, 500);
}

void draw() {
  background(0, 255, 0);

  // Die fallenden Kugeln:

  // 1. Kugel
  ellipse(x1, y1, 50, 50);
  y1 = y1 + 2;

  if (y1 > 500) {
    fill(random(0, 255));
    y1 = 0;
    x1 = random(50, 450);
  }

  // 2. Kugel
  ellipse(x2, y2, 50, 50);
  y2 = y2 + 2;

  if (y2 > 500) {
    fill(random(0, 255));
    y2 = 0;
    x2 = random(50, 450);
  }

  // 3. Kugel
  ellipse(x3, y3, 50, 50);
  y3 = y3 + 2;

  if (y3 > 500) {
    fill(random(0, 255));
    y3 = 0;
    x3 = random(50, 450);
  }

  // Der Eimer:
  noStroke();
  rect(x, 400, 100, 50);

  if (keyPressed) {
    if (keyCode == LEFT && x >0) {
      x = x - 5;
    }

    if (keyCode == RIGHT && x <400) {
      x = x + 5;
    }
  }
}
Java, Code, Programmiersprache
Wie behebe ich die Fehlermeldung beim starten des fabric Servers?

Beim starten der Start.bat Datei für den Minecraft Fabric server bekomme ich diese Fehlermeldung:

Uncaught exception in thread "main"

java.lang.RuntimeException: An exception occurred when launching the server!

at net.fabricmc.loader.impl.launch.server.FabricServerLauncher.main(FabricServerLauncher.java:71)

at net.fabricmc.installer.ServerLauncher.main(ServerLauncher.java:69)

Caused by: java.lang.RuntimeException: Error invoking MC server bundler: java.lang.UnsupportedClassVersionError: net/minecraft/bundler/Main has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 52.0

at net.fabricmc.loader.impl.game.minecraft.BundlerProcessor.process(BundlerProcessor.java:102)

at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.locateGame(MinecraftGameProvider.java:193)

at net.fabricmc.loader.impl.launch.knot.Knot.createGameProvider(Knot.java:175)

at net.fabricmc.loader.impl.launch.knot.Knot.init(Knot.java:130)

at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:68)

at net.fabricmc.loader.impl.launch.knot.KnotServer.main(KnotServer.java:23)

at net.fabricmc.loader.impl.launch.server.FabricServerLauncher.main(FabricServerLauncher.java:69)

... 1 more

Caused by: java.lang.UnsupportedClassVersionError: net/minecraft/bundler/Main has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 52.0

at java.lang.ClassLoader.defineClass1(Native Method)

at java.lang.ClassLoader.defineClass(Unknown Source)

at java.lang.ClassLoader.defineClass(Unknown Source)

at net.fabricmc.loader.impl.game.minecraft.BundlerProcessor$1.loadClass(BundlerProcessor.java:65)

at java.lang.ClassLoader.loadClass(Unknown Source)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Unknown Source)

at net.fabricmc.loader.impl.game.minecraft.BundlerProcessor.process(BundlerProcessor.java:85)

... 7 more

kann mir jemand helfen es zu beheben?

Bild zum Beitrag
Server, Mods, Java, Minecraft, Code, Minecraft Server, Serverprobleme, Bukkit, Forge, Spigot, fabric
Wie kann man ein weitverzweigtes Geflecht aus if/else-Anweisungen in Python (oder in anderen Programmiersprachen) programmieren?

Wenn man als absoluter Laie in Programmierung im Internet zur if/else-Anweisung (egal, in welcher Programmiersprache) recherchiert, wird man schnell feststellen, dass die Infos, die man hier findet, nicht allzu reichhaltig sind.

Das höchste der Gefühle, was einem beigebracht wird, ist folgenden Dialog zu programmieren: "Welche Sprache sprechen Sie?" - "Französisch." - "Wollen Sie sich auf Französisch weiter unterhalten?" Ende.

Man lernt nicht, wie man mit dem Programm weitermachen kann, falls die Antwort des Benutzers "Ja" sein sollte. Man erfährt gar nichts. Was zu finden ist, ist, wie man EINE FRAGE STELLT und dann auf EINE ANTWORT zu dieser Frage reagieren kann. Das war's.

Ich wüsste gern, wie man das weiterspinnen kann. Wie man eine ganz lange Unterhaltung mit allen möglichen Antwortmöglichkeiten programmieren kann. So wie bei einem Windows-Installationassistenten, der dafür sorgt, dass Windows unter hundert verschiedenen Arten auf die Art installiert wird, wie der Benutzer es will.

Wenn die Benutzer dieser Seite keine Antwort auf die Frage haben, weil sie es selbst nicht wissen, ist das überhaupt kein Problem. Man trifft immer wieder einen It-Profi, der es vielleicht weiß.

Allerdings lässt sich extrem leicht feststellen, dass irgendwelche Teenies oder Leute, die auf dem geistigen Niveau von (nicht sehr gut erzogenen) Teenies stehengeblieben sind, es sich zum Hobby machen, auf dieser Seite unvorstellbar bösartig und beleidigend zu antworten. Es ist völlig egal, was man fragt, egal ob "Wie heißt das weiße Zeug, das früher auf den Donuts war?" oder "In welchen Läden kann man viele naturfreundliche Reinigungsmittel kaufen?" Es wird immer geantwortet von irgendwelchen Leuten, die zu wenig zu tun haben und sich ihre Zeit vertreiben, Leute im Internet mit Sprüchen wie "Boah, Alta, wie dumm BIIISSSSST Du eigentlich?" zu beleidigen.

Ich werde auf so einen Schwachsinn nicht antworten, auch nicht auf "gut gemeinte Rückfragen" und schon gar nicht auf "Also, mit SO EINER NEGATIVEN EINSTELLUNG MENSCHEN GEGENÜBER würde ich hier aber KEINE Frage stellen".

Die Frage ist klar formuliert, so klar wie sie klarer nicht formuliert werden kann. So wie "Was ist 2 + 2?" Wenn jemand die Antwort wüsste, würde mich das sehr freuen. Wenn nicht, dann nicht.

Danke, Ende.

Computer, IT, programmieren, Java, Anwendungsentwicklung, C Sharp, Programmiersprache, Python, Softwareentwicklung, Webentwicklung, Rust, Programmcode, Objektorientierte Programmierung

Meistgelesene Beiträge zum Thema Java