Archief - [PROG] [JS] - Letters zichtbaar maken galgje

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Jerre Muesli

Legacy Member
Hey mensen, ik ben voort school een galgje aant maken maar ik zit compleet vast. Alles werkt tot nu toe maar ik heb geen FLAUW idee hoe ik de letters moet laten tevoorschijn komen (Het belangrijkste dus...). Hier is mijn code , alle hulp is meer dan welkom! :bow:
Ik heb het geheel geupload zodat je eens vlug kan kijken hoe het er al uit ziet.(best met IE)
http://users.pandora.be/kort/galgje

Code:
<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css">
<script type="text/javascript">
// Array met woorden
var woorden= new Array("goochelaar","studeren","meander","dictator","diamant","mestkever","amandelen","bejubelen","fantastisch","pariteit","intrige","casino","omnibus",
"boekenkast","dekbed","informatica","gastronomie","ilusie","biljard","miljard","steekproef","statistiek","waanzin","spinazie","telefoon","sextet","xylofoon","aardbij",
"pompoen","regenbui","polsband","halsband","getij","professor","tijdsduur","regenbui","beschaving","sloom","pin","poster","horloge","jeans","vinger","kwartaal","spinazie",
"saxofoon","gebuisd","gevecht","netwerk","kritiek","meetlat","pooier","vogelnest","aardappel","ranzig","installatie","hoofdletter","evenaar","werkwoord","onderbroek")
// Te raden woord
var woord = ""
// Aantal keer fout
var aantal_fouten = 0
// Gekozen letter
var letter = ""
//positie van de gevraagde letter in het woord
var positie

var teller= 0

//Kies random een woord uit de array en stuur door naar mask
function SelectWoord()
{
var _random = Math.round(Math.random() * (woorden.length - 1))
woord = woorden[_random]
window.status=("Het te raden woord is: " + woord)
var masked_woord = MaakMask(woord)
document.spel.ToonWoord.value = masked_woord
}
// Maskeer gekozen woord
function MaakMask(m)
{
var mask = ""
var woordLengte = m.length
	for (var i = 0; i < woordLengte; i++)
	{
	mask += "#"
	}
return mask
}

function ToonLetter(letter)
{
/*
/////////////////	
(NIET) - GEVONDEN
/////////////////
*/
// Letter gevonden
	if (woord.match(letter) != null)
	{
// Letter gevonden en nog niet gekozen
		if (document.spel.ToonLetters.value.match(letter) == null)
		{
			document.spel.ToonLetters.value += letter
		}
// Letter gevonden maar reeds gekozen
		else
		{
		DubbeleLetter(1)
		}
	}
// Letter niet gevonden	
	else
	{
// Letter niet gevonden en nog niet gekozen
		if (document.spel.ToonLetters.value.match(letter) == null)
		{
			document.spel.ToonLetters.value += letter
			++aantal_fouten
			eval("document.afbeelding.src=\"imggalgje/" + aantal_fouten + ".gif\"")
		}
// Letter niet gevonden en reeds gekozen
		else
		{
		DubbeleLetter(1)
		}
	}

/*
/////////////	
WIN - VERLIES
/////////////
*/
// Kijken of je gewonnen hebt
	if ( document.spel.ToonWoord.value.match("#") == null && aantal_fouten < 10 )
	{
		alert("Proficiat, U hebt dit spelgewonnen!!")
	}
// Kijken of je verloren hebt
	else if ( aantal_fouten == 10 )
	{
		alert("Helaas, U hebt verloren.\nHet woord dat je zocht was: " + woord)
	}

}

function DubbeleLetter(d)
{
	if (d == 1)
	{
	temp = document.spel.ToonLetters.value
	document.spel.ToonLetters.value = ("Letter is reeds gekozen")
	setTimeout("DubbeleLetter(0)",1000)
	}
	else
	{
	document.spel.ToonLetters.value = temp
	}
}

// Reset het spel
function opniew()
{
SelectWoord()
document.spel.ToonLetters.value = ""
eval("document.afbeelding.src=\"imggalgje/start.gif\"")
aantal_fouten = 0
}

</script>
</head>

<body onLoad="SelectWoord()">
<div align="center">
<br><img src="imggalgje/start.gif" name="afbeelding" border="1"><br><br><br><br>
<form name="spel">
Te raden woord&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="ToonWoord" size="26" class="invulvak_galgje"><br>
Reeds Geraden Letters&nbsp;:&nbsp;<input type="text" name="ToonLetters" size="26" class="invulvak_galgje">
<P><B>
<A href=Javascript:ToonLetter("a") accesskey="a">A</A>
<A href=Javascript:ToonLetter("b") accesskey="b">B</A>
<A href=Javascript:ToonLetter("c") accesskey="c">C</A>
<A href=Javascript:ToonLetter("d") accesskey="d">D</A>
<A href=Javascript:ToonLetter("e") accesskey="e">E</A>
<A href=Javascript:ToonLetter("f") accesskey="f">F</A>
<A href=Javascript:ToonLetter("g") accesskey="g">G</A>
<A href=Javascript:ToonLetter("h") accesskey="h">H</A>
<A href=Javascript:ToonLetter("i") accesskey="i">I</A>
<A href=Javascript:ToonLetter("j") accesskey="j">J</A>
<A href=Javascript:ToonLetter("k") accesskey="k">K</A>
<A href=Javascript:ToonLetter("l") accesskey="l">L</A>
<A href=Javascript:ToonLetter("m") accesskey="m">M</A>
<A href=Javascript:ToonLetter("n") accesskey="n">N</A>
<A href=Javascript:ToonLetter("o") accesskey="o">O</A>
<A href=Javascript:ToonLetter("p") accesskey="p">P</A>
<A href=Javascript:ToonLetter("q") accesskey="q">Q</A>
<A href=Javascript:ToonLetter("r") accesskey="r">R</A>
<A href=Javascript:ToonLetter("s") accesskey="s">S</A>
<A href=Javascript:ToonLetter("t") accesskey="t">T</A>
<A href=Javascript:ToonLetter("u") accesskey="u">U</A>
<A href=Javascript:ToonLetter("v") accesskey="v">V</A>
<A href=Javascript:ToonLetter("w") accesskey="w">W</A>
<A href=Javascript:ToonLetter("x") accesskey="x">X</A>
<A href=Javascript:ToonLetter("y") accesskey="y">Y</A>
<A href=Javascript:ToonLetter("z") accesskey="z">Z</A>
</B></P> 
<input type="button" value="Opniew" onClick="opniew()" class="knop">
</form>
</body>
</html>

