Comment "nommer" une variable

Eléphanteau du PHP | 38 Messages

25 nov. 2008, 20:29

Merci pour tes explications, j'ai bien mieux compris maintenant.


En fait oui, debutant dans la POO je n'ai pas encore vu tous les interêts. C'est pourquoi je fait quelques choses d'assez basique..

Mais pour l'instant (du moins pour moi), tous ce passe bien. C'est sur que vos techniques précedentes sont plus rapides:)

Mon but est de crée un jeu par navigateur (oui j'ai de l'espoir), donc d'abord je commence par entrer toutes les valeurs des unités, bâtiments..etc que j'utiliserai ensuite pour le jeu.

Genre $totaldespointsdujoueur = $centre_de_commandement->points + $autre->points..etc

Bien sur ce que je viens d'ecrire ne marchera pas, mais il explique ce que je compte faire de toutes ces valeurs.

Voilà, me comprenez vous un peu mieux maintenant? :D

Mammouth du PHP | 1668 Messages

25 nov. 2008, 20:47

si tes deux objets sont instanciés, et ont ces attributs, ça va marcher, un des intérêts de la POO est le regroupement de fonctions, sous forme de méthodes, agissant, et odnc en rapport, avec ses variables, sous forme d'attributs...
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Eléphanteau du PHP | 38 Messages

25 nov. 2008, 21:00

Et donc pour instancié je fait ce que tu m'as montré:)
En même j'irai me renseigner peu plus sur la POO en particulier l'instancion (on ecrit comme ca?)^^

merci


edit:J'ai fait ce que tu m'a dit de faire: $centre_de_commandement = new Batiment (2);

echo ' le cout en population du batiment au niveau 3 est de: ' . $centre_de_commandement->cout_de_population . '';

mais il m'a afficher:le cout en population du batiment au niveau 3 est de: Array


ensuite j'ai essayé :var_dump($centre_de_commandement->cout_en_bois[3]);

mais il m'affiche NULL

Mammouth du PHP | 1668 Messages

26 nov. 2008, 12:58

Instanciation, tu ma mis un doute :lol:

Si tu nous remontrais le code complet ?

En théorie ça marche :/
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Eléphanteau du PHP | 38 Messages

26 nov. 2008, 14:47

Ah oui, le voici:
<?php
session_start();

include("class_batiments.php");


$centre_de_commandement = new Batiment ();

if ( $centre_de_commandement->niveau_du_batiment[0] ) {
$centre_de_commandement->cout_de_population = 0;
$centre_de_commandement->cout_en_bois = 0;
$centre_de_commandement->cout_en_pierre = 0;
$centre_de_commandement->cout_en_fer = 0;
$centre_de_commandement->points_obtenus = 0;

}

if ( $centre_de_commandement->niveau_du_batiment[1] ) {
$centre_de_commandement->cout_de_population = 10;
$centre_de_commandement->cout_en_bois = 180;
$centre_de_commandement->cout_en_pierre = 160;
$centre_de_commandement->cout_en_fer = 140;
$centre_de_commandement->points_obtenus = 20;

}

if ( $centre_de_commandement->niveau_du_batiment[2] ) {

$centre_de_commandement->cout_de_population = 12;
$centre_de_commandement->cout_en_bois = 226;
$centre_de_commandement->cout_en_pierre = 204;
$centre_de_commandement->cout_en_fer = 176;
$centre_de_commandement->points_obtenus = 24;
}

if ( $centre_de_commandement->niveau_du_batiment[3] ) {

$centre_de_commandement->cout_de_population = 14;
$centre_de_commandement->cout_en_bois = 286;
$centre_de_commandement->cout_en_pierre = 260;
$centre_de_commandement->cout_en_fer = 222;
$centre_de_commandement->points_obtenus = 28;
}
if ( $centre_de_commandement->niveau_du_batiment[4] ) {

$centre_de_commandement->cout_de_population = 16;
$centre_de_commandement->cout_en_bois = 360;
$centre_de_commandement->cout_en_pierre = 332;
$centre_de_commandement->cout_en_fer = 280;
$centre_de_commandement->points_obtenus = 34;
}

if ( $centre_de_commandement->niveau_du_batiment[5] ) {

$centre_de_commandement->cout_de_population = 18;
$centre_de_commandement->cout_en_bois = 454;
$centre_de_commandement->cout_en_pierre = 422;
$centre_de_commandement->cout_en_fer = 352;
$centre_de_commandement->points_obtenus = 42;
}

if ( $centre_de_commandement->niveau_du_batiment[6] ) {

$centre_de_commandement->cout_de_population = 22;
$centre_de_commandement->cout_en_bois = 572;
$centre_de_commandement->cout_en_pierre = 540;
$centre_de_commandement->cout_en_fer = 444;
$centre_de_commandement->points_obtenus = 50;
}

if ( $centre_de_commandement->niveau_du_batiment[7] ) {

$centre_de_commandement->cout_de_population = 26;
$centre_de_commandement->cout_en_bois = 720;
$centre_de_commandement->cout_en_pierre = 688;
$centre_de_commandement->cout_en_fer = 560;
$centre_de_commandement->points_obtenus = 60;
}
if ( $centre_de_commandement->niveau_du_batiment[8] ) {

$centre_de_commandement->cout_de_population = 30;
$centre_de_commandement->cout_en_bois = 908;
$centre_de_commandement->cout_en_pierre = 876;
$centre_de_commandement->cout_en_fer = 706;
$centre_de_commandement->points_obtenus = 72;
}
if ( $centre_de_commandement->niveau_du_batiment[9] ) {

$centre_de_commandement->cout_de_population = 36;
$centre_de_commandement->cout_en_bois = 1144;
$centre_de_commandement->cout_en_pierre = 1118;
$centre_de_commandement->cout_en_fer = 890;
$centre_de_commandement->points_obtenus = 86;
}
if ( $centre_de_commandement->niveau_du_batiment[10] ) {

$centre_de_commandement->cout_de_population = 42;
$centre_de_commandement->cout_en_bois = 1440;
$centre_de_commandement->cout_en_pierre = 1424;
$centre_de_commandement->cout_en_fer = 1120;
$centre_de_commandement->points_obtenus = 104;
}
if ( $centre_de_commandement->niveau_du_batiment[11] ) {

$centre_de_commandement->cout_de_population = 48;
$centre_de_commandement->cout_en_bois = 1816;
$centre_de_commandement->cout_en_pierre = 1816;
$centre_de_commandement->cout_en_fer = 1412;
$centre_de_commandement->points_obtenus = 124;
}
if ( $centre_de_commandement->niveau_du_batiment[12] ) {

$centre_de_commandement->cout_de_population = 56;
$centre_de_commandement->cout_en_bois = 2228;
$centre_de_commandement->cout_en_pierre = 2952;
$centre_de_commandement->cout_en_fer = 1780;
$centre_de_commandement->points_obtenus = 148;
}
if ( $centre_de_commandement->niveau_du_batiment[13] ) {

$centre_de_commandement->cout_de_population = 66;
$centre_de_commandement->cout_en_bois = 2882;
$centre_de_commandement->cout_en_pierre = 2952;
$centre_de_commandement->cout_en_fer = 2242;
$centre_de_commandement->points_obtenus = 178;
}
if ( $centre_de_commandement->niveau_du_batiment[14] ) {

$centre_de_commandement->cout_de_population = 76;
$centre_de_commandement->cout_en_bois = 3632;
$centre_de_commandement->cout_en_pierre = 3764;
$centre_de_commandement->cout_en_fer = 2824;
$centre_de_commandement->points_obtenus = 214;
}
if ( $centre_de_commandement->niveau_du_batiment[15] ) {

$centre_de_commandement->cout_de_population = 90;
$centre_de_commandement->cout_en_bois = 4576;
$centre_de_commandement->cout_en_pierre = 4800;
$centre_de_commandement->cout_en_fer = 3558;
$centre_de_commandement->points_obtenus = 256;
}
if ( $centre_de_commandement->niveau_du_batiment[16] ) {

$centre_de_commandement->cout_de_population = 106;
$centre_de_commandement->cout_en_bois = 5766;
$centre_de_commandement->cout_en_pierre = 6120;
$centre_de_commandement->cout_en_fer = 4484;
$centre_de_commandement->points_obtenus = 308;
}
if ( $centre_de_commandement->niveau_du_batiment[17] ) {

$centre_de_commandement->cout_de_population = 124;
$centre_de_commandement->cout_en_bois = 7264;
$centre_de_commandement->cout_en_pierre = 7804;
$centre_de_commandement->cout_en_fer = 5650;
$centre_de_commandement->points_obtenus = 370;
}
if ( $centre_de_commandement->niveau_du_batiment[18] ) {

$centre_de_commandement->cout_de_population = 144;
$centre_de_commandement->cout_en_bois = 9154;
$centre_de_commandement->cout_en_pierre = 9950;
$centre_de_commandement->cout_en_fer = 7120;
$centre_de_commandement->points_obtenus = 444;
}
if ( $centre_de_commandement->niveau_du_batiment[19] ) {

$centre_de_commandement->cout_de_population = 168;
$centre_de_commandement->cout_en_bois = 11534;
$centre_de_commandement->cout_en_pierre = 12686;
$centre_de_commandement->cout_en_fer = 8970;
$centre_de_commandement->points_obtenus = 532;
}
if ( $centre_de_commandement->niveau_du_batiment[20] ) {

$centre_de_commandement->cout_de_population = 198;
$centre_de_commandement->cout_en_bois = 14532;
$centre_de_commandement->cout_en_pierre = 16174;
$centre_de_commandement->cout_en_fer = 11302;
$centre_de_commandement->points_obtenus = 638;
}
if ( $centre_de_commandement->niveau_du_batiment[21] ) {

$centre_de_commandement->cout_de_population = 232;
$centre_de_commandement->cout_en_bois = 18310;
$centre_de_commandement->cout_en_pierre = 20622;
$centre_de_commandement->cout_en_fer = 14240;
$centre_de_commandement->points_obtenus = 766;
}
if ( $centre_de_commandement->niveau_du_batiment[22] ) {

$centre_de_commandement->cout_de_population = 170;
$centre_de_commandement->cout_en_bois = 23070;
$centre_de_commandement->cout_en_pierre = 26292;
$centre_de_commandement->cout_en_fer = 17944;
$centre_de_commandement->points_obtenus = 920;
}
if ( $centre_de_commandement->niveau_du_batiment[23] ) {

$centre_de_commandement->cout_de_population = 316;
$centre_de_commandement->cout_en_bois = 29068;
$centre_de_commandement->cout_en_pierre = 33524;
$centre_de_commandement->cout_en_fer = 22608;
$centre_de_commandement->points_obtenus = 1104;
}
if ( $centre_de_commandement->niveau_du_batiment[24] ) {

$centre_de_commandement->cout_de_population = 370;
$centre_de_commandement->cout_en_bois = 36626;
$centre_de_commandement->cout_en_pierre = 42742;
$centre_de_commandement->cout_en_fer = 28488;
$centre_de_commandement->points_obtenus = 1324;
}
if ( $centre_de_commandement->niveau_du_batiment[25] ) {

$centre_de_commandement->cout_de_population = 432;
$centre_de_commandement->cout_en_bois = 46150;
$centre_de_commandement->cout_en_pierre = 54496;
$centre_de_commandement->cout_en_fer = 35894;
$centre_de_commandement->points_obtenus = 1590;
}
if ( $centre_de_commandement->niveau_du_batiment[26] ) {

$centre_de_commandement->cout_de_population = 506;
$centre_de_commandement->cout_en_bois = 58148;
$centre_de_commandement->cout_en_pierre = 69482;
$centre_de_commandement->cout_en_fer = 45226;
$centre_de_commandement->points_obtenus = 1908;
}
if ( $centre_de_commandement->niveau_du_batiment[27] ) {

$centre_de_commandement->cout_de_population = 592;
$centre_de_commandement->cout_en_bois = 73266;
$centre_de_commandement->cout_en_pierre = 88590;
$centre_de_commandement->cout_en_fer = 56986;
$centre_de_commandement->points_obtenus = 2290;
}
if ( $centre_de_commandement->niveau_du_batiment[28] ) {

$centre_de_commandement->cout_de_population = 694;
$centre_de_commandement->cout_en_bois = 92316;
$centre_de_commandement->cout_en_pierre = 112952;
$centre_de_commandement->cout_en_fer = 71802;
$centre_de_commandement->points_obtenus = 2748;
}
if ( $centre_de_commandement->niveau_du_batiment[29] ) {

$centre_de_commandement->cout_de_population = 812;
$centre_de_commandement->cout_en_bois = 116318;
$centre_de_commandement->cout_en_pierre = 144014;
$centre_de_commandement->cout_en_fer = 90470;
$centre_de_commandement->points_obtenus = 3296;
}
if ( $centre_de_commandement->niveau_du_batiment[30] ) {

$centre_de_commandement->cout_de_population = 950;
$centre_de_commandement->cout_en_bois = 146560;
$centre_de_commandement->cout_en_pierre = 183618;
$centre_de_commandement->cout_en_fer = 113992;
$centre_de_commandement->points_obtenus = 3956;
}



var_dump($centre_de_commandement->cout_en_bois[3]); 

?>
ou bien:


<?php
session_start();

include("class_batiments.php");


$centre_de_commandement = new Batiment ();

if ( $centre_de_commandement->niveau_du_batiment[0] ) {
$centre_de_commandement->cout_de_population = 0;
$centre_de_commandement->cout_en_bois = 0;
$centre_de_commandement->cout_en_pierre = 0;
$centre_de_commandement->cout_en_fer = 0;
$centre_de_commandement->points_obtenus = 0;

}

if ( $centre_de_commandement->niveau_du_batiment[1] ) {
$centre_de_commandement->cout_de_population = 10;
$centre_de_commandement->cout_en_bois = 180;
$centre_de_commandement->cout_en_pierre = 160;
$centre_de_commandement->cout_en_fer = 140;
$centre_de_commandement->points_obtenus = 20;

}

if ( $centre_de_commandement->niveau_du_batiment[2] ) {

$centre_de_commandement->cout_de_population = 12;
$centre_de_commandement->cout_en_bois = 226;
$centre_de_commandement->cout_en_pierre = 204;
$centre_de_commandement->cout_en_fer = 176;
$centre_de_commandement->points_obtenus = 24;
}

if ( $centre_de_commandement->niveau_du_batiment[3] ) {

$centre_de_commandement->cout_de_population = 14;
$centre_de_commandement->cout_en_bois = 286;
$centre_de_commandement->cout_en_pierre = 260;
$centre_de_commandement->cout_en_fer = 222;
$centre_de_commandement->points_obtenus = 28;
}
if ( $centre_de_commandement->niveau_du_batiment[4] ) {

$centre_de_commandement->cout_de_population = 16;
$centre_de_commandement->cout_en_bois = 360;
$centre_de_commandement->cout_en_pierre = 332;
$centre_de_commandement->cout_en_fer = 280;
$centre_de_commandement->points_obtenus = 34;
}

if ( $centre_de_commandement->niveau_du_batiment[5] ) {

$centre_de_commandement->cout_de_population = 18;
$centre_de_commandement->cout_en_bois = 454;
$centre_de_commandement->cout_en_pierre = 422;
$centre_de_commandement->cout_en_fer = 352;
$centre_de_commandement->points_obtenus = 42;
}

if ( $centre_de_commandement->niveau_du_batiment[6] ) {

$centre_de_commandement->cout_de_population = 22;
$centre_de_commandement->cout_en_bois = 572;
$centre_de_commandement->cout_en_pierre = 540;
$centre_de_commandement->cout_en_fer = 444;
$centre_de_commandement->points_obtenus = 50;
}

if ( $centre_de_commandement->niveau_du_batiment[7] ) {

$centre_de_commandement->cout_de_population = 26;
$centre_de_commandement->cout_en_bois = 720;
$centre_de_commandement->cout_en_pierre = 688;
$centre_de_commandement->cout_en_fer = 560;
$centre_de_commandement->points_obtenus = 60;
}
if ( $centre_de_commandement->niveau_du_batiment[8] ) {

$centre_de_commandement->cout_de_population = 30;
$centre_de_commandement->cout_en_bois = 908;
$centre_de_commandement->cout_en_pierre = 876;
$centre_de_commandement->cout_en_fer = 706;
$centre_de_commandement->points_obtenus = 72;
}
if ( $centre_de_commandement->niveau_du_batiment[9] ) {

$centre_de_commandement->cout_de_population = 36;
$centre_de_commandement->cout_en_bois = 1144;
$centre_de_commandement->cout_en_pierre = 1118;
$centre_de_commandement->cout_en_fer = 890;
$centre_de_commandement->points_obtenus = 86;
}
if ( $centre_de_commandement->niveau_du_batiment[10] ) {

$centre_de_commandement->cout_de_population = 42;
$centre_de_commandement->cout_en_bois = 1440;
$centre_de_commandement->cout_en_pierre = 1424;
$centre_de_commandement->cout_en_fer = 1120;
$centre_de_commandement->points_obtenus = 104;
}
if ( $centre_de_commandement->niveau_du_batiment[11] ) {

$centre_de_commandement->cout_de_population = 48;
$centre_de_commandement->cout_en_bois = 1816;
$centre_de_commandement->cout_en_pierre = 1816;
$centre_de_commandement->cout_en_fer = 1412;
$centre_de_commandement->points_obtenus = 124;
}
if ( $centre_de_commandement->niveau_du_batiment[12] ) {

$centre_de_commandement->cout_de_population = 56;
$centre_de_commandement->cout_en_bois = 2228;
$centre_de_commandement->cout_en_pierre = 2952;
$centre_de_commandement->cout_en_fer = 1780;
$centre_de_commandement->points_obtenus = 148;
}
if ( $centre_de_commandement->niveau_du_batiment[13] ) {

$centre_de_commandement->cout_de_population = 66;
$centre_de_commandement->cout_en_bois = 2882;
$centre_de_commandement->cout_en_pierre = 2952;
$centre_de_commandement->cout_en_fer = 2242;
$centre_de_commandement->points_obtenus = 178;
}
if ( $centre_de_commandement->niveau_du_batiment[14] ) {

$centre_de_commandement->cout_de_population = 76;
$centre_de_commandement->cout_en_bois = 3632;
$centre_de_commandement->cout_en_pierre = 3764;
$centre_de_commandement->cout_en_fer = 2824;
$centre_de_commandement->points_obtenus = 214;
}
if ( $centre_de_commandement->niveau_du_batiment[15] ) {

$centre_de_commandement->cout_de_population = 90;
$centre_de_commandement->cout_en_bois = 4576;
$centre_de_commandement->cout_en_pierre = 4800;
$centre_de_commandement->cout_en_fer = 3558;
$centre_de_commandement->points_obtenus = 256;
}
if ( $centre_de_commandement->niveau_du_batiment[16] ) {

$centre_de_commandement->cout_de_population = 106;
$centre_de_commandement->cout_en_bois = 5766;
$centre_de_commandement->cout_en_pierre = 6120;
$centre_de_commandement->cout_en_fer = 4484;
$centre_de_commandement->points_obtenus = 308;
}
if ( $centre_de_commandement->niveau_du_batiment[17] ) {

$centre_de_commandement->cout_de_population = 124;
$centre_de_commandement->cout_en_bois = 7264;
$centre_de_commandement->cout_en_pierre = 7804;
$centre_de_commandement->cout_en_fer = 5650;
$centre_de_commandement->points_obtenus = 370;
}
if ( $centre_de_commandement->niveau_du_batiment[18] ) {

$centre_de_commandement->cout_de_population = 144;
$centre_de_commandement->cout_en_bois = 9154;
$centre_de_commandement->cout_en_pierre = 9950;
$centre_de_commandement->cout_en_fer = 7120;
$centre_de_commandement->points_obtenus = 444;
}
if ( $centre_de_commandement->niveau_du_batiment[19] ) {

$centre_de_commandement->cout_de_population = 168;
$centre_de_commandement->cout_en_bois = 11534;
$centre_de_commandement->cout_en_pierre = 12686;
$centre_de_commandement->cout_en_fer = 8970;
$centre_de_commandement->points_obtenus = 532;
}
if ( $centre_de_commandement->niveau_du_batiment[20] ) {

$centre_de_commandement->cout_de_population = 198;
$centre_de_commandement->cout_en_bois = 14532;
$centre_de_commandement->cout_en_pierre = 16174;
$centre_de_commandement->cout_en_fer = 11302;
$centre_de_commandement->points_obtenus = 638;
}
if ( $centre_de_commandement->niveau_du_batiment[21] ) {

$centre_de_commandement->cout_de_population = 232;
$centre_de_commandement->cout_en_bois = 18310;
$centre_de_commandement->cout_en_pierre = 20622;
$centre_de_commandement->cout_en_fer = 14240;
$centre_de_commandement->points_obtenus = 766;
}
if ( $centre_de_commandement->niveau_du_batiment[22] ) {

$centre_de_commandement->cout_de_population = 170;
$centre_de_commandement->cout_en_bois = 23070;
$centre_de_commandement->cout_en_pierre = 26292;
$centre_de_commandement->cout_en_fer = 17944;
$centre_de_commandement->points_obtenus = 920;
}
if ( $centre_de_commandement->niveau_du_batiment[23] ) {

$centre_de_commandement->cout_de_population = 316;
$centre_de_commandement->cout_en_bois = 29068;
$centre_de_commandement->cout_en_pierre = 33524;
$centre_de_commandement->cout_en_fer = 22608;
$centre_de_commandement->points_obtenus = 1104;
}
if ( $centre_de_commandement->niveau_du_batiment[24] ) {

$centre_de_commandement->cout_de_population = 370;
$centre_de_commandement->cout_en_bois = 36626;
$centre_de_commandement->cout_en_pierre = 42742;
$centre_de_commandement->cout_en_fer = 28488;
$centre_de_commandement->points_obtenus = 1324;
}
if ( $centre_de_commandement->niveau_du_batiment[25] ) {

$centre_de_commandement->cout_de_population = 432;
$centre_de_commandement->cout_en_bois = 46150;
$centre_de_commandement->cout_en_pierre = 54496;
$centre_de_commandement->cout_en_fer = 35894;
$centre_de_commandement->points_obtenus = 1590;
}
if ( $centre_de_commandement->niveau_du_batiment[26] ) {

$centre_de_commandement->cout_de_population = 506;
$centre_de_commandement->cout_en_bois = 58148;
$centre_de_commandement->cout_en_pierre = 69482;
$centre_de_commandement->cout_en_fer = 45226;
$centre_de_commandement->points_obtenus = 1908;
}
if ( $centre_de_commandement->niveau_du_batiment[27] ) {

$centre_de_commandement->cout_de_population = 592;
$centre_de_commandement->cout_en_bois = 73266;
$centre_de_commandement->cout_en_pierre = 88590;
$centre_de_commandement->cout_en_fer = 56986;
$centre_de_commandement->points_obtenus = 2290;
}
if ( $centre_de_commandement->niveau_du_batiment[28] ) {

$centre_de_commandement->cout_de_population = 694;
$centre_de_commandement->cout_en_bois = 92316;
$centre_de_commandement->cout_en_pierre = 112952;
$centre_de_commandement->cout_en_fer = 71802;
$centre_de_commandement->points_obtenus = 2748;
}
if ( $centre_de_commandement->niveau_du_batiment[29] ) {

$centre_de_commandement->cout_de_population = 812;
$centre_de_commandement->cout_en_bois = 116318;
$centre_de_commandement->cout_en_pierre = 144014;
$centre_de_commandement->cout_en_fer = 90470;
$centre_de_commandement->points_obtenus = 3296;
}
if ( $centre_de_commandement->niveau_du_batiment[30] ) {

$centre_de_commandement->cout_de_population = 950;
$centre_de_commandement->cout_en_bois = 146560;
$centre_de_commandement->cout_en_pierre = 183618;
$centre_de_commandement->cout_en_fer = 113992;
$centre_de_commandement->points_obtenus = 3956;
}



$centre_de_commandement = new Batiment (2);

echo ' le cout en population du batiment au niveau 3 est de: ' . $centre_de_commandement->cout_de_population . '';


?>
et la class:



voili voilà:)

merci
<?php
session_start();

class Batiment {

public $cout_de_population = array ();

public $cout_en_bois = array ();

public $cout_en_pierre = array ();

public $cout_en_fer = array ();

public $niveau_du_batiment = array ("0","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");

public $points_obtenus = array ();
}





?>

Mammouth du PHP | 965 Messages

27 nov. 2008, 11:08

Pourquoi ne pas utiliser une base de donnée pour stocker toute ces informations, ensuite tu pourrais les traiter via un CRUD.

Parce que si tu commence à avoir des centaines de possibilités ton code vas être lourd.

Mammouth du PHP | 1668 Messages

27 nov. 2008, 18:02

BDD, pas mal pour consommer des ressources, moi, ce qsui me géne c'est que ton code est le même qu'au début, tu n'as pas tenu compte de nos remarques :/
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Eléphanteau du PHP | 38 Messages

27 nov. 2008, 21:01

En effet une base de données serai peut être plus approprié..Mais comment donner les valeurs alors? Et je doit toujours utiliser une class?



Ce n'est pas de la mauvaise volonté, mais je suis encore debutant en POO. Vos techniques je ne l'ai ai pas encore assimilé..
C'est pourquoi j'attend un peu avant de les utiliser. Et encore une fois merci, je m'en servirai c'est certains.


Pour la BDD je crées une table batiments avec pour champs les caracteristiques? (cout_en_bois, cout_en_population..etc) Et que doi-je faire avec les niveau alors?

Mammouth du PHP | 965 Messages

28 nov. 2008, 11:25

Considère chaque table de ta base de donnée comme un objet par exemple ta table ressemblerait a ça :

Table batiment :
Id - Niveau - Points - Cout_population - Cout_bois - Cout_pierre - Cout_fer

Tous en type : int.

Ensuite tu fais une classe batiment.

Eléphanteau du PHP | 38 Messages

28 nov. 2008, 18:12

A oé ok.. en effet ce serai beaucoup plus simple..

Pour mon script , comment le modifier pour entrer dans les valeurs dans la bases? (ca m'eviterai de tout retapé:) )

Merci pour votre aide. Heuresement que vous êtes là^^

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

28 nov. 2008, 23:32

Une classe doit normalement suivre le modèle d'une base de données, donc l'un et l'autre sont complémentaires. Alors que la base de données mémorise les données de l'application et quelques requêtes nécessaires, les classes de programme objets constituent les traitement spécifiques à chaque entité.

Voici ma contribution qui reprend la solution de katagoto et qui implémente les données au niveau du contexte de l'objet et non de sa classe. Car une classe ne doit pas être contenir des données en dur. Elle doit être conçue pour en consommer.
<pre>
<?php
class Batiment
{
	// Propriétés
   public $coutPopulation;
   public $coutBois;
   public $coutPierre;
   public $coutFer;
   public $pointsObtenus;
   
   // Constructeur de l'objet
   public function __construct($couts=array(), $points=array())
   {
   		$this->coutPopulation = $couts['population'];
   		$this->coutBois = $couts['bois'];
   		$this->coutPierre = $couts['pierre'];
   		$this->coutFer = $couts['fer'];
		$this->pointsObtenus = $points;
		
   }
   
   // Méthodes setter pour écrire dans les propriétés
   public function setCoutPopulation($niveau, $valeur){
   		$this->coutPopulation[$niveau] = $valeur;
   }
   public function setCoutBois($niveau, $valeur){
   		$this->coutBois[$niveau] = $valeur;
   }
   public function setCoutPierre($niveau, $valeur){
   		$this->coutPierre[$niveau] = $valeur;
   }
   public function setCoutFer($niveau, $valeur){
   		$this->coutFer[$niveau] = $valeur;
   }
   public function setPointsObtenus($niveau, $valeur){
   		$this->pointsObtenus[$niveau] = $valeur;
   }
   
   // Méthodes init pour remettre à zéro des valeurs
   public function initCoutPopulation(){
   		foreach ($this->coutPopulation as $niveau=>$valeur) $this->setCoutPopulation($niveau, 0);
   }
   public function initCoutBois(){
   		foreach ($this->coutBois as $niveau=>$valeur) $this->setCoutBois($niveau, 0);
   }
   public function initCoutPierre(){
   		foreach ($this->coutPierre as $niveau=>$valeur) $this->setCoutPierre($niveau, 0);
   }
   public function initCoutFer(){
   		foreach ($this->coutFer as $niveau=>$valeur) $this->setCoutFer($niveau, 0);
   }
   public function initPointsObtenus(){
   		foreach ($this->pointsObtenus as $niveau=>$valeur) $this->setPointsObtenus($niveau, 0);
   }
   
   // Méthodes getter pour lire le contenu des propriétés
   public function getCoutPopulation($niveau=null){ // null pour retourner tous les niveaux
   		return $niveau==null ? $this->coutPopulation : (isset($this->coutPopulation[$niveau]) ? $this->coutPopulation[$niveau] : null);
   }
   public function getCoutBois($niveau=null){
   		return $niveau==null ? $this->coutBois : (isset($this->coutBois[$niveau]) ? $this->coutBois[$niveau] : null);
   }
   public function getCoutPierre($niveau=null){
   		return $niveau==null ? $this->coutPierre : (isset($this->coutPierre[$niveau]) ? $this->coutPierre[$niveau] : null);
   }
   public function getCoutFer($niveau=null){
   		return $niveau==null ? $this->coutFer : (isset($this->coutFer[$niveau]) ? $this->coutFer[$niveau] : null);
   }
   public function getPointsObtenus($niveau=null){
   		return $niveau==null ? $this->pointsObtenus : (isset($this->pointsObtenus[$niveau]) ? $this->pointsObtenus[$niveau] : null);
   }
}

//
// PROGRAMME DE TEST DE LA CLASSE
//
// Configuration des paramètres utiles
$couts['population'] = array(1=>10,  2=>12,  3=>14,  4=>16);
$couts['bois'] 		 = array(1=>180, 2=>226, 3=>286, 4=>360);
$couts['pierre'] 	 = array(1=>160, 2=>204, 3=>260, 4=>332);
$couts['fer'] 		 = array(1=>140, 2=>176, 3=>222, 4=>280);
$points 			 = array(1=>20,  2=>24,  3=>28,  4=>34);
 
// Création d'un objet Batiment
$batiment1 = new Batiment($couts, $points);

// Afficher les valeurs actuelles de ses propriétés
print_r( $batiment1->getCoutPopulation() ); // pour tous les niveaux
echo "<br />";
echo $batiment1->getCoutPopulation(1); // pour le niveau 1
echo "<br />";
echo $batiment1->getCoutPopulation(2); // pour le niveau 2
echo "<br />";
$batiment1->initCoutPopulation(); // Efface tous les couts
$batiment1->setCoutPopulation(2, 700); // mettre à jour un cout
$batiment1->setCoutPopulation(1, 25); // mettre à jour un cout
echo "<br />";
// autre façon pour accéder aux couts niveau/niveau
foreach ($batiment1->getCoutPopulation() as $niveau=>$cout){
	echo "Coût population du niveau " . $niveau . " = " . $cout . "<br />";
}
echo "<br />";
print_r(  $batiment1->getPointsObtenus() ); //tous les points
$batiment1->initPointsObtenus(); // Efface tous les points
$batiment1->setPointsObtenus(1, 25); // mettre à jour un point par niveau
echo "<br />";
// autre façon pour accéder aux points niveau/niveau
foreach ($batiment1->getPointsObtenus() as $niveau=>$point){
	echo "Point du niveau " . $niveau . " = " . $point . "<br />";
}
// ect ...
?>
</pre>
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphanteau du PHP | 38 Messages

29 nov. 2008, 12:19

Merci, ce script est trés clair! J'ai pratiquement tout compris, merci bien!

Mais que signifie <pre>? Je n'ai encore jamais vu cette balise.

Merci encore!

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

29 nov. 2008, 14:18

la balise <pre>texte</pre> est une balise HTML qui permet d'afficher le texte contenu dans la forme originale de sa saisie dans le document (en respectant par exemple, les tabulations et les retour-chariot).
Dans mon exemple, je l'ai mis simplement pour que l' affichage de tableaux par print_r() soit réalisé dans la forme originale hiérarchique d'un Array.

J'ai l'habitude de le faire dans les programme de test , où j'utilise les fonctions de déboguage comme : print_r() et var_dump(). Je le mets une fois (ouverture en haut et fermeture en bas) pour ne pas devoir le refaire à chaque print_r() comme ça c'est simple, et puis ce n'est que pour le déboguage.
De toutes façons, en mode production, la classe sera logée toute seule dans un fichier et il n'y aura plus de balise <pre> ni de programme de test intégré.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphanteau du PHP | 38 Messages

29 nov. 2008, 15:02

Merci bien, en le relisant une nouvelle fois, j'ai du mal a comprendre le passage où on remet à 0 les niveaux.
Pourquoi faire?

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

29 nov. 2008, 15:11

Je ne sais pas si ça va te servir car je n'ai pas eu d'info sur tout ce que tu veux faire. C'est juste une approche un p'tit peu globale : puisque qu'on a des tableaux de coûts et de points, j'ai proposé la panoplie de méthodes (et ce n'est pas exhaustif) qui puissent servir pour gérer ces tableaux. Je cite:

setXXXXXXX : pour introduire des valeurs
getXXXXXXX : pour récupérer des valeurs
et
initXXXXXXX : pour remettre à zéro des valeurs, seulement dans notre cas, les méthodes init mettent à zéro les valeurs mais pas les niveaux (c'est logique non)

Donc, si t'as besoin d'effacer les tableaux des couts et points pour les remplir à nouveau par d'autres valeurs, tu peux utiliser ses méthodes sinon, tu les enlèvent de ta classe.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène