Question:
Chemin d'observation optimal (par longueur)
Raven Dreamer
2011-04-13 21:20:31 UTC
view on stackexchange narkive permalink

En supposant un espace de jeu carré N par N, avec les tours et les ennemis occupant une zone 1x1, quelle est la configuration optimale pour forcer les ennemis à passer le plus de distance dans le labyrinthe carré N par N?

Vous ne savez pas si cela fait une différence, mais où sont l'entrée et la sortie dans ce scénario hypothétique?
Je pense qu'il serait utile de considérer à la fois les entrées au milieu de la place et aux coins, bien qu'il s'agisse, certes, de deux cas distincts.
Question cool; Je me demande si une application "solveur" TD serait faisable?
Cette question pourrait obtenir une meilleure réponse sur http://math.stackexchange.com/ car la réponse implique de trouver le chemin le plus long d'un graphique. Placer vos tours supprime les sommets et les arêtes, modifiant le chemin le plus long actuel. Consultez http://en.wikipedia.org/wiki/Directed_acyclic_graph pour plus d'informations.
@Crag - malheureusement, je n'ai pas le vocabulaire mathématique pour poser la question de manière appropriée sur ce site. Merci pour le lien!
Comment les ennemis gèrent-ils les virages? Frappent-ils le centre de chaque bloc ou coupent-ils le coin?
@Arkive cela dépend de la façon dont le jeu est codé; cela varie d'une Défense à l'autre.
@Arkive J'allais poser une question similaire à la vôtre hier, mais je pense qu'il est sous-entendu qu'il n'y a pas de coins à gérer. Seuls les ennemis peuvent voyager vers le haut / bas / gauche / droite. Aucun mouvement diagonal. @Raven_Dreamer peut me corriger et modifier la question si je suppose trop.
Je pense que la plupart des jeux de tower defense n'ont pas l'IA programmée pour traverser les coins, mais les séparateurs les traversent souvent de toute façon, et peuvent vraiment gâcher vos conceptions.
Devrait être posté sur des puzzles de mathématiques ou de programmation :)
@RavenDreamer Vraiment ... Pas de balise? Honte à toi!
@Josefvz Il avait été étiqueté "Tower-Defense". Cependant, si les questions n'ont qu'une seule balise, elles la perdent et la balise est automatiquement supprimée après 6 mois.
Cinq réponses:
l I
2011-04-14 00:11:26 UTC
view on stackexchange narkive permalink

Eh bien, en supposant que vous commenciez dans le coin supérieur gauche et que vous finissiez dans le coin inférieur droit, le chemin le plus long possible sera celui qui zig / zague sur toute la carte du nord au sud ou d'est en ouest. J'ai écrit le programme récursif suivant pour le plaisir de trouver le chemin le plus long et de produire une sortie et il sort avec cette solution, peu importe la taille pour la taille, le poids que vous entrez:

Notez cependant que cela ne signifie pas le Le plus long chemin est en fait une stratégie optimale dans les jeux de type tourelle de défense, car vous devez prendre en compte des éléments tels que les coûts et les mises à niveau des tours. Le plus souvent, la meilleure situation est simplement de forcer les unités à se rassembler autant que possible dans une zone de mise à mort. Cela devient encore plus compliqué lorsque vous prenez en compte des choses comme le ralentissement des tours. Voici quelques exemples de sortie:

  # = wall. = cheminN = startO = endWidth = 10, Hauteur = 5N # ... # ..... #. #. #. ## .. #. #. #. # ... #. #. #. #. # ... # ... #. OWidth = 10, Hauteur = 10N # ... # ..... #. #. #. ## .. #. #. #. # ... #. # . #. #. #. #. #. #. # ... #. #. #. ## .. #. #. #. # ... #. #. #. #. #. #. # . #. #. # ... # ... #. O  

@Raven Dreamer

Oui, je réalise ce dernier cas, je ne sais pas pourquoi il ne fait pas encore cette dernière optimisation, mais j'ai modifié mon code pour inclure une entrée / sortie mobile. Voici un exemple de génération d'une entrée du milieu:

  ... # ... # ... # ... ## .... #. #. #. #. # . #. #. ##. # .. #. #. #. #. #. #. #. ##. # .. #. #. #. #. #. #. #. ##. #. . #. #. #. #. #. #. #. ##. # .. #. #. #. #. #. #. #. ##. # .. #. #. #. #. # . #. #. ##. # .. #. #. #. #. #. #. #. ##. # .. #. #. #. #. #. #. #. ##. #. .#.#.#.#.#.#.#.##.#.NON#..#.#.#.# . #. #. ##. ## .. # .. #. #. #. #. #. ##. ## < ---. # .. # .. #. #. #. #. # #. ## < ---. #. # .. # .. #. #. #. ##. ## < ---. #. #. # .. # .. #. #. ##. ## < --- besoin d'optimisation ici. #. #. #. # .. # .. #. ##. ## < ---. #. #. #. #. # .. ## .. # . ## < ---. #. #. #. #. #. ####. #. ## < ---... # ... # ... #### ... # # < ---  

