Page 1 sur 4
Organisation de l'économie pour un jeu
Posté : 30 oct. 2007, 18:11
par Snipy
Bonjour à tous,
Désolé pour le titre pas très explicite, mais je ne savais pas comment résumer brièvement ma demande ^^
Donc je suis actuellement dans la création d'un jeu de management d'une équipe de basket, et je me penche sur comment gérer la caisse (économie).
Voila ce que j'aimerais gérer: différents revenus (billeteries, sponsors) et dépenses (salaires, entretien..) que j'aurais besoin d'afficher séparément (dans un tableau).
Cela nous fait donc
un ensemble qu'une fois additionné nous donne l'argent total en notre possession.
Mais j'aimerais pouvoir tirer le bilan sur la semaine derniere et la semaine en cours.
Donc il me faudrait logiquement 2 ensembles.
Le plus simple serait il donc de créer une table économie avec un champ id_equipe mais surtout un champ par type de revenus ou dépenses et doubler chaque champ afin d'en avoir un pour la semaine en cours et l'autre pour la précédente ?
VOici ce qu'il pourrait y avoir sur ma page économie
Cette semaine
Recettes --------------------- Dépenses
Billetterie 0 ---------------- Entretien 13 000
Sponsors 77 917 ------- Salaires des joueurs 9 255
Financiers 0 ------------- Salaires du personnel 25500
Temporaires 147 730 ------- Temporaires 646 750
Total des recettes 225 647 ----------- Total des dépenses 704 505
Résultat prévisionnel -478 858
La semaine dernière
MEME CHOSE ICI
Merci de m'éclairer, je sais que ma question n'est pas simple mais si vous pouviez conmmencer peut etre par me donner des conseils d'ensemble ? Si vous avez des questions n'hésitez pas

Posté : 30 oct. 2007, 19:19
par iclo
Je proposerai trois tables:
Une table équipe: nom, idEquipe,...
Une table TypeEconomie: idTypeEconomie
Une table Economie : idEquipe, idTypeEconomie, montant (positif si une recette, négatif si une dépense, semaine (sous forme d'une numéro de semaine ou de la date du premier jour de la semaine, par exemple)
Posté : 31 oct. 2007, 00:08
par Snipy
Qu'entend tu par TypeEconomie?
Merci de ta réponse

Posté : 01 nov. 2007, 12:57
par Snipy
Donc si j'ai bien compris, la table TypeEconomie reghrouperait les critères de dépenses et de revenus (billeterie, salaire,sponsors...)
Tandis que la table economie aurait un champ montant qui est le montant d'un des critères ci dessus (en fonction de id=dTypeEconomie ) et un champ semaine.
Ce système la va nous faire une dizaine d'entrée par équipe et par semaine..
A plus grande échelle, ce n'est pas ingérable ?
Posté : 01 nov. 2007, 18:54
par Snipy
Désolé de reposter, mais j'ai essayé et voici mes 2 tables
Code : Tout sélectionner
--
-- Structure de la table `typeeconomie`
--
CREATE TABLE `typeeconomie` (
`id_type_economie` int(11) NOT NULL,
`nom_type_economie` varchar(255) collate latin1_german2_ci NOT NULL,
PRIMARY KEY (`id_type_economie`),
KEY `id_type_economie` (`id_type_economie`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
--
-- Contenu de la table `typeeconomie`
--
INSERT INTO `typeeconomie` VALUES (1, 'entretien');
INSERT INTO `typeeconomie` VALUES (2, 'salaire_joueurs');
INSERT INTO `typeeconomie` VALUES (3, 'salaire_employes');
INSERT INTO `typeeconomie` VALUES (4, 'transfert');
INSERT INTO `typeeconomie` VALUES (5, 'publicite');
INSERT INTO `typeeconomie` VALUES (6, 'billeterie');
INSERT INTO `typeeconomie` VALUES (7, 'sponsors');
INSERT INTO `typeeconomie` VALUES (8, 'club_supporter');
INSERT INTO `typeeconomie` VALUES (9, 'subvention');
INSERT INTO `typeeconomie` VALUES (10, 'transfert');
Code : Tout sélectionner
--
-- Structure de la table `economie`
--
CREATE TABLE `economie` (
`id_equipe` int(11) NOT NULL,
`id_type_economie` int(11) NOT NULL,
`montant` int(11) NOT NULL,
`semaine` int(11) NOT NULL,
KEY `id_equipe` (`id_equipe`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
--
-- Contenu de la table `economie`
--
Etait ce à cela que tu pensais ?
Car ça me parait bizarre.
Posté : 03 nov. 2007, 19:54
par Snipy
Je me permet de upper

Posté : 03 nov. 2007, 20:22
par Truc
Etait ce à cela que tu pensais ?
Oui il pensait à peu près à ça (avec éventuellement un peu d'optimisation des types de champs).
Un id auto-incrémenté en clé primaire dans chaque table
Réduire les types INT en TINYINT ou MEDIUMINT
...
Posté : 03 nov. 2007, 20:30
par Snipy
Mais dans ce cas la
Premièrement cela fait donc 10 champ par équipe et par semaine. Cela ne posera pas de problème par la suite ?
De plus je ne vois comment stockés l'argent total qu'a la personne en sa possession?
Car certes on va prendre tous les montants de la table
economie ou la
semaine = semaine actuelle et
id_equipe = notre equipe.
Mais il faut rajouter à cela l'argent qu'il avait de la semaine dernière .. etc etc
Merci d'avoir répondu

Posté : 03 nov. 2007, 21:03
par Truc
Mais dans ce cas la
Premièrement cela fait donc 10 champ par équipe et par semaine. Cela ne posera pas de problème par la suite ?
Seul moyen d'en avoir moins est de ne stocker qu'un seul montant
Non aucun souci... Si ce sont des données dont tu as besoin il est normal de les stocker de manière à pouvoir les réutiliser de manière simple.
De plus je ne vois comment stockés l'argent total qu'a la personne en sa possession?
On ne stocke pas de champ calculé en base... tu disposes de toutes les données pour les deux semaines tu peux donc effectuer les totaux pour les 2 semaines.
Posté : 04 nov. 2007, 00:18
par Snipy
oui mais je n'ai le total (de ce qu'il a en poche) aucune fois.
je connais juste chaque semaine ce qu'il gagne et perd de sa cagnotte.
Ce qui veut dire que si le joueur commence a 150 000€ a la semaine 1 il 150 000€ + ou - tous les montants
et donc imaginons a la semaine 16 il a 150 000€ +ou- tous les montants de toutes semaines précédentes...
Ne devrais je pas plutot chaque semaine mettre dans un champ l'argent total en caisse?
Posté : 04 nov. 2007, 01:06
par Truc
Tu peux ajouter un champ à la table "typeeconomie" de type ENUM ('DEPENSE','RECETTE') pour déterminer si le type d'économie est un gain ou dépense ainsi tu pourras déterminer son argent total disponsible.
Un de tes types d'économies doit être l'argent disponible, ici 150 000€ de base, qui sera un champ calculé au bout d'une semaine.
Posté : 05 nov. 2007, 21:11
par Snipy
C'est ce que j'ai fait
Sinon un problème subsiste voici ma requete (qui ne marche pas) car je coince j'aimerais que une la dernière clause du WHERE soit semaine = la plus grande de ma table (c'est un INT)
mysql_query('UPDATE economie SET montant = montant +'.$montant.', WHERE id_equipe='.$_SESSION['id_equipe'].' && id_type_economie = 6 && semaine = (SELECT max(semaine) FROM economie)') or die (mysql_error());
Merci d'avance
Posté : 05 nov. 2007, 21:58
par Truc
Un INT pour y enregistrer 2 possibilités de valeurs et tu as peur que ce qui est proposé soit trop "lourd"
1. Une virgule de trop avant WHERE
2. AND et non &&
Pour la semaine ça va dépendre de la manière que tu enregistres la différence entre 2 semaines.
Posté : 05 nov. 2007, 22:17
par Snipy
Avant tout merci de tes réponses
Un INT pour y enregistrer 2 possibilités de valeurs et tu as peur que ce qui est proposé soit trop "lourd"
Pas compris

(sinon ça sera en fait un petit INT mdr )
1. Une virgule de trop avant WHERE
2. AND et non &&
&& et AND ne sont ils pas la même chose ?
Pour la semaine ça va dépendre de la manière que tu enregistres la différence entre 2 semaines.
semaine 1 semaine 2 etc

Posté : 05 nov. 2007, 22:31
par Truc
Pas compris

(sinon ça sera en fait un petit INT mdr )
ou un éléphant ? casserolle ?
Enfaite je pensais plus à un type ENUM ('DEPENSE','RECETTE') (comme déjà dit)
&& et AND ne sont ils pas la même chose ?
On va dire que les deux fonctionnent mais par convention je préfère AND
semaine 1 semaine 2 etc

En attente...