Scripts
Spelletje: lights out
In dit spelletje moet je alle lichtjes uitkrijgen door op de vakjes te klikken. Alles is te veranderen zoals de layout van het veld, ook zijn er levels toe te voegen door in het bestand light.games.php er extra arrays bij te zetten, je kan dan zelfs grotere velden maken dan 5x5. Het spel kan je op je site zetten door het bestand lights.php te includen (zorg wel dat lights.games.php dan in de goede map staat) en dan game(); erna neer te zetten, dit start de game.
spelletje-lights-out
//------------ lights.php ------------\\
<?php
session_start();
class lights_out{
var $int_level = 1;
var $field = array();
var $moves = '0';
//in deze functie word het veld geladen uit het bestand lights.games.php
function lights_out(){
include('lights.games.php');
list($this->int_level) = func_get_args();
if(isset($game[$this->int_level])){
$this->field = $game[$this->int_level];
$this->show_field();
}
else{
$this->int_level = 1;
$this->field = $game[1];
$this->show_field();
}
}
function reset_game(){
$this->moves = 0;
$this->lights_out($this->int_level);
}
//laad een nieuw spel
function load_new_game(){
list($mode,$nr) = func_get_args();
switch($mode){
case 'NEW':
include('lights.games.php');
if(isset($game[$nr])){
$this->int_level = $nr;
$this->field = $game[$this->int_level];
$this->show_field();
}
else{
echo 'deze game bestaat niet';
}
break;
case 'NEXT':
default:
include('lights.games.php');
if(isset($game[$this->int_level+1])){
$this->int_level++;
$this->field = $game[$this->int_level];
$this->show_field();
}
else{
//text die weergegeven word als er geen volgende game is en het spel dus uitgespeeld is
echo 'je hebt het spel uitgespeeld<br><br>';
echo '<a href="?id=NEW">start opnieuw</a>';
}
break;
}
}
//laat het veld zien
function show_field(){
echo 'level: '.$this->int_level;
echo '<table>';
foreach($this->field as $row_nr => $row){
echo '<tr>';
foreach($row as $col_nr => $value){
if($value == 1){
$color = '#888888'; //kleur vakje met het "licht aan"
$color_mouseover = '#dddddd'; //kleur vakje met het "licht aan" als de muis erover heen gaat
}
else{
$color = '#ffffff'; //kleur vakje met het "licht uit"
$color_mouseover = '#dddddd'; //kleur vakje met het "licht uit" als de muis erover heen gaat
}
echo '<td style="background-color:'.$color.';border:1px solid #000000;" onclick="location.href=\'?id='.$row_nr.'_'.$col_nr.'&sid='.serialize($this).'\'" onMouseOver="this.style.backgroundColor=\''.$color_mouseover.'\'; this.style.cursor=\'hand\'" onMouseOut="this.style.backgroundColor=\''.$color.'\'"><a href="?id='.$row_nr.'_'.$col_nr.'" style="text-decoration:none;"> </a>';
}
}
echo '</table>moves: '.$this->moves.'<br>';
echo '<a href="?id=RESET">reset</a>';
}
//klap de waarde van een vakje om;
function c_v($id){
if($id == 1){
$return = 0;
}
elseif($id == 0){
$return = 1;
}
else{
$return = 1;
}
return $return;
}
//verander waardes van de vakjes rondom het aangeklikte vakje
function change($id){
$this->moves++;
list($row,$col) = explode('_',$id);
if(isset($this->field[$row][$col])){
$this->field[$row][$col] = $this->c_v($this->field[$row][$col]);
}
if(isset($this->field[$row][$col-1])){
$this->field[$row][$col-1] = $this->c_v($this->field[$row][$col-1]);
}
if(isset($this->field[$row][$col+1])){
$this->field[$row][$col+1] = $this->c_v($this->field[$row][$col+1]);
}
if(isset($this->field[$row-1][$col])){
$this->field[$row-1][$col] = $this->c_v($this->field[$row-1][$col]);
}
if(isset($this->field[$row+1][$col])){
$this->field[$row+1][$col] = $this->c_v($this->field[$row+1][$col]);
}
//in deze loop word gekeken of er ergens nog een "lampje brand"
foreach($this->field as $field){
if(in_array('1',$field)){
$light = 1;
}
}
if($light == 1){
$this->show_field();
}
else{
//text die weergegeven word als een level gehaald is
echo 'level gehaald in <b>'.$this->moves.'</b> moves<br><br>';
echo '<a href="?id=NEXT">volgende level</a>';
$this->moves = 0;
}
}
}
function game(){
$nr = 1;
list($nr) = func_get_args();
if(!isset($_GET['id'])){
$game = new lights_out($nr);
$_SESSION['game'] = serialize($game);
}
elseif($_GET['id'] == 'RESET'){
$game = unserialize($_SESSION['game']);
$game->reset_game();
$_SESSION['game'] = serialize($game);
}
elseif($_GET['id'] == 'NEXT'){
$game = unserialize($_SESSION['game']);
$game->load_new_game('NEXT');
$_SESSION['game'] = serialize($game);
}
elseif($_GET['id'] == 'NEW'){
$game = unserialize($_SESSION['game']);
$game->load_new_game('NEW',1);
$_SESSION['game'] = serialize($game);
}
else{
$game = unserialize($_SESSION['game']);
$game->change($_GET['id']);
$_SESSION['game'] = serialize($game);
}
}
?>
//------------ lights.games.php ------------\\
<?php
$game[1] = array(
1 => array( 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0 ),
2 => array( 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0 ),
3 => array( 1 => 1, 2 => 0, 3 => 1, 4 => 0, 5 => 1 ),
4 => array( 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0 ),
5 => array( 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0 )
);
$game[2] = array(
1 => array( 1 => 1, 2 => 0, 3 => 1, 4 => 0, 5 => 1 ),
2 => array( 1 => 1, 2 => 0, 3 => 1, 4 => 0, 5 => 1 ),
3 => array( 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0 ),
4 => array( 1 => 1, 2 => 0, 3 => 1, 4 => 0, 5 => 1 ),
5 => array( 1 => 1, 2 => 0, 3 => 1, 4 => 0, 5 => 1 )
);
$game[3] = array(
1 => array( 1 => 0, 2 => 1, 3 => 0, 4 => 1, 5 => 0 ),
2 => array( 1 => 1, 2 => 1, 3 => 0, 4 => 1, 5 => 1 ),
3 => array( 1 => 1, 2 => 1, 3 => 0, 4 => 1, 5 => 1 ),
4 => array( 1 => 1, 2 => 1, 3 => 0, 4 => 1, 5 => 1 ),
5 => array( 1 => 0, 2 => 1, 3 => 0, 4 => 1, 5 => 0 )
);
$game[4] = array(
1 => array( 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0 ),
2 => array( 1 => 1, 2 => 1, 3 => 0, 4 => 1, 5 => 1 ),
3 => array( 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0 ),
4 => array( 1 => 1, 2 => 0, 3 => 0, 4 => 0, 5 => 1 ),
5 => array( 1 => 1, 2 => 1, 3 => 0, 4 => 1, 5 => 1 )
);
$game[5] = array(
1 => array( 1 => 1, 2 => 1, 3 => 1, 4 => 1, 5 => 0 ),
2 => array( 1 => 1, 2 => 1, 3 => 1, 4 => 0, 5 => 1 ),
3 => array( 1 => 1, 2 => 1, 3 => 1, 4 => 0, 5 => 1 ),
4 => array( 1 => 0, 2 => 0, 3 => 0, 4 => 1, 5 => 1 ),
5 => array( 1 => 1, 2 => 1, 3 => 0, 4 => 1, 5 => 1 )
);
$game[6] = array(
1 => array( 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0 ),
2 => array( 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0 ),
3 => array( 1 => 1, 2 => 0, 3 => 1, 4 => 0, 5 => 1 ),
4 => array( 1 => 1, 2 => 0, 3 => 1, 4 => 0, 5 => 1 ),
5 => array( 1 => 0, 2 => 1, 3 => 1, 4 => 1, 5 => 0 )
);
$game[7] = array(
1 => array( 1 => 1, 2 => 1, 3 => 1, 4 => 1, 5 => 0 ),
2 => array( 1 => 1, 2 => 0, 3 => 0, 4 => 0, 5 => 1 ),
3 => array( 1 => 1, 2 => 0, 3 => 0, 4 => 0, 5 => 1 ),
4 => array( 1 => 1, 2 => 0, 3 => 0, 4 => 0, 5 => 1 ),
5 => array( 1 => 1, 2 => 1, 3 => 1, 4 => 1, 5 => 0 )
);
$game[8] = array(
1 => array( 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0 ),
2 => array( 1 => 0, 2 => 0, 3 => 1, 4 => 0, 5 => 0 ),
3 => array( 1 => 0, 2 => 1, 3 => 0, 4 => 1, 5 => 0 ),
4 => array( 1 => 1, 2 => 0, 3 => 1, 4 => 0, 5 => 1 ),
5 => array( 1 => 0, 2 => 1, 3 => 0, 4 => 1, 5 => 0 )
);
$game[9] = array(
1 => array( 1 => 0, 2 => 1, 3 => 0, 4 => 1, 5 => 0 ),
2 => array( 1 => 1, 2 => 1, 3 => 1, 4 => 1, 5 => 1 ),
3 => array( 1 => 0, 2 => 1, 3 => 1, 4 => 1, 5 => 0 ),
4 => array( 1 => 0, 2 => 1, 3 => 0, 4 => 1, 5 => 1 ),
5 => array( 1 => 1, 2 => 1, 3 => 1, 4 => 0, 5 => 0 )
);
$game[10] = array(
1 => array( 1 => 0, 2 => 1, 3 => 1, 4 => 1, 5 => 0 ),
2 => array( 1 => 0, 2 => 1, 3 => 1, 4 => 1, 5 => 0 ),
3 => array( 1 => 0, 2 => 1, 3 => 1, 4 => 1, 5 => 0 ),
4 => array( 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0 ),
5 => array( 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0 )
);
$game[11] = array(
1 => array( 1 => 1, 2 => 0, 3 => 1, 4 => 0, 5 => 1 ),
2 => array( 1 => 1, 2 => 0, 3 => 1, 4 => 0, 5 => 1 ),
3 => array( 1 => 1, 2 => 0, 3 => 1, 4 => 0, 5 => 1 ),
4 => array( 1 => 1, 2 => 0, 3 => 1, 4 => 0, 5 => 1 ),
5 => array( 1 => 0, 2 => 1, 3 => 1, 4 => 1, 5 => 0 )
);
$game[12] = array(
1 => array( 1 => 1, 2 => 1, 3 => 1, 4 => 1, 5 => 1 ),
2 => array( 1 => 0, 2 => 1, 3 => 0, 4 => 1, 5 => 0 ),
3 => array( 1 => 1, 2 => 1, 3 => 0, 4 => 1, 5 => 1 ),
4 => array( 1 => 0, 2 => 1, 3 => 1, 4 => 1, 5 => 0 ),
5 => array( 1 => 0, 2 => 1, 3 => 0, 4 => 1, 5 => 0 )
);
$game[13] = array(
1 => array( 1 => 0, 2 => 0, 3 => 0, 4 => 1, 5 => 0 ),
2 => array( 1 => 0, 2 => 0, 3 => 1, 4 => 0, 5 => 1 ),
3 => array( 1 => 0, 2 => 1, 3 => 0, 4 => 1, 5 => 0 ),
4 => array( 1 => 1, 2 => 0, 3 => 1, 4 => 0, 5 => 0 ),
5 => array( 1 => 0, 2 => 1, 3 => 0, 4 => 0, 5 => 0 )
);
$game[14] = array(
1 => array( 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0 ),
2 => array( 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0 ),
3 => array( 1 => 0, 2 => 1, 3 => 0, 4 => 0, 5 => 0 ),
4 => array( 1 => 0, 2 => 1, 3 => 0, 4 => 0, 5 => 0 ),
5 => array( 1 => 0, 2 => 1, 3 => 0, 4 => 0, 5 => 0 )
);
$game[15] = array(
1 => array( 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0 ),
2 => array( 1 => 0, 2 => 1, 3 => 0, 4 => 0, 5 => 0 ),
3 => array( 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0 ),
4 => array( 1 => 0, 2 => 1, 3 => 0, 4 => 0, 5 => 0 ),
5 => array( 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0 )
);
/*lege game
$game[] = array(
1 => array( 1 => , 2 => , 3 => , 4 => , 5 => ),
2 => array( 1 => , 2 => , 3 => , 4 => , 5 => ),
3 => array( 1 => , 2 => , 3 => , 4 => , 5 => ),
4 => array( 1 => , 2 => , 3 => , 4 => , 5 => ),
5 => array( 1 => , 2 => , 3 => , 4 => , 5 => )
);
*/
?>
Reacties
0