Volledige versie bekijken : Achterpoortje in Programma (java)



carl
28 March 2009, 11:14
Hey iedereen,

Ik zit met een klein probleempje, de situatie is als volgt.
Ik moet voor school een Mastermind spel schrijven (java) maar kwil hier een achterpoortje insteken (zie: cheat) die je netjes de code laat zien (zodat niet bij elke testbeurt geraden moet worden en dat genannte zaken bij de eindpresentatie vermeden worden).

Ik dacht dus gewoon via volgend stukje:

if (invoer == "cheat")
JOptionPane.showMessageDialog(null, code.toString)


Dat zou naar mijn mening dus moeten werken maar dat doet ie niet :) Ik denk dat het probleem ligt bij invoer == "..." dat hij nooit kan gelijkstellen ?

Hier is de code die om invoer vraagt:
public static String VraagOmCodeInvoer (){
String inv = JOptionPane.showInputDialog("Geef een code van 4 kleuren in: (kleuren worden voorgesteld door cijfers)");
return inv;
}

(static methode om geen lokaal object te moeten creeren hiervoor)
(omzetten naar array en vergelijken etc gebeurt in andere klasse.)

Ja ik wweet dat de array code er niet in staat maar die zou ik meegeven als argument aan de methode.
Iemand een idee ?

ultddave
29 March 2009, 21:55
invoer = "cheat" gaat niet werken zoals je het verwacht (niet doen dus).
Dus invoer == "cheat" zou moeten werken als invoer een string is die overeenkomt met de tekst "cheat".

Mijn kennis in objectief programmeren in java is nog niet vergenoeg gevorderd om de rest te kunnen beoordelen.

Ik denk dat je gewoon de inhoud van de variabele "invoer" eens moet uitprinten voor de if-test. Als hij geen normale waarde heeft, dan kan je de fout zoeken bij de initialisatie ervan.

Anders moet je eens deze functie bekijken;

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html#equalsIgnoreCase(java.lang.String)

if (equalsIgnoreCase(invoer "cheat"))
{
...
}

:)

Mvg
- Dave -

carl
30 March 2009, 21:04
Zo werkt het dus wel:

if (inv.equals("cheat")==true)
JOptionPane.showMessageDialog(null, kode.toString());

Vrij dom van me :)
Let wel; ik heb de toString methode daar blijkbaar verkeerd gebruikt :) Kzou het nog is moeten opzoeken, maar dus moet ik altijd zelf men methode schrijven om men array in een string te gooien ? :)

edit: Arrays.toString(array) werkt mooi :)
Hier mag een slotje op

Martijnc
30 March 2009, 21:07
if (invoer.compareTo("cheat") = 0) {
//iets doen
}

carl
30 March 2009, 21:51
if (invoer.compareTo("cheat") == 0) {
//iets doen
}

This een detail kweet het maar anders werkt het ni :) (in java toch ni)

Y-Ssin
30 March 2009, 21:57
In welk jaar zit je, ik in het 5de, en wy hebben tot nu toe nog geen java gezien, maar ik kan al niet w8ten tot het zover is!

carl
31 March 2009, 00:35
Euhm, eerste jaar Toegepaste informatica :) HoGent. Ik heb wetenschappen wiskunde gevolgd in het secundair dus ik had nog niks v programmeren gezien (of ge moet die visual basic meerekenen :D)

ultddave
1 April 2009, 00:28
Euhm, eerste jaar Toegepaste informatica :) HoGent. Ik heb wetenschappen wiskunde gevolgd in het secundair dus ik had nog niks v programmeren gezien (of ge moet die visual basic meerekenen :D)

Maakt inderdaad niet uit :). Zelfde hier, ook WET-Wiskunde int secundair en nu ICT ;D. Maar eigenlijk heb je geen voorkennis nodig.

Mvg
- Dave -

veysie
21 April 2009, 22:34
Ahzo cheaten bij mastermind. dak daar nog niet had aangedacht. zit ook in eerste jaar toegepaste informatica(1TINE) en doe ook mastermind. lukt het voor de rest een beetje?

ultddave
21 April 2009, 22:42
Ik heb het spel Othello (reversi) moeten maken in java. Wel zonder objectief te programmeren :D. Dat slaan we over ;). We leren het eerste jaar imperatief programmeren in Java en Ansi C. En het tweede jaar is objectief in C++ dacht ik :P

Dus als je Informatica of ICT of zoiets in de aard doet :P Zou'k ook al beginnen met Ansi C eens na te kijken. Dat krijg je meestal na Java en lijkt zoiezo veel op C++ =).

Mvg,
Dave