REQ: Wer hilft mir weiter (JAVA)?

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/req_wer_hilft_mir_weiter_java_170458/page_1 - zur Vollversion wechseln!


Skatan schrieb am 23.10.2006 um 18:00

Hallo!

Kann mir mal bitte jemand weiterhelfen!

Folgendes: Muss für die Uni was programmieren.

Angabe lautet:

Verfassen sie eine Applikation, die das Knobeln simuliert: Stein schlägt Schere, Papier schlägt Stein, Schere schlägt Papier!

Dazu geben sie über Eingabedialog 1,2 oder 3 ein. Diese Zahlen sind wie folgt zu interpretieren: Stein = 1, Schere = 2, Papier = 3 Der Computer bestimmt eine ganze Zufallszahl aus dem Intervall (1,3). Geben sie als Text aus, wer gewonnen hat. Haben Benutzer und Rechner dasselbe gewählt, so liegt ein UNentschieden vor.

Ich habe bislang folgendes:
es müsste prinzipiell auch richtig sein, bzw genau so hats der prof gezeigt, nur muss irgendwo ein fehler sein, und ich check net wo!

Zitat
import javax.swing.JOptionPane;

public class Beispiel3
{

public static void main(String[] args)
{

//Deklarationen und Initialisierung
Integer eingabe, rechnertipp, gewinner;
String eingabestring;

//Erste Eingabe
eingabestring=JOptionPane.showInputDialog(null, "Geben sie "+
"0 ein, falls das Spiel beendet werden soll \n Geben sie 1 "+
"fuer Stein, 2 fuer Schere, 3 fuer Papier ein!");

eingabe=int.parseInt(eingabestring);

//Wiederholung
while(eingabe=0) {

rechnertipp=1+ (int) (Math.random()*3);

gewinner=0;

if(eingabe==1 && rechnertipp==2) gewinner=1;
if(eingabe==1 && rechnertipp==3) gewinner=2;
if(eingabe==2 && rechnertipp==3) gewinner=1;
if(eingabe==2 && rechnertipp==1) gewinner=2;
if(eingabe==3 && rechnertipp==1) gewinner=1;
if(eingabe==3 && rechnertipp==2) gewinner=2;


if(gewinner==0){
JOptionPane.showMessageDialog(null, "Unentschieden",
"Spielausgang", JOptionPane.INFORMATION_MESSAGE);
}
else{

if(gewinner==2){

JOptionPane.showMessageDialog(null, "Rechner hat gewonnen"
+"\nSpieler= "+ eingabe +"\nRechner= "+ rechnertipp,
"Spielausgang", JOptionPane.INFORMATION_MESSAGE);

}
else{


JOptionPane.showMessageDialog(null, "Spieler hat gewonnen"
+"\nSpieler= "+ eingabe +"\nRechner= "+ rechnertipp,
"Spielausgang", JOptionPane.INFORMATION_MESSAGE);


}
}




System.exit(0);
}
}
}


KiLLa schrieb am 23.10.2006 um 18:46

mal vom hinschauen:

eingabe=int.parseInt(eingabestring); -> "Integer."

und while(eingabe=0) -> "==" statt "="

EDIT: sollte ja ungleich sein, also "!=" statt "="
EDIT2: lass die eingabe in der schleife einlesen!


Skatan schrieb am 23.10.2006 um 18:50

das hab ich mir auch schon gedacht!

aber wenn ich == statt = eingebe, kompiliert ers mir zwar ohne fehler,
aber das programm selbst stimmt nicht! denn wenn ich dann 1,2 oder 3 eingebe passiert nix, und bei 0 schreibt er immer unentschieden hin!
is irgendwo ein logikfehler?


KiLLa schrieb am 23.10.2006 um 18:56

also == stimmt sicher, da == vergleich (bei if, while usw - alles was auf bool geht) is und "=" is eine zuweisung.

letzte änderungen ;)

rename test.txt ... funktioniert bei mir


that schrieb am 23.10.2006 um 20:01

Bitte bei solchen Problemen immer:

1. ein vernünftiges Subject
2. eine genaue Beschreibung des Fehlers (bei Compilerfehlermeldungen ein Copy&Paste)


Skatan schrieb am 23.10.2006 um 21:18

aaah, 1000 dank an killa!
werd mir das ganze jetzt noch genauer anschaun, bzw die unterschiede genau anschaun!


@ that

sorry, mir ist bei sowas leider in der schnelle kein vernünftiger titel eingefallen!
das problem hab ich dann eh geschildert! es war eben blöd weil keine compilerfehlermeldung gekommen ist, sondern einfach das ergebnis falsch war! bei compilerfalschmeldungen hätt ich mich eh selbst solange gespielt bis sie weg sind!




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025