J'ai supprimé mon programme depuis que j'ai découvert la source de l'erreur, je mettrai en place une version fonctionnelle plus tard, mais cela va nécessiter une réécriture. La réponse reste cependant inchangée, le chemin le plus long n'est pas si intéressant, mais c'était un exercice de programmation amusant.

Ah, c'est décevant. J'avais espéré que le labyrinthe optimal serait un peu plus intéressant que cela. Que se passe-t-il lorsque vous déplacez N au milieu du côté?
@yx_, vous voudrez peut-être vérifier votre code; le graphe final n'a pas le chemin le plus long; Une ou deux longueurs pourraient être gagnées en forçant le chemin vers le coin inférieur droit au lieu de couper une rangée plus tôt.
"... cela ne veut pas dire que le chemin le plus long est en fait une stratégie optimale dans les jeux de type tourelle de défense ..." - point merveilleux. Par exemple, si une tour a causé des dégâts de zone, vous pouvez à la place construire une «pièce» avec la tour centrée dessus pour maximiser les dégâts.
@Kevin: ou un labyrinthe où les ennemis passent plus de deux fois devant votre (vos) tour (s) la plus forte (s). Notez également que cela ne fonctionnera pas dans les jeux avec des ennemis spécialisés, par exemple. Sanctum a un ennemi qui se déplace * vraiment * rapidement sur de longues lignes droites.
@MarkTrapp - Cela semble beaucoup mieux.
@yx_ Comment avez-vous calculé la longueur? # de blocs sur le chemin? Je pense que j'ai une meilleure solution que votre programme a donné pour le cas 10x10. J'utilise moins de tours aussi.
@Arkive oui, c'est simplement par le nombre de blocs '.' dans le chemin, n'hésitez pas à poster le vôtre :) Je n'ai pas eu le temps de donner une autre chance à ce problème aujourd'hui, peut-être demain.
@yx_ Puis-je vous convaincre d'écrire un article de blog sur cette réponse?
-1
Des nouvelles sur la nouvelle version?
Arkive
2011-04-15 22:09:02 UTC
view on stackexchange narkive permalink
  N = 10 Longueur du chemin = 61Towers = 30N # ... # ....... #. #. # .... # .. # .. # .. # .. # .. # .. # .. # .. # .. # .. # .. # .. # .. # .. # .. # ... #. # .. # .... #. #. #. . # .... # ... #. O  

Cette conception diagonale utilise moins de tours que la conception verticale traditionnelle et donne une longueur de chemin légèrement plus longue pour N = 10. Pour N = 9, je n'ai pas pu produire un chemin plus long que l'approche verticale.

Je n'ai pas testé d'autres cas que N = 9, 10 et 12, mais je soupçonne que pour N = 1 + 4x , où x est un entier> 0, l'approche verticale donnera la longueur maximale du chemin, mais pas nécessairement le plus petit numéro de tour.

Plus d'investigation:

  • Entrée / sortie au milieu
  • Quelles valeurs de N est cette approche diagonale plus efficace
  • Identification de stratégies combinatoires
    • L'approche ci-dessus utilise des murs diagonaux avec des segments verticaux dans les coins NE et SW.
KAOS
2014-02-14 14:12:07 UTC
view on stackexchange narkive permalink

C'est ma version préférée. C'est une construction en spirale, c'est 190x. et 156x # Le principal point fort de ceci est que les creeps tournent autour du milieu afin que vous puissiez investir tout votre argent dans quelques tours fortes et les mettre au milieu de votre labyrinthe.

  ..... ............. # O. ################. # .. # ............. . #. # .. #. ############. #. # .. #. # .......... #. #. # .. #. #. ########. #. #. # .. #. #. # ...... #. #. #. # .. #. #. #. ####. #. # . #. # .. #. #. #. # .... #. #. #. # .. #. #. #. #. ####. #. #. # .. #. #. #. # ...... #. #. # .. #. #. #. ########. #. # .. #. #. # ......... . #. # .. #. #. ############. # .. #. # .............. # .. #. ## ##############. N # ..................  
Rich Bradshaw
2011-04-14 18:38:11 UTC
view on stackexchange narkive permalink

Sur des jeux comme la défense de tour de bureau où il y a une entrée en haut et à gauche, une ligne diagonale de haut à gauche en bas à droite avec un espace en bas à droite, avec des lignes de chaque côté parallèles avec un espace en haut à gauche répété est le meilleur, car tous les monstres passent devant chaque tour, et en améliorant le centre, peu de tous les monstres volants dépasseront les meilleures tours.

soslo
2011-04-15 02:21:45 UTC
view on stackexchange narkive permalink

Est-il supposé que les murs / tours / obstacles sont placés en permanence? Sinon, vous pouvez essayer de jongler.

Je pense que "Mazing" implique la permanence.


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...