Skatan
peace among worlds!
|
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! 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/
|
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!
|
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/
|
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
|
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!
|
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!
|