Ce forum est maintenant fermé, seule cette archive statique reste consultable.
 Page :   1  2
Page Suivante
Auteur Sujet :

Remplir un tableau suivant le choix dans une liste deroulante

n°16933
jxano
Le 'x' ? C'est pour décorer.
Profil : Membre
Posté le 19-06-2006 à 11:15:38  
 

Reprise du message précédent :
En fait, pour les nombres, il faut que tu rajoutes ça dans les champs nb0 à nb11 du tableau :
 
<td> <input name="Nb0" type="text" onChange="recalculer()"> </td>
 
Pour l'affichage de la 1ère race par défaut, heu... Bonne question, mais je n'ai pas encore la réponse. Peut-être qu'il faut chercher du côté de la propriété defaultSelected de l'objet Option.


---------------
Miximus in lecto, fateor peccavimus hospes. Si dices quare nulla matella fuit !
mood
Pub
Posté le 19-06-2006 à 11:15:38  
 

n°16934
mihai
Animé-vore
Profil : Membre
Posté le 19-06-2006 à 12:49:28  
 

TP de Javascript accelere avec toi ;) et j'ai en meme temps un peu amelioré le tableau mais ca deconne un peu car j'ai oublié que les IF qui se suivent et qui finissent avec un else posent probleme (le else se referant seulemnt au dernioer if... donc passage pas des switch...  
 
j'oubliais^^ merci pour le onchange j'ai completement oublié que ca existait (et pourtant je le connaissais)
 
pour info voila l'avancement
 

Citation :

sommeMelee= 0; sommeArcher= 0; sommeAerien= 0; // Mise à 0 totaliseurs    
sommeMeleed= 0; sommeArcherd= 0; sommeAeriend= 0; // Mise à 0 totaliseurs
sommeMeleea= 0; sommeArchera= 0; sommeAeriena= 0; // Mise à 0 totaliseurs
for (i= 0; i < nbEntrees; i++)
    {
    // Variables intermédiaires pour simplifier les écritures
    caseNb= eval ("document.Affichage.Nb"+i);
    caseTyp= eval ("document.Affichage.Typ"+i);
    casePuis= eval ("document.Affichage.Puis"+i);
    caseVal= eval ("document.Affichage.Val"+i);
 caseQual= eval ("document.Affichage.Qual"+i);
 
    if (caseTyp.value=="M" ) {
     //if (caseQual.value=="Embuscade" ) Ka=1.3;
  //if (caseQual.value=="Sentinelle" ) Kd=1.3;
  //else{
  //Ka=1;Kd=1;
   switch (caseQual.value)  {
  case "Embuscade"  : Ka=1.3;
  break;
  case "Sentinelle"  : Kd=1.3;
  break;
  case ""  : Ka=1;Kd=1;
  break;
  default : Ka=1;Kd=1;
  }
      casePuis.value = parseInt(caseVal.value) * parseInt(caseNb.value) * multMelee;
      sommeMelee += parseInt(casePuis.value);
      sommeMeleea += Ka*parseInt(casePuis.value);
      sommeMeleed += Kd*parseInt(casePuis.value);
   }
 
 
.....
 
  // Cases "totaux" du bas
  document.Affichage.PuisT.value= sommeMelee + sommeArcher + sommeAerien;
  document.Affichage.PuisTm.value= sommeMelee;
  document.Affichage.PuisTr.value= sommeArcher;
  document.Affichage.PuisTa.value= sommeAerien;
  // Cases "totaux" du bas
  document.Affichage.PuisT_a.value= sommeMeleea + sommeArchera + sommeAeriena;
  document.Affichage.PuisTm_a.value= sommeMeleea;
  document.Affichage.PuisTr_a.value= sommeArchera;
  document.Affichage.PuisTa_a.value= sommeAeriena;
 
....
 
    <tr>
      <th>Attaque/Defense</th>   <!-- En-têtes de tableau -->
      <th>Puissance Totale</th>
      <th>Puissance Melee</th>
      <th>Puissance Archer</th>
      <th>Puissance Aerien</th>
    </tr>
 <tr>
      <td> Puissance brute</td>
      <td> <input name="PuisT" type="text"> </td>
      <td> <input name="PuisTm" type="text"> </td>
      <td> <input name="PuisTr" type="text"> </td>
      <td> <input name="PuisTa" type="text"> </td>
    </tr>
 <tr>
      <td> Défense</td>
      <td> <input name="PuisT_d" type="text"> </td>
      <td> <input name="PuisTm_d" type="text"> </td>
      <td> <input name="PuisTr_d" type="text"> </td>
      <td> <input name="PuisTa_d" type="text"> </td>
    </tr>
 <tr>
      <td> Attaque</td>
      <td> <input name="PuisT_a" type="text"> </td>
      <td> <input name="PuisTm_a" type="text"> </td>
      <td> <input name="PuisTr_a" type="text"> </td>
      <td> <input name="PuisTa_a" type="text"> </td>
    </tr>


n°16935
mihai
Animé-vore
Profil : Membre
Posté le 19-06-2006 à 13:07:56  
 

100% fonctionnel^^
 
maintenant je vais passer a un qui est plus compliqué mais j'ia une question ;) : est il possible de faire de la lecture de texte collé dans une fenetre input par exemple.
 

Citation :

Dans la bataille Toootem
 
VS
 
Purified, Shuriken, Goldencamelot, Makak, Dzadza, Pelican, Sieurlavoie, Akaenai
 
Attaquants :
Geollier de la Tour Noire Au départ : 158, Mort : 101
Esprit de la Guerre Au départ : 105, Mort : 67
Arquebusier Orque Au départ : 92, Mort : 59
Dévoreur de Chair Au départ : 21, Mort : 13
Pourcentage de perte pour les attaquants : 63.9%
 
Défenseurs :
Gnome des Bois Au départ : 2078, Mort : 3
Gnome de Choc Au départ : 530, Mort : 1
Frondeur Gnome Au départ : 456, Mort : 1
Soldat Impérial de Cyrus Au départ : 1060, Mort : 1
Chien de Meute Au départ : 2985, Mort : 4
Loups de Fenris Au départ : 10017, Mort : 14
Fou de Guerre Au départ : 190, Mort : 0
Nécromancien Au départ : 246, Mort : 0
Squelette Au départ : 2716, Mort : 4
Cavalier des Huns Au départ : 33, Mort : 0
Aigle Au départ : 30, Mort : 0
Ghoule Au départ : 534, Mort : 1
Satyre de Kalzar Au départ : 652, Mort : 1
Invocateur Infernal Au départ : 223, Mort : 0
Corrupteur de Morgorocht Au départ : 574, Mort : 1
Pourcentage de perte des défenseurs : 0.1%


 
je l'ai fait sous excel ->je lis jusqu'au ":" -> je deduis l'unité-> je prends le nombre qui suit -> je balance la puissance correspondante :)
 
Mais est il possible de lire par exemple :
-ligne par ligne
-des morceaux de string (Left(10) pour les 10 premieres lettres... ou caracteres...)
 
Sinon http://socoliuc.free.fr/xoops_2013 [...] downloads/ pour voir le resultat actuel ^^

n°16946
jxano
Le 'x' ? C'est pour décorer.
Profil : Membre
Posté le 19-06-2006 à 20:05:17  
 

J'ai vu le "résultat final"... Pas mal.
 
Ton exemple de rapport de bataille est visiblement engendré par une machine. Il ne sera donc pas trop difficile à lire par une autre machine... Avec un objet Textarea (pas besoin de le définir trop grand, 3 ou 4 lignes suffiront), une fois le texte collé dedans, on peut déclencher la lecture de son contenu avec un bouton (comme tu le disais).
 
La lecture ligne à ligne ou paquets de 10 caractères ne me semble pas une bonne idée. C'est compliquer beaucoup les choses. Il y a une fonction qui donne la position du début d'une chaîne dans une autre. Utilisons-la... L'idée : on repère d'abord le mot "défenseur", ensuite on parcourt toute la liste des combattants (elle est limitée, on peut se le permettre) et selon l'endroit où on trouve le nom, on pourra le classer comme combattant ou défenseur. Avec la position du nom, on déduira facilement celle du nombre.
 
Je vais prendre ton exemple et faire des tests. Il y a 14 types de défenseurs dans ta liste, est-ce normal ? Et que fait-on des morts ?


Message édité par jxano le 19-06-2006 à 20:06:43

---------------
Miximus in lecto, fateor peccavimus hospes. Si dices quare nulla matella fuit !
n°16947
jxano
Le 'x' ? C'est pour décorer.
Profil : Membre
Posté le 20-06-2006 à 00:17:48  
 

Tiens, tu peux essayer d'insérer ça dans la partie <script> :

Citation :

function lecture ()
{
rapport= document.Entree.Saisie.value;
jeton= "Au départ : ";
//alert(rapport);
posDef= rapport.indexOf("Défenseurs" );
if (posDef == -1) { alert ("<Défenseurs> pas trouvé" ); return; }
nbDef=0; nbComb=0; msg= "";
for (i=0; i<144; i++)
  {
  posPerso= rapport.indexOf(personnage[i]);
  if (posPerso == -1) continue;
  if (posPerso < posDef) { nbComb++; msg += "Combattant : "; }
  else { nbDef++; msg += "Défenseur : "; }
  msg += personnage[i]+", nombre = ";
  posJeton= rapport.indexOf(jeton, posPerso);
  posVirg= rapport.indexOf(",", posJeton);
  nb= rapport.substring(posJeton + jeton.length, posVirg);
  msg += nb + "\n";
  }
alert(msg+"\nCombattants : "+nbComb+"\nDéfenseurs : "+nbDef);
}

Et ça dans le <body> :

Citation :

<form name="Entree">
  <table cellpadding=5>
    <tr>
      <th>Ins&eacute;rer le rapport de bataille ici</th>
      <th>Lancer</th>
    </tr>
    <tr>
      <td> <textarea name="Saisie" rows="4" cols="50" textToDisplay>Coller ici</textarea> </td>
      <td> <input type="button" name="Depart" value="-  Lecture  -" onClick="lecture()"> </td>
    </tr>
  </table>
</form>

Pour l'instant, toutes les infos du rapport de bataille sont mises dans une boîte alert(), mais leur insertion dans le tableau ne posera pas de difficultés.
 
Justement, que met-on dans le tableau ? Seulement les données correspondant à l'armée courante ? Comment différencier combattants et défenseurs ?


---------------
Miximus in lecto, fateor peccavimus hospes. Si dices quare nulla matella fuit !
n°16961
mihai
Animé-vore
Profil : Membre
Posté le 20-06-2006 à 13:21:32  
 

me revoila ^^
 
->donc ce que j'ai fait en excel^^ etait de la lecture ligne par ligne ET qui reperait ou se situait le mot "Au depart" (ca permet d'avoir l'unité). une fois trouvé j'allais chercher dans ma liste d'units et je refaisais des calculs ^^
 
... (je n'ai aps encore essayé ton code mais je le fais cet aprem et je te dis ce qu'il en sera pour al suite)
 
sinon pour le resultat : On veut voir la puissance comme dans le premier calculateur / Puissance Attaque(Melee/Archer/aerien) puissance defense(Melee/Archer/aerien)  
 
apres un petit plan d'experiences je peux determiner a l'avance quels seront les % de pertes si j'envoie mes troupes sur un ennemi ^^ (oui c'est un peu lache mais strategique;))
 