jeroen65

Legacy Member
volgens mij is er iets mis met MaakMask. Je voegt altijd # toe maar nooit de letters? Of zie ik het mis :s Volgens mij moet je daar de fout zoeken. Ik kan ze niet oplossen want mijn javascript is niet goed. (dus kan het ook zijn dat ik de bal hier compleet mis sla :s)

Jerre Muesli

Legacy Member
ja die maakmask zorgt voor de mask van het te raden woord in de txtbox.
Dus ########## staat er dan bij het te raden woord ipv kippensoep bvb.

btw er is geen fout in het programma hé, ik weet gewoon niet hoe ik moet beginnen aan het tevoorschijn laten komen van de letters!

jeroen65

Legacy Member
Gewoon altijd uwen textbox met mas opnieuw opvullen. Dus als ge de e raadt bij kippesoep (god begint ook niet e :p) komt er ####e##e# te staan. Dus het is gewoon overlopen welke letters er al gevonden zijn en die te zetten. En op de andere plaats een #. Dus het is uwen maakmask uitbruiden die controleert welke letters er getoond moeten worden en waar een #.

Code:
function MaakMask(m)
{
var mask = ""
var woordLengte = m.length
	for (var i = 0; i < woordLengte; i++)
	{
        //als de letter gevonden is
        // mask += "e" (als de letter e is natuurlijk ;)
        // anders dat ander e
	mask += "#"
	}
return mask
}

Snapte? Dus nu moet ge dat wat in javascript gieten e :$

Jerre Muesli

Legacy Member
hehe, nenee da moet zeker nie in de mask + als ik mask += "e" doe dan krijg ik iets van "##########pnseki" ofzo en das ook de bedoeling nie ;)

ma ik denk dak iets moet hebben da .match doet op da woord ofzo en dan de positie opslaagt van die letter om dan de variabele mask te gaan veranderen op die positie. Probleem : .match zoekt alleen het eerste karakter dus als er 2 keer een "e" in voorkomt zou hij er maar 1 tonen. Dus zou ik de eerste "e" van de variabele woord ook moeten veranderen zodat hij de 2de "e" ook kan vinden ofzo .. ?prrt*

zijn hier echt nie een paar goeie coders die mij kunnen helpen ?

sys4096

Legacy Member
PHP:
function MaakMask(m)
{
var mask = ""
var woordLengte = m.length
	for (var i = 0; i < woordLengte; i++)
	{
		letter = m[i];
		if (document.spel.ToonLetters.value.match(letter) == null)
		{
			mask += "#"
		}
		else
		{
			mask += letter;
		}
	}
	return mask
}

en in uw function ToonLetter(letter) achter je win - verlies de laatste lijn toevoegen.

PHP:
/*
/////////////	
WIN - VERLIES
/////////////
*/
// Kijken of je gewonnen hebt
	if ( document.spel.ToonWoord.value.match("#") == null && aantal_fouten < 10 )
	{
		alert("Proficiat, U hebt dit spelgewonnen!!")
	}
// Kijken of je verloren hebt
	else if ( aantal_fouten == 10 )
	{
		alert("Helaas, U hebt verloren.\nHet woord dat je zocht was: " + woord)
	}
	document.spel.ToonWoord.value = MaakMask(woord);

Er is enkel nog een probleempje dat als je het woord volledig hebt gevonden, je nog eens op een knop moet drukken voor zijn euro valt dat je het helemaal hebt. Maar heb er niet achter gezocht. En als je op een letter drukt die je al hebt gehad, toont ie ineens de oplossing :eek: Maar dat los je wel op zeker ?

HTH

diablo_732

Legacy Member
We hebben toch al in de klas gezegd hoe je dat moest doen nico :doh:

Je maakt twee variabelen (arrays) , in de eerste zit je te raden woord en in de tweede zet je initieel enkel een aantal # ( evenveel als het woord natuurlijk).
ADan maakt ge ne print die da tweede woord print.
Alsem dan een letter raadt , kijkt ge in woord 1 of da da voorkomt , zo ja , dan zet ge die letter zichtbaar in woord2 ( maw ge vervangt het # door uw letter) , en ge print uw woord weer af. En zo krijgde toch wa ge wilt :D
En om te controleren of ge het helemaal hebt checkt ge gewoon of er nog een # voorkomt in het tweede woord

As simpel als that :woohoo:
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan