Hét vraag- en antwoordplatform van Nederland

Wat is er fout aan mijn boter, kaas en eieren javascript?

Bij gelijkspel moet de computer een random vakje leegmaken, daarna gaat het spel door totdat er een winnaar is. Ik heb nu dit:

function drawCheck()
{
vari()
moveCount = sqr1T + sqr2T + sqr3T + sqr4T + sqr5T + sqr6T + sqr7T + sqr8T + sqr9T
if(moveCount == 9)
{
var random = Math.floor(Math.random() * 9) + 1
if(random == 1) {
sqr1T = 0
} else if(random == 2) {
sqr2T = 0
} else if(random == 3) {
sqr3T = 0
} else if(random == 4) {
sqr4T = 0
} else if(random == 5) {
sqr5T = 0
} else if(random == 6) {
sqr6T = 0
} else if(random == 7) {
sqr7T = 0
} else if(random == 8) {
sqr8T = 0
} else if(random == 9) {
sqr9T = 0
}
}

Maar de computer maakt geen vakje leeg bij gelijkspel..
Ook heb ik een start button gemaakt. Deze werkt ook, maar het spel mag pas verschijnen als er op de button is geklikt. Weet iemand welke code ik moet toevoegen?






Kan iemand mij helpen?

Verwijderde gebruiker
10 jaar geleden
1.4K
gvrox
10 jaar geleden
Teken je het veld wel opnieuw nadat je een vakje op 0 hebt gezet ?
Verwijderde gebruiker
10 jaar geleden
Dat is wel de bedoeling, maar ik weet niet welke code ik daarvoor moet gebruiken.
gvrox
10 jaar geleden
Hoe wordt het veld in eerste instantie dan opgebouwd ?
Verwijderde gebruiker
10 jaar geleden
var hokje1
var hokje2
var hokje3
var hokje4
var hokje5
var hokje6
var hokje7
var hokje8
var hokje9
var sqr1T = 0
var sqr2T = 0
var sqr3T = 0
var sqr4T = 0
var sqr5T = 0
var sqr6T = 0
var sqr7T = 0
var sqr8T = 0
var sqr9T = 0
var moveCount = 0
var turn = 0
var mode = 1 function vari()
{
sqr1 = document.tic.sqr1.value
sqr2 = document.tic.sqr2.value
sqr3 = document.tic.sqr3.value
sqr4 = document.tic.sqr4.value
sqr5 = document.tic.sqr5.value
sqr6 = document.tic.sqr6.value
sqr7 = document.tic.sqr7.value
sqr8 = document.tic.sqr8.value
sqr9 = document.tic.sqr9.value
}
gvrox
10 jaar geleden
Ik denk dat je eerst maar eens moet leren wat arrays zijn. Bovendien zie ik in "vari" dat sqr1 tm sqr9 gezet worden, maar de rest van de code heeft het over sqr1T tm sqr9T . Ik zie ook maar weinig ; tussen de statements.
Verwijderde gebruiker
10 jaar geleden
Ja, maar weet u de oplossing en/of de code die ik moet toevoegen bij de start button?

Heb je meer informatie nodig om de vraag te beantwoorden? Reageer dan hier.

Antwoorden (1)

Het grootste probleem is dat er in het document dat je ziet niks veranderd wordt. Je kunt wel sqr5T op 0 zetten maar dan wordt vakje 5 niet leeg; de browser weet dus niet wat ie moet doen.

Toegevoegd na 28 minuten:
Blijkbaar heb je de code hier vandaan: http://www.javascriptkit.com/script/script2/tactoe.shtml

Het is nogal ondoorzichtige code, geen beginnen aan om dat mooi aan te passen.

Toegevoegd na 42 minuten:
En wat je wil is weinig zinvol, 1 vakje leegmaken wil zeggen dat dat vakje gevuld zal worden door degene die de beurt heeft. Je kunt dus net zo goed random een winnaar aanwijzen in geval van gelijkspel.

Toegevoegd na 11 uur:
Om het veld te veranderen zul je code als

document.tic.sqr3.value = " O "

moeten gebruiken. Verder lijkt het erop alsof je op sommige plaatsen sqr1 door hokje1 hebt vervangen, maar niet consequent.
(Lees meer...)
gvrox
10 jaar geleden
Verwijderde gebruiker
10 jaar geleden
Ja klopt het is ook niet volgens de gebruikelijke regels, maar dit is nu eenmaal de opdracht.
gvrox
10 jaar geleden
Opdracht ?
Verwijderde gebruiker
10 jaar geleden
Huiswerk??

Weet jij het beter..?

Het is niet mogelijk om je eigen vraag te beantwoorden Je mag slechts 1 keer antwoord geven op een vraag Je hebt vandaag al antwoorden gegeven. Morgen mag je opnieuw maximaal antwoorden geven.

0 / 5000
Gekozen afbeelding