Je reviens en fin d'aprem avec un resultat j'espere:d
 
====================================
EDIT: bon je viens de tester ton morceau de code ^^ (EXCELLENT)
->le javascript permet de faire plein de chose tout compre fait ^^
->on peut donc faire tout ce que j'ai ecrit au dessus ;)
->Maintenant faut que je trouve comment faire coincider une lecture d'un char avec une liste d'elements afin d'en extraire l'indice^^(je me plonge dans ton code de suite)


Message édité par mihai le 20-06-2006 à 13:28:59
n°16966
jxano
Le 'x' ? C'est pour décorer.
Profil : Membre
Posté le 20-06-2006 à 14:06:25  
 

En VBA sous Excel, j'aurais procédé EXACTEMENT de la même façon [en remplaçant chaine1.indexOf(chaine2) par InStr(chaine1,chaine2)].
 
Je ne vois pas où tu veux en venir dans ta dernière phrase : de quel indice parles-tu ? Je pense à première vue que le rapport sert à remplir les champs "nombre" du tableau, mais là où ça coince, c'est que le rapport concerne les combattants de plusieurs armées et que le tableau n'affiche qu'une seule armée à la fois. Quel est le but du calculateur ?


Message édité par jxano le 20-06-2006 à 14:07:24

---------------
Miximus in lecto, fateor peccavimus hospes. Si dices quare nulla matella fuit !
n°16967
mihai
Animé-vore
Profil : Membre
Posté le 20-06-2006 à 14:38:08  
 

