JeuWeb - Crée ton jeu par navigateur
script de combat - migraine garantie ou remboursée :p - 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 : script de combat - migraine garantie ou remboursée :p (/showthread.php?tid=2287)

Pages : 1 2 3 4


RE: script de combat - migraine garantie ou remboursée :p - keke - 20-01-2008

coucou,

Je trouve ceci au début du script :
Citation :Warning: Division by zero in c:\program files\easyphp1-8\www\leni\combat.php on line 87

Warning: Division by zero in c:\program files\easyphp1-8\www\leni\combat.php on line 89

Warning: Division by zero in c:\program files\easyphp1-8\www\leni\combat.php on line 91

Warning: Division by zero in c:\program files\easyphp1-8\www\leni\combat.php on line 92

Warning: Division by zero in c:\program files\easyphp1-8\www\leni\combat.php on line 93

Warning: Division by zero in c:\program files\easyphp1-8\www\leni\combat.php on line 94

Warning: Division by zero in c:\program files\easyphp1-8\www\leni\combat.php on line 135

Warning: Division by zero in c:\program files\easyphp1-8\www\leni\combat.php on line 140

Ca m'a tout l'air d'être des problèmes important ^^.

Leni. Je crois que ton code va être trop compliqué pour moi. Ce n'est pas la taille ni l'algorithme qui fait peur, mais le manque de soin à l'orthographe qui m'empêche de me concentrer. Depuis la BDD jusqu'au code, je ne vois que des fautes. Tu n'y mets pas beaucoup d'efforts et ça, c'est pas cool pour la personne qui passe derrière toi. De plus, tu te discrédites tout seul. Ton programme devient 'un vrai bord...', ce bout de code 'c'est nul, mais on va deja fair marcher sa comme sa'. Je ne fais que te citer, je me permettrais pas de faire d'allusion de cette sorte.
Bilan, en l'état, tu n'arriveras à rien avec cette état d'esprit. Je pense que tu crois qu'un bon codeur, c'est un type qui fonce tête baissé dans le code ?
enfin, tu ne traites aucun cas d'erreur, ton code n'est toujours pas suffisamment commenté. Tu pollues ta BDD avec des messages rigolos. Bref, ce n'est pas bien sérieux tout ça ^^ Il faut que tu le reprennes complètement ton algorithme. Commence par des cas simples : (1 seul type d'unité : les fantassins par exemples) puis complique à souhait ton algo. Il faut que tu y ailles à ta vitesse. SI les maths et toi vous êtes pas copain, c'est que tu exiges une trop grande vitesse à cette relation. Vas y doucement, à ton niveau. Tu deviendras peut-être le meilleur mathématicien du monde, qui sait !

A titre de comparaison, mon algorithme de combats tient en 2 fichiers : l'un pour le déplacement, l'autre pour la résolution des coups. 780 lignes et 220 lignes. Il est cependant plus compact au niveau du code, mais plus détaillé dans les commentaires.

Bon courage dans la reprise.

Kéké.


RE: script de combat - migraine garantie ou remboursée :p - leni - 25-01-2008

On a suivit le sujet par mail, voici la reponses à ses questions :


1°/ en premier lieu : Y'a t'il toujours qu'un seul hero en att et en def ?
-oui, toujours qu'un seul hero, en attaque et en deffense c'est pareil ^^ le hero est en fait le personage fictif du joueur.

2°/ A quoi correspond la variable $att ???
-c'est la resultante du mysql_fetch_array de la requete du mechant, il contient toutes les données sur les troupes qui attaquent.
Ne s'agirait-t-il pas de l'extraction d'une table de référence dans laquelle tu as les caracs de tes personnages ? Dans ce cas la ligne M_tot_ar ne varie jamais ... je doute que ce soit l'effet recherché.
- m_tot_ar varie, vu que certains d'entre eux von mourir. Sinon, j'ai mit des boucles parse qu'on m'as conseiller de le faire ...

3°/ Homogénéise ton discours, un coup att, un coup, off, un coup méchant.
- dans le script c'est toujours att Wink sauf dans ems com... mdr ! att == off; :p j'edit et j'en enlève le plus possible, il y en aurai surment qui resteront dsl...

4°/ Il me semble pas très pro d'utiliser un nom dans tes recherches. Usuelement on utilise un ID. J'en déduit que ton schéma de Base de donnée devrait peut-être être à revoir.
SELECT * FROM hommes WHERE pseudo='".$att['mechant']."'"
De plus, évite autant que possible le SELECT * ... nomme les éléments de ta table dont tu as besoin.
- encor une fois, je vais bien tout fair marcher avec les pseudo et ensuite je verai avec les id qui sont present dans ma base de donnée Smile le fait de mettre des pseudo me permet de mieu comprendre mes test Wink

5°/ Te rends tu comptes que la variable $M_moy_off_cp n'est pas initialisé dans le bout de code que tu nous as filé. Ca a effectivement des chances de ne pas marcher.
- je vous ai donner just des extraits Smile pour voir un peu à quoi s'attendre, car c'est tout de même 700 lignes de blocks qui sont à l'arrivée ...


Sinon, j'ai reussit à passer outre les divisions par 0, mais forcement, le script ne marche pas....

Je szuis en trin de tester mon system de temps, et 1&1 me renvoi
1&1' a écrit :Error 500 - Internal server error

Un problème inattendu est survenu.
Veuillez réessayer ultérieurement.

J'avais deja eu cette erreur car mon while était trop long... là, ce n'est pas le cas... y as t'il d'autre possibilités pour l'aparution de se message ?


RE: script de combat - migraine garantie ou remboursée :p - Eluox - 25-01-2008

J'ai le même probleme, reponse du SAV Wink

Citation :Une erreur 500 peut venir de plusieurs problèmes. L'erreur 500 sur un site internet peut signifier plusieurs choses,cependant, après coup, il ne nous est pas possible de connaîtreprécisément les raisons de cette erreur. Voici quelques situations justifiant l'affichage d'une erreur 500 survotre domaine :-Processus durant plus de 10 secondes-Processus utilisant plus de 32Mo de RAM-Plus de 24 processus en simultanés sur votre contrat Erreur 500 lors de l?appel d?un script PHP Dans la grande majorité des cas, elle est liée au fait que votre contratdépasse la valeur memory_limit de PHP qui est de 32M.Un nombre trop important de ressources sont alors exigées par votrescript sur le serveur.Ce dernier se refuse alors à satisfaire la demande en retournant uneerreur 500.Dans un autre cas de figure plus rare, les CHMOD sur le fichier PHP nesont pas suffisants.Un CHMOD en 755 sur un fichier PHP est idéal afin de permettre unfonctionnement optimal de votre script.



RE: script de combat - migraine garantie ou remboursée :p - leni - 26-01-2008

Bon merci dark vient de me blazer .... mdr !

donc en gros, vous etes en trin de me dire que mon script est trop lourd pour être executer ?


RE: script de combat - migraine garantie ou remboursée :p - Eluox - 26-01-2008

Ou que ton hebergement est pas assez puissant Wink


RE: script de combat - migraine garantie ou remboursée :p - leni - 27-01-2008

Bon dark vengeur, ta tentative de me fair sombrer dans l'alcolisme a echouer, c'était un simple problème de boucle que je ne sais expliquer, mais qui c'est reglé l'orsque j'ai renomé les variables qui la definisait.

i mean, no more eror 500 ! Smile

J'ia aussi reparer 50% de mon algo ! Smile sa fait très plaisir, malgrès les 3 claviers que j'ai peu etre ecraser dans mes moments de colère... Big Grin

Il rest néenmoin une partie de l'algo à debuger : on est apsser de classes de soldat (soldat, mercenaire, paladin, etc) à une masse (copr à corp ou archer), maintenant, il faut fair l'inverse : on a une masse (corp à corp) et il faut que sa redeviennent des soldats ou des mercenaires independant... J'avoue que je sèche un peu Confused

voici mon script, bouré d'erreur :
Code PHP :
<?php 
$pertes_G_cp
=$sav_G_tot_cp-$G_tot_cp; // on utilise la sauvegarde pour savoir combien de pertes il y a eu dans les corps à corps
$pertes_G_ar=$sav_G_tot_ar-$G_tot_ar;

// combat toujours en cours, les 2 armées ont toujours des hommes. Donc pas de rapports, juste des updates

/* Pour extraire les soldats, les cavaliers et tous les autres de la variable tot_cp, ont fait le pourcentage qu'ils representaient au debut

ensuite, on extrait ce pourcentage de tot_cp, et ca fait le nombre de morts ^^ */

$G_pc_soldat=($G['nombresoldat']/$sav_G_tot_cp)*100; // pourcentage de soldat dans la masse "corp à corp

$G_pc_cavalier=($G['nombrecavalier']/$sav_G_tot_cp)*100; // pourcentage de cavalier

$G_pc_paladin=($G['nombrepaladin']/$sav_G_tot_cp)*100; // pourcentage de paladin

$G_pc_mercenaire=($G['nombremercenaire']/$sav_G_tot_cp)*100; // etc etc

$G_pc_templier=($G['nombretemplier']/$sav_G_tot_cp)*100;

$G_soldat=round(($G_pc_soldat/$sav_G_tot_cp)*100); // nombre de soldats morts

$G_cavalier=round(($G_pc_cavalier/$sav_G_tot_cp)*100); // nombre de cavalier morts

$G_paladin=round(($G_pc_paladin/$sav_G_tot_cp)*100);

$G_mercenaire=round(($G_pc_mercenaire/$sav_G_tot_cp)*100);

$G_templier=round(($G_pc_templier/$sav_G_tot_cp)*100);

$G_pc_baliste=($G['nombrebaliste']/$sav_G_tot_ar)*100; // pourcentage de balistes dans la masse "archer"

$G_pc_archer=($G['nombrearcher']/$sav_G_tot_ar)*100;// on repete la même chose, mais pour els archers

$G_pc_arbalestrier=($G['nombrearbalestrier']/$sav_G_tot_ar)*100;

$G_pc_arc=($G['nombrearc']/$sav_G_tot_ar)*100;


$G_baliste=round(($G_pc_baliste/$sav_G_tot_ar)*100); // à partir d'ici, on calcule le nombre de survivants, c'est toujours pareil... :p

$G_archer=round(($G_pc_archer/$sav_G_tot_ar)*100);

$G_arbalestrier=round(($G_pc_arbalestrier/$sav_G_tot_ar)*100);

$G_arc=round(($G_pc_arc/$sav_G_tot_ar)*100);

$G_nb_baliste = $G['nombrebaliste']-$G_baliste;

$G_nb_archer = $G['nombrearcher']-$G_archer;

$G_nb_arbalestrier = $G['arbalestrier']-$G_arbalestrier;

$G_nb_arc = $G['nombrearc']-$G_arc;

$G_nb_soldat = $G['soldat']-$G_soldat;

$G_nb_cavalier = $G['cavalier']-$G_cavalier;

$G_nb_paladin = $G['paladin']-$G_paladin;

$G_nb_mercenaire = $G['mercenaire']-$G_mercenaire;

$G_nb_templier = $G['templier']-$G_templier;

sa coince ... je sais pas encor où, mais sa coince ^^

edt : j'ai trouver lerreur, elle est dans cette ligne : $G_pc_cavalier=($G['nombrecavalier']/$sav_G_tot_cp)*100; ainsi que dans toutes celles qui lui resemblent... je continue de creuser Wink

bonne soirée, leni


RE: script de combat - migraine garantie ou remboursée :p - keke - 28-01-2008

Coucou Leni ^^,

J'avais prévu de voir ton code le WE dernier, mais j'ai été voir une amie qui vient de mettre au monde une crevette de 2,5 kilos presque pas prématuré. Bilan, j'ai pas eu le temps de fouiller ton code. Mais je vois que tu as avancé.

Normalement, tu peux configurer ton serveur apache pour afficher les erreurs et les warnings. Le fait que tu travailles sous Linux n'est pas pénalisant. Pas besoin de EasyPhp pour afficher les Warnings ^^.

Si tu veux que je zieutes le WE prochain, tu n'as plus qu'à me renvoyer ton code source.

Bonne journée, bon courage. Et rappelle toi que l'informatique, c'est aussi une abstraction mathématique ... donc faut tout de même maitriser les additions, les soustractions et les divisions pour y arriver ^^.

Kéké du boulot.


RE: script de combat - migraine garantie ou remboursée :p - leni - 28-01-2008

Super pour le bébé ! kéké parain ? Big Grin

sinon, pour le code (franchement, les bébé c'est plus sympas

keke a écrit :Bonne journée, bon courage. Et rappelle toi que l'informatique, c'est aussi une abstraction mathématique ... donc faut tout de même maitriser les additions, les soustractions et les divisions pour y arriver ^^.

Faut pas me prendre pour un con non plus ^^ les additions et soustraction, no p ! Par compte, il m'as fallut 3 heures de ma vie puor me rendre compte que mes pourcentages été bidon (et c'est le cas de le dire, [ * != / ] Big Grin !). En faite, j'ai passer tout ma nuit du samedis soir sur wamp pour tout tester cas par cas.

Voici les bonnes nouvelles
- la plus importante : JE GERE LE TEMP REEL !!!! et oui sa fait plaisir à savoir ^^ (surtout à moi ! :p )
- les soldats meurent (bonne et mauvaise nouvelles)
- les unités gèrent trop bien la rentrée et la sortie des citées, si il n'y as plus de cp, elles entrent dans la ville, etc etc...
- mes pourcentages marchent

mauvaises nouvelles :
-les unités meurent tellement bien qu'elles peuvent mourir à la place d'une autre ! c'est fou hein ? Big Grin
- Pour finir sur uen note asser... triste ... j'ai fait tout mes test en resaux local à partir d'un script de test, et au moment re revenir sur le script de combat.php et de le mettre en ligne, se dernier marche pas... copy paste pourtant ! Confused

enfin voila, les fichiers on encor changés, je te les enverai prochainement (pas sur cet ordi...)

tchao, merci encor Smile


RE: script de combat - migraine garantie ou remboursée :p - Cartoristal - 31-01-2008

Bon, je viens de lire tout le topic et je veux bien lire tout ton code à la recherche d'erreurs si tu veux.
Sa m'intéresse grandement de voire comment tu as fais ton truc. Sachant que j'ai déjà rencontré les mêmes erreurs que toi à de nombreuses reprises.

Donc je ne sais pas si je pourrais beaucoup t'aider avec mes petites bases en PHP mais qui ne tente rien n'a rien et sa ne coute rien d'essayer.

"abelrossignol@hotmail.com"

Tu peux zipper tes fichiers si tu veux et me les envoyer et je me pencherais dessus pour voire d'ou peuvent provenir les erreurs que tu cite.

( je vois que ton code est bien commenté alors sa rebute tout de suite beaucoup moins ! )


RE: script de combat - migraine garantie ou remboursée :p - leni - 31-01-2008

Voila, j'ai renvoyer les scripts à keke, et cartoristal, je t'ai ajouter à mes contacts msn, si tu n'y voit aps d'inconvenients Smile

bonne journée, leni