Bonjour a tous,

Je rencontre un soucis un peu bizarre sur l'un de mes scripts, les valeurs retournées fonctionnent....mais pas toujours !
Voici un exemple de résultat retourné par le script qui ne "colle" pas :

================================
Paul est a 1 ordonnee et est a 3 abcisse
Jean est a 1 ordonnee et est a 3 abcisse

interaction entre les objets
Rien de special
interaction avec la carte
Jean se gele Il fait froid ici, une tempete de glace

==================
Alors que la tempete de glace est en 1,1...

voici mon main.php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
<?php
//inclure les classes dans le fichier
include('colon.class.php');
include('case_de_jeu.class.php');
 
$Jean = new colon("Jean",rand(1,3),rand(1,3));
$Paul = new colon("Paul",rand(1,3),rand(1,3));
 
$blizard = new case_de_jeu("Il fait froid ici, une tempete de glace",1,1);
$desert = new case_de_jeu("Il fait trop chaud ici c'est un desert",3,3);
 
echo "".$Paul->getcolon_nom()." est a ".$Paul->getcolon_y()." ordonnee et est a ".$Paul->getcolon_x()." abcisse <br />";
echo "".$Jean->getcolon_nom()." est a ".$Jean->getcolon_y()." ordonnee et est a ".$Paul->getcolon_x()." abcisse <br /><br />";
 
echo '<b>interaction entre les objets</b><br>';
if ($Paul->getcolon_y()=== $Jean->getcolon_y() && $Paul->getcolon_x()=== $Jean->getcolon_x())
{echo "".$Paul->getcolon_nom()." croise ".$Jean->getcolon_nom()." <br />";}
else
{
echo 'Rien de special<br>';
}
 
echo '<b>interaction avec la carte</b><br>';
if ($Paul->getcolon_y() === $blizard->getcase_y() && $Paul->getcolon_x()=== $blizard->getcase_x())
{echo "".$Paul->getcolon_nom()." se gele ".$blizard->getcase_nom()." <br />";}
 
if ($Paul->getcolon_y() === $desert->getcase_y() && $Paul->getcolon_x()=== $desert->getcase_x())
{echo "".$Paul->getcolon_nom()." a trop chaud ".$desert->getcase_nom()." <br />";}
 
if ($Jean->getcolon_y() === $blizard->getcase_y() && $Jean->getcolon_x()=== $blizard->getcase_x())
{echo "".$Jean->getcolon_nom()." se gele ".$blizard->getcase_nom()." <br />";}
 
if ($Jean->getcolon_y() === $desert->getcase_y() && $Jean->getcolon_x()=== $desert->getcase_x())
{echo "".$Jean->getcolon_nom()." a trop chaud ".$desert->getcase_nom()." <br />";}
 
?>
Le fichier case_de_jeu.class.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
<?php
 
class case_de_jeu
{
 
public $case_nom = "";
public $case_x = "";
public $case_y = "";
// le constructeur
public function __construct ($case_nom, $case_x, $case_y)
{
 
$this->case_nom= $case_nom; $this->case_x= $case_x; $this->case_y= $case_y;
 
}
//accesseurs
 
public function getcase_nom() { return $this->case_nom; }
public function getcase_x() { return $this->case_x; }
public function getcase_y() { return $this->case_y; }
 
public function setcase_nom() { return $this->case_nom =$case_nom; }
public function setcase_x() { return $this->case_x =$case_x; }
public function setcase_y() { return $this->case_y =$case_y; }
 
// méthodes
/* public function perdreforce()
{ $this->force = $this->force - 1; } */
 
 
// public function deplacement_aleatoire(case_de_jeu $case)
// {
// $case->case_x = $case->case_x+1;
// }
 
// public function bagarre_case(case $case_frappé, $case_frappeur)
// {$case->case_x = $case_frappé->force - 1;
// $case_frappeur->moral = $case_frappeur->moral + 1;
// }
 
// public function prendre_potion_force(case $case1)
// {
// $this->force = $this->force + 1;
// echo "gloup gloup gloup";
 
// }
 
}
 
 
?>
Le fichier colon.class.php :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
<?php
 
class colon
{
 
public $colon_nom = "";
public $colon_x = "";
public $colon_y = "";
// le constructeur
public function __construct ($colon_nom, $colon_x, $colon_y)
{
 
$this->colon_nom= $colon_nom; $this->colon_x= $colon_x; $this->colon_y= $colon_y;
 
}
//accesseurs
 
public function getcolon_nom() { return $this->colon_nom; }
public function getcolon_x() { return $this->colon_x; }
public function getcolon_y() { return $this->colon_y; }
 
public function setcolon_nom() { return $this->colon_nom =$colon_nom; }
public function setcolon_x() { return $this->colon_x =$colon_x; }
public function setcolon_y() { return $this->colon_y =$colon_y; }
 
// méthodes
/* public function perdreforce()
{ $this->force = $this->force - 1; } */
 
 
public function deplacement_aleatoire(colon $colon)
{
$colon->colon_x = $colon->colon_x+1;
}
 
// public function bagarre_colon(colon $colon_frappé, $colon_frappeur)
// {$colon->colon_x = $colon_frappé->force - 1;
// $colon_frappeur->moral = $colon_frappeur->moral + 1;
// }
 
// public function prendre_potion_force(colon $colon1)
// {
// $this->force = $this->force + 1;
// echo "gloup gloup gloup";
 
// }
 
}
 
?>
Je soupçonne un soucis de pointeur et d'allocation de la zone mémoire...ais-je bon ?