JeuWeb - Crée ton jeu par navigateur
[Résolu][Javascript] Répartition de points - 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][Javascript] Répartition de points (/showthread.php?tid=2396)

Pages : 1 2


[Résolu][Javascript] Répartition de points - Eluox - 11-02-2008

Salut a tous, je débute dans le js, et j'ai entamé un script d'inscription en php, qui utilise du js.

Les joueurs souhaitant s'inscrire, auront un quota de 10 points, qu'il repartiront dans différentes capacités.

Tout sa se faisant dans des inputs, sans recharger la page Wink

Tout cela fonctionne, cependant, je bloque sur une chose facile, les limitations,

Si un joueur entre 500 en première capacités, sa fera 500/10, mais si il rentre 10 en première et 5 en deuxième, sa fera 15/10.

Il me faut donc faire une série de if/elseif/else, mais je vois pas les differentes manière de faire sa Confused

Vous m'avez compris ou non ? Je suis pas toujours compréhensible :p


EDIT : J'ai pensé a simple, si le total > le max, je fait un document.forms.f.reset(); , votre avis


RE: Probleme JS => Repartition points - joshua - 11-02-2008

j'ai un script qui fait ca....
Je te dis ca plus tard, la j'suis au boulot


RE: Probleme JS => Repartition points - Eluox - 11-02-2008

je suis de retour, pour vous jouer un mauvais tour, euh, pour vous demander de l'aide :p

Le script fonctionne très bien, j'ai trouver comment faire Wink

Mais il y a un problème, je souhaite que la valeur totale soit transmise a un champ hidden ( securité Wink ), le problème c'est que sa fonctionne pas Confused

Code PHP :
<?php 
<table style="text-align : center; ">
<
tr>
<
td>Agilité :</td>
<
td>Force : </td>
<
td>Intelligence</td>
<
td>Culture</td>
<
td>Total : </td>
</
tr>
<
tr>

<
td><input type="text" name="agil" size="10" style="text-align : center;" id="agil" value="0" onkeyup="utiliser('utili', this);" /></td>
<
td><input type="text" name="force" size="10" style="text-align : center;" id="force" value="0" onkeyup="utiliser('utili', this);" /></td>
<
td><input type="text" name="intel" size="10" style="text-align : center;" id="intel" value="0" onkeyup="utiliser('utili', this);" /></td>
<
td><input type="text" name="culture" size="10" style="text-align : center;" id="culture" value="0" onkeyup="utiliser('utili', this);" /></td>
<
td><input type="text" disabled="disabled" name="total" size="10" style="text-align : center;" id="utili" value="0/40" /></td>
</
tr></table>
<
script type="text/javascript">
function $(
elem){return document.getElementById(elem);}

function
utiliser(id, item) {

var
total = 40;
var use =
0;
var
before = 0;
var
stats = new Array("agil", "force", "intel", "culture");

for(var
i in stats)
{
use += $(
stats[i]).value*1;

if(
stats[i] != item.id)
{
before += $(stats[i]).value*1;
}
}
if(use >
total)
{
item.value = total - before; use = total;
}
$(
id).value = use+'/40';
$(
'truc').value = use;



}
</
script>
<
input type="hidden" name="truc" id="truc" />



RE: Probleme JS => Repartition points - comg - 11-02-2008

Sa faisait un moment que je cherchai un script pour ça, je te l'emprunterai trés certainement un de ces 4 Big Grin avec ton auth bien sur...


RE: Probleme JS => Repartition points - Eluox - 11-02-2008

Oui vas-y, je poste la version corrigé Wink

Code PHP :
<?php 
<table style="text-align : center; ">
<
tr>
<
td>Agilité :</td>
<
td>Force : </td>
<
td>Intelligence</td>
<
td>Culture</td>
<
td>Total : </td>
</
tr>
<
tr>

<
td><input type="text" name="agil" size="10" style="text-align : center;" id="agil" value="0" onkeyup="utiliser('utili', this);" /></td>
<
td><input type="text" name="force" size="10" style="text-align : center;" id="force" value="0" onkeyup="utiliser('utili', this);" /></td>
<
td><input type="text" name="intel" size="10" style="text-align : center;" id="intel" value="0" onkeyup="utiliser('utili', this);" /></td>
<
td><input type="text" name="culture" size="10" style="text-align : center;" id="culture" value="0" onkeyup="utiliser('utili', this);" /></td>
<
td><input type="text" disabled="disabled" name="total" size="10" style="text-align : center;" id="utili" value="0/40" /></td>
</
tr></table>
<
table style="text-align : center; width : 100%;"><tr><td>
<
input type="text" size="45" disabled="disabled" value="Il vous reste 40 points a utiliser" id="reste">
</
td></tr></Table>
<
script type="text/javascript">
function $(
elem){return document.getElementById(elem);}

function
utiliser(id, item) {

var
total = 40;
var use =
0;
var
before = 0;
var
stats = new Array("agil", "force", "intel", "culture");

for(var
i in stats)
{
use += $(
stats[i]).value*1;

if(
stats[i] != item.id)
{
before += $(stats[i]).value*1;
}
}
if(use >
total)
{
item.value = total - before; use = total;
}
$(
id).value = use+'/40';

var
reste = total - use;
if(
reste > 0 ) { $('reste').value = 'Il vous reste '+reste+' points a utiliser'; }
else
{ $(
'reste').value = 'Vous n\'avez plus de points a utiliser'; }




}
</
script>



RE: [resolu ]JS => Repartition points - Roworll - 11-02-2008

Je rajoute juste un petit conseil de rigueur : Même si tu fais des vérifications dans ton JS, revérifie via PHP que la répartition est bonne (tous les points dépensés et pas de dépassement).
Cela évitera quelques triches.


RE: [resolu ]JS => Repartition points - Eluox - 11-02-2008

Oui c'est fait, juste une verif histoire de voir si sa depasse pas les 40 points total Wink


RE: [resolu ]JS => Repartition points - Loetheri - 11-02-2008

On pense à mettre cela sur le Wiki ?

Merci ;-)


RE: [resolu ]JS => Repartition points - Eluox - 11-02-2008

Je fignole le script, je cherche comment marche le wiki, j'améliore, et je le fait :p


La faut je mette un math.floor(), je crois c'est sa, pour arrondir si décimale il y a Wink


RE: [resolu ]JS => Repartition points - Roworll - 11-02-2008

Une autre petite observation : tu as géré le cas ou le joueur tapes des valeurs non numériques ?