2 votes

Comment puis-je coordonner plusieurs attaques pour qu'elles frappent toutes en même temps ?

Je joue à un jeu (Valor sur iPad) et plusieurs personnes attaquent une même ville. Nous sommes tous à des distances différentes et avons des troupes variées qui ont des temps de déplacement différents. Nous devons être en mesure de choisir une heure pour attaquer la ville, puis de compter les durées de voyage pour déterminer l'heure à laquelle nous devons lancer l'attaque de chaque unité.

Oui, je peux le faire sur papier, mais il y a tellement d'unités et tellement de villes de départ que ce serait bien si quelqu'un pouvait me montrer comment utiliser Excel ou quelque chose du genre pour faire les calculs.

1voto

Ron Klein Points 3409

L'utilisation de variables dans une sorte de langage de programmation serait la plus simple, je pense. J'aurais simplement une variable de temps de parcours pour chaque lieu, puis une variable pour le temps de parcours de chaque unité. Il suffit ensuite de multiplier la quantité de chaque unité par la variable de temps de trajet de cette unité, puis d'ajouter ou de multiplier cela par la variable de temps de trajet du lieu, en fonction de la façon dont le jeu fonctionne.

Vous pouvez aussi le faire sur papier, mais cela prendra plus de temps.

0voto

DrakaSAN Points 2485

En javascript, en supposant que vous pouvez trouver le temps de trajet (en seconde) entre les villes, et que la vitesse de l'unité est un facteur de ce temps (l'unité 1 prend juste ce temps, l'unité 2 est 1,5 plus lente...) :

var unit = [{name: 'Unit1', factor:1},//Type of unit, with factor of speed
            {name: 'Unit2', factor:1.5},
            {name: 'Unit3', factor:1.7}],
    city = [{name: 'City1', time:20},//City, and time of travel in second
            {name: 'City2', time:25},
            {name: 'City3', time:10}],
    u = 0,
    c = 0,
    strike = new Date (2014, 11, 25, 12, 00),//Date and hour of the coordinated attack, 25 December 2014 at 12:00  for this example
    time,
    start;

while(c < city.length) {
    console.log('City ' + city[c].name);
    while(u < unit.length) {
        time = (strike.getTime() - (city[c].time * unit[u].factor * 1000));
        start = new Date(time);
        console.log('\tUnit ' + unit[u].name + ' must start at ' + start);
        u = u + 1;
    }
    c = c + 1;
    u = 0;
}

Vous pouvez l'exécuter sur node.js, il suffit de changer le nom et la variable.

(Exemple de résultat :

C:\Users\user>node valor.js
City City1
        Unit Unit1 must start at Thu Dec 25 2014 11:59:40 GMT+0100 (Romance Standard Time)
        Unit Unit2 must start at Thu Dec 25 2014 11:59:30 GMT+0100 (Romance Standard Time)
        Unit Unit3 must start at Thu Dec 25 2014 11:59:26 GMT+0100 (Romance Standard Time)
City City2
        Unit Unit1 must start at Thu Dec 25 2014 11:59:35 GMT+0100 (Romance Standard Time)
        Unit Unit2 must start at Thu Dec 25 2014 11:59:22 GMT+0100 (Romance Standard Time)
        Unit Unit3 must start at Thu Dec 25 2014 11:59:17 GMT+0100 (Romance Standard Time)
City City3
        Unit Unit1 must start at Thu Dec 25 2014 11:59:50 GMT+0100 (Romance Standard Time)
        Unit Unit2 must start at Thu Dec 25 2014 11:59:45 GMT+0100 (Romance Standard Time)
        Unit Unit3 must start at Thu Dec 25 2014 11:59:43 GMT+0100 (Romance Standard Time)

)

PS : Attention à la date, les mois sont basés sur 0 (janvier est 0, décembre est 11).

PS bis : Si quelqu'un connait la façon dont le timing est calculé dans le jeu, je lui serais reconnaissant de le poster en commentaire afin que je puisse rendre ce script utile.

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X