Scripts

Deal or no Deal

Ook mijn eerste scriptje voor phphulp. Ik hoop dat het een beetje in de smaak valt. Het script zelf gebruikt mysql en het spel kan je zelf aanpassen met meer/minder bedragen en hoger/lagere bedragen dankzei een array. En is ook makkelijk om in te bouwen. Het layout is erg simpel en moet door de gebruiker zelf moeten worden aangepast naar zijn of haar wensen. commentaar is welkom. En ben erg benieuwd wat jullie ervan vinden.

deal-or-no-deal
[code]
CREATE TABLE `game` (
  `id` int(4) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `lastoffer` varchar(20) NOT NULL,
  `done` varchar(10) NOT NULL DEFAULT 'false',
  `random` longtext NOT NULL,
  `turn` int(4) NOT NULL DEFAULT '0',
  `casename` varchar(30) NOT NULL,
  `chosen` longtext NOT NULL,
  `sessieid` longtext NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
[/code]

[code]
<?php

if(!session_start()){
echo "Sessions are required!";
exit;
}
// naam van dit bestand
$page = $_SERVER['PHP_SELF'];
// Naam voor persoon dit kan je via een sessie of via een cookie linken
$username = $_SERVER['REMOTE_ADDR'];
// De getallen die meedoen er kunnen zo veel mogelijk worden gemaakt met een minimaal van 2 getallen 
$getallen = array('1', '5', '10','20','50', '100', '200', '300', '400', '500'
'1000', '5000', '10000', '20000', '30000','40000', '50000', '100000', '125000', '250000');
//Bij welke beurten moet de 'bank' een bod doen, na het laatste getal gaat om de beurt een bod ook dit kan oneindig
$bod = array('6','9','12','15','18'); 
// naam van de tabel waar de game zich in bevind
$tablename = 'game';
// Titel bestand
$title = 'Deal or no Deal';
// Wil je dat alles bewaart blijft, of alles word naderhand verwijdert.
// TRUE = JA en FALSE = NEE
$destroy = true; 
// de code
echo"
    <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"
            \"http://www.w3.org/TR/html4/loose.dtd\">
<html>
<head>
<title>".$title."</title>
<style type='text/css'>
input{
background-color:white;
border:1px solid black;
}
div{
font-family:verdana;
}
table.list{
border:1px solid black;
width:100px;
text-align: center;
}
td.open{
background-color:lightgrey;
}
.kop{
text-align:center;
}
</style>
</head>
<body>
<form method='post' action='".$page."'> ";
// koffer openen
$db_user = "root"; // Gebruiker voor MySQL
$db_pass = ""; // Wachtwoord voor MySQL
$db_host = "localhost"; // Host voor MySQL; standaard localhost
$db_db ="game"; // Database
mysql_connect($db_host,$db_user,$db_pass) or die(mysql_error());
mysql_select_db($db_db) or die(mysql_error());

//kleine extra's

function injection($value) {
		if (get_magic_quotes_gpc()) {
			$value = stripslashes($value);
		}
		if(version_compare(phpversion(),"4.3.0") == "-1") {
			return mysql_escape_string($value);
		} else {
			return mysql_real_escape_string($value);
		}
}
function errormsg($msg){
	$page = $_SERVER['PHP_SELF'];
	echo "<center><fieldset style='width:25%;text-align:center;font-family:Verdana; font-size:12px;'><legend style='color: red;'><b>Error</b></legend>".$msg."<br><br><a href=''>Klik hier om terug te gaan</a></fieldset></center>";
	exit;
}

$sql = "SELECT * FROM ".$tablename." WHERE name='".$username."' AND done='false' AND sessieid='".session_id()."'";
if(!$query = mysql_query($sql)){
    trigger_errormsg(errormsg('Er is iets fout gegaan met het lezen van de game die mischien wel aan de gang is.'));
}
$max = count($getallen);
    if(mysql_fetch_row($query) == 0){
    // als er geen spel die aan de gang is moet worden gekeken of er nog een spel was of moet worden aangemaakt.
        $sql = "SELECT * FROM ".$tablename." WHERE name='".$username."' AND done='false'";
        if(!$query = mysql_query($sql)){
            trigger_errormsg(errormsg('Er is iets fout gegaan!'));
        }        
            if(mysql_fetch_row($query) != 0){
            // Wanneer er een spel is waar je middenin bent uitgegaan
                echo"<div  align=center><b>Je hebt je vorige game niet afgemaakt!</b><br><br>";
                    if($destroy == true){
                        $sql = "DELETE FROM ".$tablename." WHERE name='".$username."' AND done='false'";
                    }else{      
                        $sql = "UPDATE ".$tablename." SET done='true' WHERE name='".$username."' AND done='false'";
                    }
                    if(mysql_query($sql)){
                        echo"<input type='submit' name='start' value='Opnieuw' />";
                    }else{
                        errormsg("Er is een probleem met het maken van een nieuwe game.");
                    }
                echo"</div></form></body></html>";
                exit;
            }else{
            if(isset($_POST['play'])){
            //wanneer er geen spel is.
            shuffle($getallen);
            $randomsuits = '';
                foreach($getallen as $element) {
                    $randomsuits .= $element.' ';
                }
            $sql = "INSERT INTO ".$tablename." (name,random,sessieid)VALUES('".$username."','".$randomsuits."','".session_id()."')";
                if(mysql_query($sql)){
                    header('location: '.$page.'');
                }else{
                    errormsg("Er is iets fout gegaan");
                }
            }
            echo"<form method='post' action='".$page."'><div align=center><input type='submit' name='play' value='speel Deal or no Deal'></form></div>";
            exit;
            }
            }
    else
    {
    //wanneer er een spel is word alles voorbereid.
        $sqlgame = "SELECT * FROM ".$tablename." WHERE name='".$username."' AND done='false' AND sessieid='".session_id()."'";
            if(!$query = mysql_query($sqlgame)){
                trigger_errormsg(errormsg('Er is iets fout gegaan.'));
            }       
        $fetch = mysql_fetch_object($query);    
    }
// de koffer die moet worden opengemaakt
    if(isset($_POST['koffer'])){
        $id = injection($_POST['koffer']);
            if(is_numeric($id) AND $id <= $max AND $id >= '0' AND $fetch->casename != $id){
                    $boem = explode(' ',$fetch->random);
                    $boemchosen = explode(' ',$fetch->chosen);
                    $id--;
                        if(array_search($boem[$id], $boemchosen) != NULL){
                        // betekent dat er een koffer al was opengemaakt of niet bestaat.
                        header('location: '.$page.'');
                        exit;
                        }else{
                        $chosen = $fetch->chosen.' '.$boem[$id];
                        $sql = "UPDATE ".$tablename." SET chosen='".$chosen."',turn=turn+1 WHERE name='".$username."' AND done='false' ";
                            if(mysql_query($sql)){
                                $koffernummer = $id+1;
                                $euro = "&euro;".number_format($boem[$id], 0, '.', '.');
                                echo "<div align='center' style='background-color:white; font-family:Tahoma;'>In koffer ".$koffernummer." zat het bedrag van ".$euro."!</div><br>";
                            }
                            else
                            {
                                errormsg("Er is iets fout gegaan!");
                            }
                        }
                }else{
                header('location: '.$page.'');
                }
}
// Wanneer de gebruiker akkoord gaat met de deal van de bank
elseif(isset($_POST['deal']))
        {
    if(in_array($fetch->turn,$bod) OR $fetch->turn >= end($bod)){
    $euro = "&euro;".number_format($fetch->lastoffer, 0, '.', '.');
   
            if($destroy == true){
                    $sql = "DELETE FROM ".$tablename." WHERE name='".$username."'";
                }else{      
                    $sql = "UPDATE ".$tablename." SET done='true' WHERE name='".$username."'";
                }
        if(mysql_query($sql)){
		 $boem = explode(' ',$fetch->random);
         $euro2 = "&euro;".number_format($boem[$fetch->casename], 0, '.', '.');

            echo"<div class=tekst  align=center><b>Je hebt de koffer ".$fetch->casename." succesvol verkocht aan de bank voor: ".$euro."</b><br>
            <b>Als je niet akkoord was gegaan was je koffer: ".$euro2." waard!</b>
			<br>
            <br>
            <input type='submit' name='start' value='Opnieuw spelen!'>
            </div>";
            exit;
        }else{errormsg("Er is iets fout gegaan!");}
    }else{header('location: '.$page.'');}
// koffer kiezen

}
// De koffer die de gebruikers kiest.
elseif(isset($_POST['koffernieuw']))
{
$id = injection($_POST['koffernieuw']);
    if(is_numeric($id) AND $id <= $max AND !ereg(' ',$id)){
        if(empty($fetch->casename)){
                $sql = "UPDATE ".$tablename." SET casename='".$id."' WHERE name='".$username."'";
                if(mysql_query($sql))
                    {
                        echo"<center>U heeft gekozen voor nummer ".$id."<br>
                        u word nu doorgewezen</center>
                        <meta http-equiv='refresh' content='1;url=".$page."'>";
                        exit;
                    }else{
                    errormsg("Er is iets fout gegaan.");
                    }
        }else{
            header('location: '.$page.'');
        }
    }else{
    errormsg("Ongeldige koffer");
    }
}
    
if(!$fetch->casename){
    echo"<center><div class=tekst  style='width:50%'><h1 class='kop'>Kies een koffer</h1><br>";
    echo"<table width='20%' align='center' style='text-align:center;'>";
        for($i=0;$i < $max;$i++){
            $b = $i+1;
            $links = $i+1;
            $rechts = $b+1;
            echo"<tr><td> <input type='submit' name='koffernieuw' value='".$links."' style='width:100px;'> </td><td> <input style='width:100px;' name=koffernieuw type='submit' value='".$rechts."'> </td></tr>";
            $i = $b++;
        }
    echo"</table></div></center>";
}elseif(!empty($fetch->random) AND !empty($fetch->casename) AND $fetch->done == 'false'){

        if(!$query = mysql_query($sqlgame)){
            trigger_errormsg(errormsg('Er is iets fout gegaan.'));
        }
    $fetch = mysql_fetch_object($query);
    echo"<center><div class=tekst  style='width:50%; text-align:center;'>";
    $boem = explode(' ',$fetch->random);
    $boemchosen = explode(' ',$fetch->chosen);
    $max = count($boem);
    $need = $max - count($boemchosen);
    $euro = "&euro;".number_format($boem[($fetch->casename-1)], 0, '.', '.');
        if($need <= 1){
            echo" Je koffer was: ".$euro." waard!<br>
            <input type='submit' name='start' value='Opnieuw spelen!'>'";
                if($destroy == true){
                    $sql = "DELETE FROM ".$tablename." WHERE name='".$username."'";
                }else{      
                    $sql = "UPDATE ".$tablename." SET done='true' WHERE name='".$username."'";
                }
                
                if(!mysql_query($sql)){
                    errormsg("Er is iets fout gegaan bij het voltooien van deze ".$tablename."!");
                }
            exit;
        }
    echo" <table valign=top align=left  style='text-align:center;'>";
        
        for($i=0;$i < $max;$i++){
        $b = $i+1;

        $links = $i+1;
        $rechts = $b+1;
        echo"<tr>";

		// 1e rij
            if($links < $max){
                if($links != $fetch->casename){
                    if(array_search($boem[$i], $boemchosen) != NULL)
                        {
                            echo"<td> <input type='button'  value='".$links."' style='width:100px; background-color:lightgrey;'> </td>";
                        }
                        else
                        {echo "<td><input type='submit' name='koffer' value='".$links."' style='width:100px;'> </td>";}
                    }
                    else
                    {echo"<td><input style='width:100px;' value='Mijn koffer: ".$links."' type='button'></td>";}
            }
		// 2e rij
            if($rechts < $max){
                if($rechts != $fetch->casename){
                    if(array_search($boem[$b], $boemchosen) != NULL)
                    {
                        echo"<td> <input type='button'  value='".$rechts."' style='width:100px; background-color:lightgrey;'> </td>";
                    }else
                    {echo "<td> <input type='submit' name='koffer' value='".$rechts."' style='width:100px;'> </td>";}
                }else{echo"<td><input style='width:100px;' value='Mijn koffer: ".$rechts."' type='button' ></td>";}
            echo"</tr>";
            $i = $b++;
            }

        }
    echo"</table>
    <table valign='top' align='center'><tr><td>";
    $end = floor($max/2);
    echo"<table valign='top' class='list'>";

        for($i=0;$i < $max-1;$i++){
            if($i == $end){
                echo"</table></td><td align=center><table class=list valign=top>";
            }
        $getal = "&euro;".number_format($getallen[$i], 0, '.', '.');
            if(array_search($getallen[$i], $boemchosen) != NULL)
                {
                    echo"<tr><td class='open'><s>".$getal."</s></td></tr>";
                }
                else
                {
                echo"<tr><td>".$getal."</td></tr>";
                }
        }

        echo"
        </table></td></tr></table>";
        if(in_array($fetch->turn,$bod) OR $fetch->turn >= end($bod)){
            $koffers = count($boem)-count($boemchosen);
            $open = array_sum($boemchosen);
            $totaal = array_sum($getallen);
            $ans = floor(($totaal-$open)/($koffers));
            
                if($fetch->lastoffer != $ans){
                    $sql = "UPDATE ".$tablename." SET lastoffer='".$ans."' WHERE name='".$username."'";
                        if(!mysql_query($sql)){
                            errormsg("Er is iets fout gegaan");
                            exit;
                        }
                }
                if($fetch->turn < end($bod) AND array_search($fetch->turn, $bod)){
                    $key = array_search($fetch->turn, $bod);
                    $new = $key+1;
                    $is = array_search($bod[$new], $bod);
                    $num = $bod[$is]-$bod[$key];
                }else{
                $num = 1;
                }
            echo"<br><h3>De bank biedt: &euro; ".number_format($ans, 0, '.', '.')." voor je koffer</h3>
            Als je verder gaat moet je nog ".$num." koffer(ers) openmaken!<br>
            <form method=post><input type='submit' name='deal' value='DEAL'></form>";
        }
        
    echo"
    </div></center>";
    }
echo"</form></body></html>";
?> 
[/code]

Reacties

0
Nog geen reacties.