c'est pas du vba mais du calcul sur des cellules(je faisais collage spécial et il remplisait une suite ce cellules)
 
Sinon:
-quand on trouve un unit de type Gnome des Bois et un nombre iol faut pouvoir trouver la puissance correspondant (et c'est a l'indice le represnetant dans la liste des units que je me referais pour pouvoir trouver la puissance... je sais pas si je suis clair...)

n°16975
mihai
Animé-vore
Profil : Membre
Posté le 20-06-2006 à 15:59:12  
 

je viens de deschifrer el code et c'est nikel ;)
 
Je m'explique :  
-indexof() permet de retirer justement cet indice dont je te parle (mais je m'explique mal je pense)
-je suis entrain d'essayer de refaire un tableau pour mettre tout dedans (ton exemple est parfait ^^) et je vais essayer de mettre l'influence des aptitudes Archer/Melee/aerien en jeu pour faire varier la puissance totale (mais ca ca prend du temps)
 

Citation :

Listes des habilités
 
Aérien
Les unités ayant cette habilité sont capables de voler sur de grandes distances et d’effectuer des offensives à partir des cieux.
 
Archer
Les unités archers peuvent attaquer en tout temps tous les types d’unité, mais sont également vulnérables face à tous les types d’unité.
Effet : L’unité peut toujours atteindre les cibles aériennes et elle est 10% plus efficace contre les unités aériennes.
 
Bouclier
Les unités ayant l’habilité bouclier ont des protections spéciales qui les protègent contre les projectiles.
Effet : L’unité est plus efficace de 15% contre les archers.
 
Carapace
Les unités ayant l’habilité carapace ont des capacités défensives qui les protègent particulièrement bien des attaques aériennes.
Effet : L’unité est plus efficace de 15% contre les unités aériennes.
 
Embuscade
Les unités ayant cette habilité sont particulièrement douées pour prendre d’assaut les formations et les places fortes par le biais de stratagèmes et de tactiques de combat.
Effet : La valeur de l’unité augmente de 30% lorsqu’elle est à l’attaque.
 
Enragé
Les unités possédant cette habilité sont prêtes à tout pour s’assurer la victoire et ne craignent pas la mort en aucun cas.
Effet : La valeur de l’unité augmente de 20% lorsque l’armée ennemie est plus puissante.
 
Magique
Les unités ayant cette habilité sont capables de grands prodiges et peuvent affecter les formes spirituelles avec une grande efficacité.
Effet : La valeur de l’unité augmente de 33% face à des unités spirituelles.
 
Mêlée
Les unités de mêlée n’ont aucune faculté spéciale, mais elles sont limitées dans leurs attaques car elles ne peuvent pas attaquer les unités aériennes qui n’ont pas encore agit.
Effet : L’unité n’attaque les unités aériennes qu’à 38% de sa puissance.
 
Raid
Les unités ayant cette habilité sont efficaces une fois que les défenses ennemies ont été passées car elles sont particulièrement efficaces pour faire des prisonniers.
Effet : L’unité capture et/ou tue 20% plus de population.
 
Sauvage
Les unités possédant cette habilité se battent comme des bêtes, laissant peu de chances à leurs adversaires.
Effet : L’unité est plus efficace de 15% contre les unités de mêlée.
 
Sentinelle
Les unités ayant cette habilité connaissent bien les structures défensives et les différentes formations de combat, ce qui leurs confèrent de grands avantages lorsqu’elles défendent le royaume.
Effet : La valeur de l’unité est augmentée de 30% lorsque celle-ci est en position défensive.
 
Siège
Les unités ayant cette habilité sont faites spécialement pour réduire au néant les plus grands châteaux, entraînant ainsi dans la mort les gens qui défendent la structure.
Effet : L’unité ignore les palissades, les murs et les remparts lorsqu’elle attaque.
 
Spirituel
Les unités spirituelles habitent dans un plan de réalité un peu différent, ce qui les rend immatérielles à la plupart des contraintes physiques.
Effet : L’unité réduit les dommages provenant d’unités non-magiques de 50%.
 
Surnombre
Les unités ayant cette habilité sont produites en série et la quantité est de mise avant la qualité.
Effet : 3 unités sont invoquées plutôt qu’une seule, mais elles sont moins efficaces de 25% contre les unités de type Siège.
 


Message édité par mihai le 20-06-2006 à 16:02:53
n°16978
mihai
Animé-vore
Profil : Membre
Posté le 20-06-2006 à 17:23:48  
 

Rajout deja du calcul A/M/R pour les deux camps
->tu peux jetter un coup d'oeil a la page du calculateur ;)
 
->Ma question est maintenant : existe t'il un formalisme pour separer les miliers par un espace ou par un point?
en gros ne pas avoir 650000 mais 650 000 ou 650.000
 
->je plonge dans l'utilisation des habiletés ce soir si j'ai le temps ET encore merci tu m'as fait avancer a une vitesse PHENOMENALE
:d
 
Je viens de t'envoyer un MP pour que tu puisses te loguer sur le site(j'ai du restreindre les droits d'acces dernierement et les anonymes marchent plus)


Message édité par mihai le 20-06-2006 à 17:32:09
 Page :   1  2
Page Suivante
© 2000-2024 Forum.rue-montgallet.com - Tous droits réservés