Else if probleem
Voor school moeten wij een lingo spel maken, nu heb ik al het stuk dat hij een woord genereerd die uiteindelijk geraden moet worden, en ik ben nu bezig om een kleur aan te geven (groen voor als de letter goed is, geel als hij wel in het woord zit en rood als hij er helemaal niet in zit.)
Dat heb ik zo gedaan:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
$woorden = array("winkel","spelen"); // woorden die geraden moeten worden in een array zetten
$speel = mt_rand(0,1);
$speelwoord = $woorden[$speel];
echo $speelwoord;
echo "<br></br>";
echo $speelwoord[0] ."<br>";
echo $speelwoord[1] ."<br>";
echo $speelwoord[2] ."<br>";
echo $speelwoord[3] ."<br>";
echo $speelwoord[4] ."<br>";
echo $speelwoord[5] ."<br>";
$letter0 = "w";
$letter1 = "i";
if ($letter0 == $speelwoord[0]){
echo "Groen";
}
elseif ($letter0 == $speelwoord[1] OR $speelwoord[2] OR $speelwoord[3] OR $speelwoord[4] OR $speelwoord[5]){
echo "Geel";
}
else {
echo "Rood";
}
?>
$woorden = array("winkel","spelen"); // woorden die geraden moeten worden in een array zetten
$speel = mt_rand(0,1);
$speelwoord = $woorden[$speel];
echo $speelwoord;
echo "<br></br>";
echo $speelwoord[0] ."<br>";
echo $speelwoord[1] ."<br>";
echo $speelwoord[2] ."<br>";
echo $speelwoord[3] ."<br>";
echo $speelwoord[4] ."<br>";
echo $speelwoord[5] ."<br>";
$letter0 = "w";
$letter1 = "i";
if ($letter0 == $speelwoord[0]){
echo "Groen";
}
elseif ($letter0 == $speelwoord[1] OR $speelwoord[2] OR $speelwoord[3] OR $speelwoord[4] OR $speelwoord[5]){
echo "Geel";
}
else {
echo "Rood";
}
?>
Maar wat ik ook probeer hij blijft altijd op groen of geel staan, rood nooit en dit is fout
Gewijzigd op 13/03/2011 15:14:13 door Timo Kleinhout
Kan je dit niet met substr of explode doen?
Jordi kroon op 13/03/2011 15:18:41:
En jij bent van plan om bij elk woord 6 variabelen te maken?
Kan je dit niet met substr of explode doen?
Kan je dit niet met substr of explode doen?
Dat kan inderdaad! Ik zou even kijken.
Ik kom uit op - onder voorbehoud -:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$woord = 'winkel';
$speelwoord = 'winkel';
$check = array();
for (i = 0; $i < 6; $i++) {
if (($key = array_search($woord[$i],(array) $speelwoord)) !== false) {
if ($woord[$i] == $speelwoord[$i]) {
$speelwoord[$i] = '~';
echo $i.' '.$woord[$i].' => Groen';
}
elseif ($woord[$key] <> $speelwoord[$i] && !in_array($woord[$i],$check)) {
echo $i.' '.$woord[$i].' => Geel';
$check[] = $woord[$i];
}
}
else {
// letter zit niet in woord
echo $i.' '.$woord[$i].' => Rood';
}
}
?>
$woord = 'winkel';
$speelwoord = 'winkel';
$check = array();
for (i = 0; $i < 6; $i++) {
if (($key = array_search($woord[$i],(array) $speelwoord)) !== false) {
if ($woord[$i] == $speelwoord[$i]) {
$speelwoord[$i] = '~';
echo $i.' '.$woord[$i].' => Groen';
}
elseif ($woord[$key] <> $speelwoord[$i] && !in_array($woord[$i],$check)) {
echo $i.' '.$woord[$i].' => Geel';
$check[] = $woord[$i];
}
}
else {
// letter zit niet in woord
echo $i.' '.$woord[$i].' => Rood';
}
}
?>
ik heb zo het idee dat het nog niet helemaal klopt, maar dit is in ieder geval een opzetje
Gewijzigd op 13/03/2011 15:58:59 door Noppes Homeland
er zaten een paar typfoutjes in.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$woord = 'winkel';
$speelwoord = 'winkel';
$check = array();
for ($i = 0; $i < 6; $i++) {
if (($key = array_search($woord[$i],(array) $speelwoord)) !== false) {
if ($woord[$i] == $speelwoord[$i]) {
$speelwoord[$i] = '~';
echo $i.' '.$woord[$i].' => Groen';
}
elseif ($woord[$key] <> $speelwoord[$i] && !in_array($woord[$i],$check)) {
echo $i.' '.$woord[$i].' => Geel';
$check[] = $woord[$i];
}
}
else {
// letter zit niet in woord
echo $i.' '.$woord[$i].' => Rood';
}
}
?>
$woord = 'winkel';
$speelwoord = 'winkel';
$check = array();
for ($i = 0; $i < 6; $i++) {
if (($key = array_search($woord[$i],(array) $speelwoord)) !== false) {
if ($woord[$i] == $speelwoord[$i]) {
$speelwoord[$i] = '~';
echo $i.' '.$woord[$i].' => Groen';
}
elseif ($woord[$key] <> $speelwoord[$i] && !in_array($woord[$i],$check)) {
echo $i.' '.$woord[$i].' => Geel';
$check[] = $woord[$i];
}
}
else {
// letter zit niet in woord
echo $i.' '.$woord[$i].' => Rood';
}
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
$woord = 'wekker';
$speelwoord = 'winkel';
$check = array();
for ($i = 0; $i < 6; $i++) {
if (($key = array_search($woord[$i],str_split($speelwoord))) !== false) {
if ($woord[$i] == $speelwoord[$i]) {
$speelwoord[$i] = '~';
echo $i.' '.$woord[$i].' => Groen :'.$speelwoord[$i].' <br />';
}
elseif ($woord[$key] <> $speelwoord[$key] && !in_array($woord[$i],$check)) {
echo $i.' '.$woord[$i].' => Geel :'.$speelwoord[$i].'<br />';
$check[] = $woord[$i];
}
elseif ($woord[$key] == $speelwoord[$key]) {
echo $i.' '.$woord[$i].' => Rood :'.$speelwoord[$i].'<br />';
}
}
else {
// letter niet in woord
echo $i.' '.$woord[$i].' => Rood :'.$speelwoord[$i].'<br />';
}
}
?>
$woord = 'wekker';
$speelwoord = 'winkel';
$check = array();
for ($i = 0; $i < 6; $i++) {
if (($key = array_search($woord[$i],str_split($speelwoord))) !== false) {
if ($woord[$i] == $speelwoord[$i]) {
$speelwoord[$i] = '~';
echo $i.' '.$woord[$i].' => Groen :'.$speelwoord[$i].' <br />';
}
elseif ($woord[$key] <> $speelwoord[$key] && !in_array($woord[$i],$check)) {
echo $i.' '.$woord[$i].' => Geel :'.$speelwoord[$i].'<br />';
$check[] = $woord[$i];
}
elseif ($woord[$key] == $speelwoord[$key]) {
echo $i.' '.$woord[$i].' => Rood :'.$speelwoord[$i].'<br />';
}
}
else {
// letter niet in woord
echo $i.' '.$woord[$i].' => Rood :'.$speelwoord[$i].'<br />';
}
}
?>
Gewijzigd op 13/03/2011 16:54:49 door Noppes Homeland
Noppes Homeland op 14/03/2011 19:07:58:
en timotje gaat verder in een ander topic
http://www.phphulp.nl/php/forum/topic/ifelse-uitkomst-in-een-variabele-zetten/76939/last/
http://www.phphulp.nl/php/forum/topic/ifelse-uitkomst-in-een-variabele-zetten/76939/last/
Timootje is met dubbele o (en hoofdletter) ;-) net als autootje (A)
ik heb nu deze code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<?php
session_start();
if (isset($_POST['letter0'])) {
$woorden = array("winkel","spelen","vulpen","mobiel","pasjes","harten","smatje","meisje","agenda","tafels","appels"); // woorden die geraden moeten worden in een array zetten
$speel = mt_rand(0,10); //Een willikeurig getal tussen 0 en 10 nemen
$woordmaken = $woorden[$speel]; //Met het gekozen getal een woord kiezen
$raden = $_POST['letter0'] . $_POST['letter1'] . $_POST['letter2'] . $_POST['letter3'] . $_POST['letter4'] . $_POST['letter5']; //Alle ingevoerde letters achter elkaar zetten
$_SESSION['woord'] .= $woordmaken; //Hij onthoud het woord
$_SESSION['speelwoord'] = substr($_SESSION['woord'], 0,6); //Omdat hij steeds een woord kiest laten we alleen 6 letters zien
$woord = $_SESSION['speelwoord']; //Sessie
$array = array("d1","d2","d3","d4","d5","d6"); //Een array die we gaan overschrijven
if ($woord !== $raden){ //Als $woord niet gelijk is aan $raden doe dit
for ($i = 0; $i < 6; $i++){ //Hij gaat elke leter langs en kijkt als die in het woord zit
if ($woord[$i] !== $raden[$i]){
$array[$i] = '<font size=20 color="Red">' . $raden[$i] . '</font>';}
for ($j = 0; $j < 6; $j++){ //Nu gaat hij kijken als de letter wel in het woord zit maar op verkeerde plaats
if ($raden[$i] == $woord[$j]){ //Als dat zo is wordt de letter geel
$array[$i] = '<font size=20 color="Yellow">' . $raden[$i] . '</font>'; //de letter een gele kleur geven
}
}
if ($woord[$i] == $raden[$i]){ //Als $woord is gelijk aan $raden is doe dit
$array[$i] = '<font size=20 color="Green">' . $raden[$i] . '</font>'; //Letter groen maken
}}}
else {
$_SESSION['score'] = 0;
$_SESSION['score'] = $_SESSION['score']+25;
$array = '<font size=20 color="Green">'. $raden . '</font><br>';
echo '<font size=50 color="white">Woord geraden!!</font><br>';
echo $array; //Woord echoën
echo '<a href="lingo3.php"> Klik hier voor het volgende woord </a>';
session_unset($_SESSION['spelverloop']); //Het woord is geraden dus sessie leeg maken
}
//echo $array[0] . $array[1] . $array[2] . $array[3] . $array[4] . $array[5];
$_SESSION['spelverloop'] .= $array[0] . $array[1] . $array[2] . $array[3] . $array[4] . $array[5]."<br>";
echo ($_SESSION['spelverloop']);
// echo '<br></br> Ga <a href="lingo2.html">Terug</a>';
}
else { echo "Voer uw woord in: ";}
echo "Uw score is: " . $_SESSION['score'] . "<br></br>";
?>
<html>
<head>
<link href="style.css" type="text/css" rel="stylesheet">
<script type="text/javascript">
function toUnicode(elmnt,content)
{
if (content.length==elmnt.maxLength)
{
next=elmnt.tabIndex
if (next<document.maxform.elements.length)
{
document.maxform.elements[next].focus()
}
}
}
</script>
<title>LINGO</title>
</head>
<body background="bg.png" >
<form action="lingo3.php" name="maxform" method="post" />
<input type="text" size="1" name="letter0" maxlength="1" tabindex="1" onkeyup="toUnicode(this,this.value)"/>
<input type="text" size="1" name="letter1" maxlength="1" tabindex="2" onkeyup="toUnicode(this,this.value)"/>
<input type="text" size="1" name="letter2" maxlength="1" tabindex="3" onkeyup="toUnicode(this,this.value)"/>
<input type="text" size="1" name="letter3" maxlength="1" tabindex="4" onkeyup="toUnicode(this,this.value)"/>
<input type="text" size="1" name="letter4" maxlength="1" tabindex="5" onkeyup="toUnicode(this,this.value)"/>
<input type="text" size="1" name="letter5" maxlength="1" tabindex="6" onkeyup="toUnicode(this,this.value)"/><br></br>
<input type="submit" value="Kijken" />
</form>
</html>
session_start();
if (isset($_POST['letter0'])) {
$woorden = array("winkel","spelen","vulpen","mobiel","pasjes","harten","smatje","meisje","agenda","tafels","appels"); // woorden die geraden moeten worden in een array zetten
$speel = mt_rand(0,10); //Een willikeurig getal tussen 0 en 10 nemen
$woordmaken = $woorden[$speel]; //Met het gekozen getal een woord kiezen
$raden = $_POST['letter0'] . $_POST['letter1'] . $_POST['letter2'] . $_POST['letter3'] . $_POST['letter4'] . $_POST['letter5']; //Alle ingevoerde letters achter elkaar zetten
$_SESSION['woord'] .= $woordmaken; //Hij onthoud het woord
$_SESSION['speelwoord'] = substr($_SESSION['woord'], 0,6); //Omdat hij steeds een woord kiest laten we alleen 6 letters zien
$woord = $_SESSION['speelwoord']; //Sessie
$array = array("d1","d2","d3","d4","d5","d6"); //Een array die we gaan overschrijven
if ($woord !== $raden){ //Als $woord niet gelijk is aan $raden doe dit
for ($i = 0; $i < 6; $i++){ //Hij gaat elke leter langs en kijkt als die in het woord zit
if ($woord[$i] !== $raden[$i]){
$array[$i] = '<font size=20 color="Red">' . $raden[$i] . '</font>';}
for ($j = 0; $j < 6; $j++){ //Nu gaat hij kijken als de letter wel in het woord zit maar op verkeerde plaats
if ($raden[$i] == $woord[$j]){ //Als dat zo is wordt de letter geel
$array[$i] = '<font size=20 color="Yellow">' . $raden[$i] . '</font>'; //de letter een gele kleur geven
}
}
if ($woord[$i] == $raden[$i]){ //Als $woord is gelijk aan $raden is doe dit
$array[$i] = '<font size=20 color="Green">' . $raden[$i] . '</font>'; //Letter groen maken
}}}
else {
$_SESSION['score'] = 0;
$_SESSION['score'] = $_SESSION['score']+25;
$array = '<font size=20 color="Green">'. $raden . '</font><br>';
echo '<font size=50 color="white">Woord geraden!!</font><br>';
echo $array; //Woord echoën
echo '<a href="lingo3.php"> Klik hier voor het volgende woord </a>';
session_unset($_SESSION['spelverloop']); //Het woord is geraden dus sessie leeg maken
}
//echo $array[0] . $array[1] . $array[2] . $array[3] . $array[4] . $array[5];
$_SESSION['spelverloop'] .= $array[0] . $array[1] . $array[2] . $array[3] . $array[4] . $array[5]."<br>";
echo ($_SESSION['spelverloop']);
// echo '<br></br> Ga <a href="lingo2.html">Terug</a>';
}
else { echo "Voer uw woord in: ";}
echo "Uw score is: " . $_SESSION['score'] . "<br></br>";
?>
<html>
<head>
<link href="style.css" type="text/css" rel="stylesheet">
<script type="text/javascript">
function toUnicode(elmnt,content)
{
if (content.length==elmnt.maxLength)
{
next=elmnt.tabIndex
if (next<document.maxform.elements.length)
{
document.maxform.elements[next].focus()
}
}
}
</script>
<title>LINGO</title>
</head>
<body background="bg.png" >
<form action="lingo3.php" name="maxform" method="post" />
<input type="text" size="1" name="letter0" maxlength="1" tabindex="1" onkeyup="toUnicode(this,this.value)"/>
<input type="text" size="1" name="letter1" maxlength="1" tabindex="2" onkeyup="toUnicode(this,this.value)"/>
<input type="text" size="1" name="letter2" maxlength="1" tabindex="3" onkeyup="toUnicode(this,this.value)"/>
<input type="text" size="1" name="letter3" maxlength="1" tabindex="4" onkeyup="toUnicode(this,this.value)"/>
<input type="text" size="1" name="letter4" maxlength="1" tabindex="5" onkeyup="toUnicode(this,this.value)"/>
<input type="text" size="1" name="letter5" maxlength="1" tabindex="6" onkeyup="toUnicode(this,this.value)"/><br></br>
<input type="submit" value="Kijken" />
</form>
</html>
Nu moet ik nog twee dingetjes...
#1: Hij maakt een letter geel als hij in het woord zit, bv als het woord winkel is en je vult als gok het woord willen in, worden beiden l'en geel, dit moet er maar één zijn.
#2: Er moet een score bij komen, telkens als iemand het woord goed geraden heeft komt er 25 bij, ik heb dit met session gedaan maar het werkt niet, hij blijft steeds score: 0 aan geven.
Hopelijk kan iemand me helpen...
Ik zie niet 1,2,3 hoe de score op 0 komt. Je reset elke keer je score dus je zult eigenlijk elke keer 25 moeten zien.