2010-09-26 19 views
3

J'essaie de recréer ce jeu conquerclub (comme risque):partiellement re-créer jeu comme risque basé sur les fichiers journaux incomplets

http://conquerclub.barrycarter.info/ONEOFF/7460216.html

En d'autres termes, je veux savoir qui possédait chaque territoire à chaque point et combien de troupes ils avaient sur ce territoire. Ma principale source d'informations est le journal de jeu. Notes:

% Ce n'est pas dans le journal de jeu, mais tous les territoires commencent avec 3 troupes. Comme nous connaissons les propriétaires du territoire à la fin du jeu, et que le Game Log mentionne tous les changements de propriétaire, il est facile de déterminer les propriétaires des territoires au . Le défi consiste à trouver le nombre de troupes sur un territoire à .

% Le journal de jeu donne des informations sur le déploiement des troupes, le renforcement, et la conquête.

% Cependant,, le journal de jeu est incomplet. Supposons que le territoire X attaque territoire Y sans succès, mais les deux territoires perdent des troupes dans le processus . Le journal de jeu ne le mentionnera pas.

% Il est probablement pas possible (en général) pour trouver le nombre exact des troupes sur un territoire à un moment donné, donc je suis à la recherche d'une gamme.

% J'ai essayé d'alimenter les données en Mathematica sous la forme d'une série d'inégalités , mais comme le manuel le signale, le temps de calcul augmente de de manière exponentielle avec le nombre d'inégalités. Même avec un petit nombre d'inégalités, il se bloque. De plus, je ne suis pas convaincu Mathematica est le bon outil ici.

% Des idées? Un autre exemple est: http://conquerclub.barrycarter.info/ONEOFF/7562013.html

% je sais à propos http://userscripts.org/scripts/show/83035 mais uniquement pour les pistes \ propriétaires, pas le nombre de troupes.

Répondre

2

Vous pouvez utiliser la programmation par contraintes de Prolog (plus précisément, CLP/FD). Il faudrait que vous encodiez toutes les règles dans Prolog, ce qui pourrait être une tâche non triviale. Cependant, Prolog pourrait alors vous montrer toutes les manières possibles de jouer à un tel jeu (légalement en termes de règles encodées), ou simplement afficher des plages de valeurs possibles. En outre, alors que CLP/FD dans Prolog est parfois assez rapide, il peut être difficile de l'utiliser pour résoudre votre problème rapidement. La plupart des solveurs libres ont beaucoup de bizarreries.

Encore une fois, je pense que c'est une tâche non triviale, et encore plus grande si vous n'avez pas programmé dans Prolog plus tôt. Mais je suis assez sûr que cela vous donnerait des réponses que vous cherchez.