"We are back" « oc.at

REQ: Wer hilft mir weiter (JAVA)?

Skatan 23.10.2006 - 18:00 916 5
Posts

Skatan

peace among worlds!
Avatar
Registered: Feb 2004
Location: Trieben
Posts: 4258
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

\o/
Registered: Jan 2001
Location: Wien
Posts: 817
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!
Bearbeitet von KiLLa am 23.10.2006, 18:54

Skatan

peace among worlds!
Avatar
Registered: Feb 2004
Location: Trieben
Posts: 4258
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

\o/
Registered: Jan 2001
Location: Wien
Posts: 817
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
test_99847.txt (downloaded 77x)
Bearbeitet von KiLLa am 23.10.2006, 19:04

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11343
Bitte bei solchen Problemen immer:

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

Skatan

peace among worlds!
Avatar
Registered: Feb 2004
Location: Trieben
Posts: 4258
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!
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz