JeuWeb - Crée ton jeu par navigateur
Gestion des batiments - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Gestion des batiments (/showthread.php?tid=4384)

Pages : 1 2


Gestion des batiments - anthono - 02-10-2009

Bonjour,
Je voudrais savoir comment creez le meilleur systéme de gestion des batiments le moins lourd alors j'ai quelques question.
Faut t'il faire 2table differente pour les batiments et recherche?
Comment faire les couts de met batiments?
Et si par hasard vous pouvez m'aidez a cherchez des nom pour
les recherches je précise que mon jeu est futuriste.

Ma table
ressource_mine_or
ressource_mine_argent
ressource_menuiserie
ressource_uranium
depot_mine_or
depot_mine_argent
depot_menuiserie
depot_uranium
batiments_centre_commandement
batiments_centre_energetique
batiments_centre_devellopement
batiments_centre_robotique
batiments_centre_missile
batiments_centre_infanterie
batiments_centre_spacial
batiments_centre_artilleur
batiments_centre_breche
technologie_
Je pense faire une dizaine de technologie

J''ai une page general ici son stocké
Code PHP :
<?php
session_start
();
$sql_serveur = "localhost";
$sql_base = "divinite";
$sql_login = "root";
$sql_password = "";
$conn = mysql_connect($sql_serveur,$sql_login,$sql_password);
$conn2 = mysql_select_db($sql_base);
if(
$_SESSION['pseudo'] != '')
{

$compte = mysql_query("SELECT * FROM joueurs_membres WHERE membre_pseudo='".$_SESSION['pseudo']."'");
while(
$affich_compte = mysql_fetch_array($compte))
{
$membre_partie=$affich_compte['membre_partie'];
$membre_id=$affich_compte['membre_id'];
}

$ressource = mysql_query("SELECT * FROM jeu_planete WHERE id_joueurs='".$membre_id."'");
while(
$affich_ressource = mysql_fetch_array($ressource))
{
$nom_planete = $affich_ressource['nom_planete'];
$bois = $affich_ressource['ressources_bois'];
$energie = $affich_ressource['ressources_energie'];
$or = $affich_ressource['ressources_or'];
$robots = $affich_ressource['ressources_robots'];
$uranium = $affich_ressource['ressources_uranium'];
$argent = $affich_ressource['ressources_argent'];
$metal = $affich_ressource['ressources_metal'];
}
$construction = mysql_query("SELECT * FROM jeu_construction WHERE id_joueurs='".$membre_id."'");
while(
$affich_construction = mysql_fetch_array($construction))
{
$lvl_mine_or=$_affich_construction['ressource_mine_or'];
$lvl_mine_argent=$_affich_construction['ressource_mine_argent'];
$lvl_menuiserie=$_affich_construction['ressource_menuiserie'];
$lvl_uranium=$_affich_construction['ressource_uranium'];
$lvl_depot_or=$_affich_construction['depot_mine_or'];
$lvl_depot_argent=$_affich_construction['depot_mine_argent'];
$lvl_depot_menuiserie=$_affich_construction['depot_menuiserie'];
$lvl_depot_uranium=$_affich_construction['depot_uranium'];
$lvl_centre_commandement=$_affich_construction['batiments_centre_commandement'];
$lvl_centre_energetique=$_affich_construction['batiments_centre_energetique'];
$lvl_centre_devellopement=$_affich_construction['batiments_centre_devellopement'];
$lvl_centre_robotique=$_affich_construction['batiments_centre_robotique'];
$lvl_centre_missile=$_affich_construction['batiments_centre_missile'];
$lvl_centre_infanterie=$_affich_construction['batiments_centre_infanterie'];
$lvl_centre_spacial=$_affich_construction['batiments_centre_spacial'];
$lvl_centre_artilleur=$_affich_construction['batiments_centre_artilleur'];
$lvl_centre_breche=$_affich_construction['batiments_centre_breche'];
//ici mes recherches $lvl_teleportation=$_affich_construction['recherche_teleportation'];
}
}
?>
Pensez vous que ceci est la meilleur solution.


RE: Gestion des batiments - My Hotel - 02-10-2009

Oulaa!

Déjà, SELECT *, c'est le mal, indique plutôt la liste des champs. Ensuite, moi j'ai une table ou je liste tous mes bâtiments du genre : id|nom|cout_bois|cout_or|bonus|stock....
Ensuite, tu crées des classes pour chaque bâtiment, qui étendent une superclasse bâtiment, voire une sous classe de bâtiment.

Puis, pour les recherches, une autre table. Mais n'indique pas le nom des bâtiments dans les colonnes. Je pense que tu dois déjà revoir ta BDD.

Ensuite, ton script, c'est un peu bourrin, non? Utilise déjà des arrays, des fonctions, voir des classes parce que là, c'est vraiment moche, je comprends même pas ce que ça fait!

Voilà, essaie de te documenter sur la POO, et les méthodes de modélisation BDD. Et puis, essaie d'expliquer plus clairement, ta demande et ton script, on pourra t'aider mieux. Là, je me trompe peut-être, mais t'es mal barré pour faire un jeu, peut-être devrais tu t'entraîner sur des trucs plus simples avant?
Sinon, t'as fait un CdC complet ou pas?


Bye

P.S : penses aux commentaires pour ton script


RE: Gestion des batiments - anthono - 02-10-2009

J'ai modifié mon code,ce code si est présent dans toutes mes pages je ne sais pas comment codez ma page batiments comment calculez les prix et si il faut que je fasse plein de condition pour toute les recherches car sinon je pensez
Code PHP :
<?php 
$construction
= mysql_query("SELECT * FROM jeu_construction WHERE id_joueurs='".$membre_id."'");
while(
$affich_construction = mysql_fetch_array($construction))
{
$lvl_mine_or=$_affich_construction['ressource_mine_or'];
$lvl_mine_argent=$_affich_construction['ressource_mine_argent'];
$lvl_menuiserie=$_affich_construction['ressource_menuiserie'];
$lvl_uranium=$_affich_construction['ressource_uranium'];
$lvl_depot_or=$_affich_construction['depot_mine_or'];
$lvl_depot_argent=$_affich_construction['depot_mine_argent'];
$lvl_depot_menuiserie=$_affich_construction['depot_menuiserie'];
$lvl_depot_uranium=$_affich_construction['depot_uranium'];
$lvl_centre_commandement=$_affich_construction['batiments_centre_commandement'];
$lvl_centre_energetique=$_affich_construction['batiments_centre_energetique'];
$lvl_centre_devellopement=$_affich_construction['batiments_centre_devellopement'];
$lvl_centre_robotique=$_affich_construction['batiments_centre_robotique'];
$lvl_centre_missile=$_affich_construction['batiments_centre_missile'];
$lvl_centre_infanterie=$_affich_construction['batiments_centre_infanterie'];
$lvl_centre_spacial=$_affich_construction['batiments_centre_spacial'];
$lvl_centre_artilleur=$_affich_construction['batiments_centre_artilleur'];
$lvl_centre_breche=$_affich_construction['batiments_centre_breche'];
//ici mes recherches $lvl_teleportation=$_affich_construction['recherche_teleportation'];
}
Que sur la page batiments mais je ne suis pas sur.


RE: Gestion des batiments - My Hotel - 02-10-2009

Peux tu donner ta structure des tables utilisées dans le script?
Penses à nommer tes champs clairement...

En fait, faut un système ou t'auras pas besoin de modifier 200 choses pour ajouter ou modifier un bâtiment.

Il faut déjà s'occuper de la BDD, puis du script!

P.S : essaie de te faire une fonction qui se connecte à la BDD, que tu met dans un fichier inclus, c'est le minimum, au cas où le password change.
Autre remarque, si tu récupère une seule ligne en BDD, pas besoin de faire un mysql_fetch_array dans un while, tu peux simplement faire un mysql_fetch_array. Franchement, et je dis ça sans méchanceté, ta manière de coder me donne l'impression que tu sors du SdZ en croyant connaître PHP, à tort. Smile


RE: Gestion des batiments - anthono - 02-10-2009

Voici mes tables que j'utile ici.

Citation :CREATE TABLE `jeu_construction` (
`id` int(11) NOT NULL auto_increment,
`id_joueurs` int(11) NOT NULL,
`ressource_mine_or` int(11) NOT NULL,
`ressource_mine_argent` int(11) NOT NULL,
`ressource_menuiserie` int(11) NOT NULL,
`ressource_uranium` int(11) NOT NULL,
`depot_mine_or` int(11) NOT NULL,
`depot_mine_argent` int(11) NOT NULL,
`depot_menuiserie` int(11) NOT NULL,
`depot_uranium` int(11) NOT NULL,
`batiments_centre_commandement` int(11) NOT NULL,
`batiments_centre_energetique` int(11) NOT NULL,
`batiments_centre_devellopement` int(11) NOT NULL,
`batiments_centre_robotique` int(11) NOT NULL,
`batiments_centre_missile` int(11) NOT NULL,
`batiments_centre_infanterie` int(11) NOT NULL,
`batiments_centre_spacial` int(11) NOT NULL,
`batiments_centre_artilleur` int(11) NOT NULL,
`batiments_centre_breche` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Structure de la table `jeu_planete`
--

CREATE TABLE `jeu_planete` (
`id` int(11) NOT NULL,
`id_joueurs` int(11) NOT NULL,
`nom_planete` text collate utf8_bin NOT NULL,
`ressources_bois` int(11) NOT NULL,
`ressources_argent` int(11) NOT NULL,
`ressources_or` int(11) NOT NULL,
`ressources_metal` int(11) NOT NULL,
`ressources_energie` int(11) NOT NULL,
`ressources_robots` int(11) NOT NULL,
`ressources_uranium` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
--
-- Structure de la table `joueurs_membres`
--

CREATE TABLE `joueurs_membres` (
`membre_id` int(11) NOT NULL auto_increment,
`membre_pseudo` varchar(30) character set latin1 collate latin1_general_ci NOT NULL,
`membre_mdp` varchar(32) character set latin1 collate latin1_general_ci NOT NULL,
`membre_email` varchar(250) character set latin1 collate latin1_general_ci NOT NULL,
`membre_serveur` int(11) NOT NULL,
`membre_inscrit` int(11) NOT NULL,
`membre_derniere_visite` int(11) NOT NULL,
`membre_rang` tinyint(4) default '2',
`membre_partie` int(11) NOT NULL,
`membre_points` int(11) NOT NULL,
PRIMARY KEY (`membre_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;



RE: Gestion des batiments - My Hotel - 02-10-2009

Et par exemple, dans 'batiments_centre_missile', tu stockes quoi? C'est ça ma question Wink


RE: Gestion des batiments - anthono - 02-10-2009

je stockes le lvl du batiments 1-2-3.-....


RE: Gestion des batiments - tog84 - 02-10-2009

A ta place, je ne stockerai pas le prix des différents niveau de bâtiments, juste le niveau.
Tu définis dans une variable dans ton script le prix de base, soit pour le niveau 1.
Un exemple très simple.

$centre_missile_bois = 100 ;
$prix_bois = $centre_missile_bois * $niveau_joueur_centre_missile ;

Après comme dit My Hotel, tu dois approfondir tes connaissances.


RE: Gestion des batiments - anthono - 03-10-2009

Ok,merci mais comme j'ai deja fait des systémes assez devellopé je me suis mis a un jeu php que je code et fait le design tous seul
donc deja c'est un peu plus long.

Sinon je vais approfondire ton idée.


RE: Gestion des batiments - Reaven - 03-10-2009

Bonjour,

Je passe simplement pour faire une petite remarque esthétique sur ton code. Ne penses-tu pas que mettre des tabulation dans ton script nous aiderait à y voir un peu plus clair ? Ca fait plus propre et déjà un peu plus pro je pense Wink.

Bonne continuation Smile
Reaven