JeuWeb - Crée ton jeu par navigateur
[résolu] code d'attaque - 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 : [résolu] code d'attaque (/showthread.php?tid=553)

Pages : 1 2


[résolu] code d'attaque - simonhibou89 - 18-12-2006

Voila pour mon code d'attaque j'ai crée une base de données comprenant le nom et les caractéristiques des unités. Et voilà le début du code .
Code PHP :
<?
include('conection.php');
$sql = "SELECT * FROM caserne2 ";
$req = mysql_query($sql);
while(
$data = mysql_fetch_assoc($req))
{
$tour=1;// On définit le nombre de tour qu'il ya aura dans le combat
while($tour<=5)
{
$tir=$data['tir'];
if(
$tir==1 AND $tour>=1)
{
$touche=rand(1,5);
echo
'<br>1'.$data['nom_soldat'].' '.$tir.'<br> '.$touche.'<br>';
$sql = "SELECT * FROM caserne2 WHERE id = '".$touche."'";
$req = mysql_query($sql);
while(
$data = mysql_fetch_assoc($req))
{
$tour2=1;
while(
$tour2<=5)
{
echo
'<br>2'.$data['nom_soldat'].'<br> '.$tour.'';
$tour2++;
}
}
}
$tour++;
}
?>

Voila ce que le code affiche :
1archer_leger
3

2epeiste
1
2epeiste
1
2epeiste
1
2epeiste
1
2epeiste
1

Voila j'ai deux question pourquoi la première boucle While ne s'éxécute qu'une seule fois et comment Pourais-je compter le nombre de sortie de la bdd qui corresponde à tir=1?


RE: code d'attaque - Archange - 18-12-2006

Déja je crois bien que tu as oublier un } c'est peu etre pour sa que ton premiere while ne s'execute pas


RE: code d'attaque - joshua - 18-12-2006

allez je t'aide.....
Regarde le nombre d'accolades que tu oubvres et le nombre d'accolades que tu fermes.....
ensuite:
Tu as deux requetes sql portant sur la meme base; ca veut surement dire qu'il y a moyen de n'en faire qu'une seule et d'économiser un acces base. De plus, evite autant que possible les boucles imbriquées, et les select * qui sont particulierement gourmands surtout si tu n'utilise qu'un champ.
Souvent, un probleme est mal codé aprce qu'il a mal été formulé. C'est quand meme dommage de ce dire que son code ne marche pas parce qu'on n'a pas écrit exactement ce qu'on souhaitait faire et qu'on n'a aps réfléchit a comment le faire le plus simplement possible avant de commencer a coder ^^
Dis nous ce que tu veux faire exactement Wink


RE: code d'attaque - simonhibou89 - 18-12-2006

ok merci pour les accolades. Bon voila ce que je veux faire: u
-un code qui selectionne les troupes qui peuvent attaquer au bom moment (par ex les archers attaquent direct et pas les autres) d'ou la première boucle en suite une fois les troupes qui peuvent attaquées sélectionnées , je veux que chacune des unités sélectionne une unité a attaqué .
J'espère que c'est clair sinon dite le moi .


RE: code d'attaque - joshua - 18-12-2006

donc si je résume:
tu as un temps auquel chaque unité intervient.
tu veux que ton code te permette de selectionner en premier les unités qui sont censés attaquer en premier puis les autres.
Est ce que tu gere les actions de chaque camp simultanément ou en différé? est ce que tu tiens compte des points de vie des unités?


RE: code d'attaque - X-ZoD - 18-12-2006

pour moi c'est claire .. ou alors ya des cois keje pense avoir compris -_-
pour l'ordre ds unités bha si ya ke les archés un simple while devrai faire laffaire
sinon je recommande un champ "priorite" pour chak type de soldat et faire un while pour hacun d'entre eux dans l'ordre des priorites Wink
je pense que c'est facil a compendre ce que je dis meme si je m'explique un peu vite

pour les degats... hum... chacun sa methode
la tout de suite je te suggere de prendre toutes les unites une par un dans le while Wink et ensuite de selectionne un ennemi au hasard et d'executer les degats...

en gros bien sure....
je me pense sur otn code et jte dis ca de suite


RE: code d'attaque - Michu - 19-12-2006

Si ca t'arrive souvent les problèmes d'accolades, utilise un éditeur comme notepad+ qui lorsque tu clique sur une accolade ou une parenthèse t'indique celle qui lui correspond, c'est plutôt pratique.

bien sur d'autres éditeurs proposent cette fonctionnalité


RE: code d'attaque - X-ZoD - 19-12-2006

arg dremweaver le propose pas .. ou alors jai pas actrive l'option -_-


RE: code d'attaque - joshua - 19-12-2006

c'est pas un outil, ca, dreamweaver...


RE: code d'attaque - simonhibou89 - 19-12-2006

ok c'est ca. Bon dans le code ci-dessus c'est que si je met la première boucle while et pas la requête mysql suivante
Code PHP :
<?php 
              $sql
= "SELECT * FROM caserne2 WHERE id = '".$touche."'";
              $req = mysql_query($sql);
              while($data = mysql_fetch_assoc($req))
Il m'affichera toute les unités d'archer et 5 fois chacune. Mais le problème c'est que quand je rajoute cette requête, je n'ai plus qu'une réponse du style
1archer_leger
3

2epeiste
1

Donc pour que mon uinté attaque 5 fois j'ai encore dû rajouter une boucle et je ne sais traité qu'une seule unité donc je voudrais que mon code compte le nbre de sortie à la cindition tir=1. Et ainsi je pourai faire une boucle qui traitera chaque unité. Mais je ne sais pas comment faire pour compter le nombre de réponse?