Simple Javascripts spelletje: Russisch Roulette

Status
Niet open voor verdere reacties.

Houstyn123

Nieuwe gebruiker
Lid geworden
10 apr 2013
Berichten
1
Hallo allemaal,

Ik heb programmeren als vak op school, en ik heb er vreselijke moeite mee. Laat ik dat maar gelijk gezegd hebben, zodat ik niet voor al te dom hoef te worden neergezet.. :p

Ik heb de basics staan voor een toets, maar ik voldoe nog niet aan alle criteria. Mijn code is nu dat je Russisch Roulette gaat spelen in de browser. Je klikt op 1 van de 6 plaatjes om te kiezen hoeveel kogels je wilt laden in de revolver. (1,2,3,4,5 of 6) Dit werkt allemaal prima. Maar nu wil ik er een array aan toevoegen. (Omdat dit bij de minimale criteria zit) Mijn idee is om in de array [1,2,3,4,5,6] te hebben als de lege kamers. Daarin wil ik dan met 0 en 1 laten weten in welke van de kamers een kogel zit (Waarbij je verliest) Dus eigenlijk bijvoorbeeld bij 2 kogels [0,0,1,0,0,1] Wanneer je op de 0 stuit, krijg je de mogelijkheid om het spel nogmaals te spelen, omdat je het overleeft hebt. Maar hoe moet die code er dan uitzien?

Ik heb al vaak op internet gekeken en ben nog niet goed genoeg in Javascripts om het te begrijpen vanaf de webpagina's omdat array altijd in een andere context te vinden is. DIt maakt het zeer onduidelijk voor mij.

Kan iemand alsjeblieft helpen over hoe de code er dan uit zou moeten zien? Het zou voor mij erg fijn zijn en het zou me erg veel helpen.

Dit is wat ik nu heb aan code: (Afgezien van de HTML en CSS bestanden)

(function () {
'use strict';

// Helper functie om het boek te kunnen gebruiken
var print = function () {
var i;
for (i = 0; i < arguments.length; i += 1) {
console.log("<" + typeof (arguments) + "> " + arguments);
}
};

var spelen = function(kogel){
if(kogel === 6){
alert("Wie kiest er nou 6 kogels? Je bent dood!");
}else{
if(confirm("Je hebt "+kogel+" kogel. Weet je zeker dat je gaat schieten?!")){
var kansBerekend = Math.random();
var kansGekozen = kogel/6;
if ( kansGekozen <= kansBerekend ) {
document.getElementById("bericht").innerHTML = "Je bent dood!";
}else{
document.getElementById("bericht").innerHTML = "Je hebt het overleeft! Lucky bastard";
}
}else{
alert("Lafaard!");
}
}
};

window.onload = function(){
// met het click event wordt de functie aangeroepen, afhankelijk van het aantal kogels.
addHandler(kogel1, "click", function(){spelen(1);});
addHandler(kogel2, "click", function(){spelen(2);});
addHandler(kogel3, "click", function(){spelen(3);});
addHandler(kogel4, "click", function(){spelen(4);});
addHandler(kogel5, "click", function(){spelen(5);});
addHandler(kogel6, "click", function(){spelen(6);});
};
}());
 
Laatst bewerkt:
Ah, ja, een array gebruiken zou wel handig zijn ;)

Het idee is het volgende. Je deelt je programma op in twee delen. De eerste is het initaliseren van de data; de tweede is het 'uitvoeren' van het schieten, zegmaar.

Het initialiseren is lastiger dan het lijkt, want je kan hier twee keuzes maken. Of je vult de array random in (e.g. [rand, rand, rand, rand, rand, rand]) maar dan zit je met het probleem dat je dus meer of minder kogels hebt. Het kan best, maar de functie hiervoor is een beetje tricky (while loop, check of er nog geen kogel zit, etc etc).

Voordeel is dat de code op de werkelijkheid lijkt (i.e. de kogels in de kamers). Veel makkelijker is om de array te vullen met de hoeveelheid kogels, en de rest leeg te laten (e.g. bij 2: [1, 1, 0, 0, 0, 0]). Dit kan mooi met een for-loopje.
Mocht dit volledig zijn kan je zelfs een array_shuffle functie ergens vandaan halen.

In ieder geval, hoe je het ook doet, de 'uitvoer' functie is hetzelfde:
[js]
function shiet( kamers )
{
var kogel = Math.floor(Math.random() * 6); // getal tussen de 0 en 5 (inc)
// dit is eigenlijk het 'spinnen' van de kamers!

if( kamers[kogel] == 1 )
{
// boem!
}else{
// klik... klik... klik... :)
}
}

shiet( [..., ..., ..] );[/js]
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan