spel in notepad++

Status
Niet open voor verdere reacties.

SamirAlieev

Gebruiker
Lid geworden
28 jan 2011
Berichten
99
Beste leden,

Ik zit op een ICT school en we moeten voor project een spel maken genaamd "Hoger-Lager" geheel in notepad geschreven maar dan gaat er bij mij iets verkeerds... ik kan het maar niet achterhalen. ik zal eerst heel snel de spel uitleggen: je speelt tegen de computer de computer gooit eerst 2 dobbelstenen die worden opgeteld jij moet je verwachting bepalen lager of hoger, daarna je inzet en je gooit...

Bij mij gaat de verwachting Hoger goed.. maar bij de verwachting lager gedeelte en gelijkspel gedeelte gaat het fout.. hierbij de code:

function checkScore(Lager,Hoger)
{
if (verwachtingHoger=="Hoger")
{
if (spelerScore < computerScore)
{
score = score-inzet;

pen.clearRect(300,300,300,50);
pen.font='Bold 30px Verdana';
pen.fillText("Score: "+score,335,350);


pen.fillStyle = "white";
pen.font="bold 20px Arial";
pen.fillText("jammer",330,320);

gelijkSpel();
}
else
{
score= score+inzet;

pen.clearRect(300,300,300,50);
pen.font='Bold 30px Verdana';
pen.fillText("Score: "+score,335,350);

pen.fillStyle = "white";
pen.font="bold 20px Arial";
pen.fillText("win",200,320);

gelijkSpel();
}
}
else if (verwachtingLager=="Lager")
{
if ( spelerScore > computerScore)
{
score = score-inzet;
pen.clearRect(300,300,300,50);
pen.font='Bold 30px Verdana';
pen.fillText("Score: "+score,335,350);

pen.fillStyle = "white";
pen.font="bold 20px Arial";
pen.fillText("verloren!",280,320);

gelijkSpel();
}
else
{
score = score+inzet;
pen.clearRect(300,300,300,50);
pen.font='Bold 30px Verdana';
pen.fillText("Score: "+score,335,350);

pen.fillStyle = "white";
pen.font="bold 20px Arial";
pen.fillText("gewonnen!",150,320);

gelijkSpel();
}
}
}


function gelijkSpel()
{
if(spelerScore==computerScore)
{
score = score+0;
pen.font='Bold 30px Verdana';
pen.fillText("c!",280,410);
}
else
{
if(computerScore==spelerScore)
{ score = score+0;
pen.font='Bold 30px Verdana';
pen.fillText("d",280,410);
}
else
{
}
}
}
 
Wat precies gaat er mis bij lager en bij een gelijkspel?
 
bij gelijkspel win ik.. en bij lager gaan er punten van af terwijl ik juist goed gegokt heb..
 
De checkScore methode zou sowieso een stuk korter en duidelijker kunnen worden geschreven. Iets als:

[cpp]
function checkScore(lager, hoger) {
if (verwachting == "Hoger") { // het lijkt me dat je één verwachting hebt, die oftewel hoger of lager is. Twee variabelen hiervoor lijkt me dus overbodig.
if (spelerScore < computerScore) {
x = 330; y = 320;
outputText = "jammer";
} else {
x = 200; y = 320;
outputText = "win";
}
} else {
if (spelerScore > computerScore) {
x = 335; y = 350;
outputText = "verloren!";
} else {
x = 150; y = 320;
outputText = "gewonnen!";
}
}

score = score - inzet;
pen.clearRect(300, 300, 300, 50);
pen.font = 'Bold 30px Verdana';
pen.fillText("Score: " + score, 335, 350);
pen.fillStyle = "white";
pen.font = "bold 20px Arial";
pen.fillText(outputText, x, y);

gelijkSpel();
}
[/cpp]

En hetzelfde geldt eigenlijk voor de gelijkSpel methode. Al hanteer je daar mijns inziens een erg vreemde logica: verwacht je nu werkelijk dat er een verschil is tussen (spelerScore == computerScore) en (computerScore == spelerScore)?
 
Je hebt wel gelijk over de gelijkspel maar bij checkscore niet want je hebt 2 verwachtingen hoger en lager.. als je denkt dat je hoger gooit is de eerste vandaar HOGER en als je denkt dat je lager gaat gooien vandaar LAGER..
 
Zoals ik het zie heb je maar één verwachting: ook in je code schrijf je dat de verwachting "lager" of "hoger" is. Wat is volgens jou dan het nut/de logica om hiervoor twee variabelen te gebruiken? Het is overigens ook heel makkelijk te bewijzen. In je huidige code schrijf je:

[cpp]
if (verwachtingHoger == "Hoger") {
// ...
} else if (verwachtingLager == "Lager") {
// ...
}
[/cpp]

De onderstaande code met maar één variabele doet precies hetzelfde:

[cpp]
if (isLager) {
// ...
} else if (!isLager) { // else if gebruikt om dezelfde structuur aan te houden als hierboven, maar een else zou uiteraard volstaan zoals ik in het eerste voorbeeld al had geschreven
// ...
}
[/cpp]
 
Je code op één zetten?

Probeer eens je code te herschrijven gebruikmakend van CoD_NL's logica.
 
Hoe moet ik dan volgens jou mijn code op een zetten?

Zonder de rest van je code te zien verwacht ik dat je nu iets als het onderstaande doet:

[cpp]
verwachtingHoger = "Hoger"
// of in een andere situatie
verwachtingLager = "Lager"
[/cpp]

Als je dit met een enkele variabele wilt doen dan schrijf je gewoon iets als:

[cpp]
verwachting = "Hoger"
// of als de verwachting lager is:
verwachting = "Lager"
// al is een boolean netter:
isLager = true; // of isLager = false
[/cpp]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan