Dans Dungeons & Dragons 5th edition (ainsi que dans la plupart des autres éditions), il existe un objet magique appelé Deck of Many Things . C'est un élément incroyablement puissant, car les cartes ont toutes des effets positifs ou négatifs très forts. Pour utiliser le jeu, un personnage déclare un nombre, puis pioche jusqu'à ce nombre de cartes, les effets s'appliquant en séquence. Si le personnage ne pioche pas toutes les cartes qu'il a déclarées, et qu'il s'est écoulé au moins 1 heure depuis la dernière carte, les autres cartes sont automatiquement piochées pour eux et les effets sont appliqués. Après que chaque carte ait été tirée, elle est retournée dans le paquet et le paquet est mélangé.
Voici une liste des effets du tirage de chacune des cartes 1 :
- Équilibre : votre esprit subit une altération déchirante, entraînant un changement d'alignement. Le licite devient chaotique, le bien devient le mal et vice versa. Si vous êtes vraiment neutre ou non aligné, cette carte n'a aucun effet sur vous.
- Comète : si vous battez à lui seul le prochain monstre hostile ou groupe de monstres que vous rencontrez, vous gagnez suffisamment de points d'expérience pour gagner un niveau. Sinon, cette carte n'a aucun effet.
- Donjon : Vous disparaissez et vous tombez dans un état d'animation suspendu dans une sphère extradimensionnelle. Tout ce que vous portez et transportez reste dans l'espace que vous occupiez lorsque vous avez disparu. Vous restez emprisonné jusqu'à ce que vous soyez trouvé et retiré de la sphère. Vous ne pouvez pas être localisé par une magie de divination, mais un sort de souhait peut révéler l'emplacement de votre prison. Vous ne piochez plus de cartes.
- Euryale . Le visage de méduse de la carte vous maudit. Vous prenez une pénalité de -2 sur les jets de sauvegarde lorsque vous êtes maudit de cette façon. Seul un dieu ou la magie de la carte The Fates peut mettre fin à cette malédiction.
- The Fates : le tissu de Reality se déroule et tourne à nouveau, vous permettant d'éviter ou d'effacer un événement comme s'il ne s'était jamais produit. Vous pouvez utiliser la magie de la carte dès que vous piochez la carte ou à tout autre moment avant de mourir.
- Flammes : un diable puissant devient votre ennemi. Le diable cherche votre ruine et empoisonne votre vie, savourant vos souffrances avant de tenter de vous tuer. Cette inimitié dure jusqu'à ce que vous ou le diable meure.
- Fou : vous perdez 10 000 XP, défaussez-vous de cette carte et piochez à nouveau du paquet, en comptant les deux tirages comme l'un de vos tirages déclarés. Si perdre autant d'XP vous ferait perdre un niveau, vous perdez plutôt un montant qui vous laisse juste assez d'XP pour garder votre niveau.
- Gemme : Vingt-cinq bijoux d'une valeur de 2000 gp chacun ou cinquante gemmes d'une valeur de 1000 gp chacun apparaissent à vos pieds.
- Idiot : réduisez définitivement votre Intelligence de 1d4 + 1 (à un score minimum de 1). Vous pouvez piocher une carte supplémentaire au-delà de vos tirages déclarés.
- Bouffon : Vous gagnez 10 000 XP, ou vous pouvez piocher deux cartes supplémentaires au-delà de vos tirages déclarés. Défaussez cette carte après l'avoir tirée.
- Clé : Une arme magique rare ou plus rare avec laquelle vous êtes compétent apparaît entre vos mains. Le MJ choisit l'arme.
- Chevalier : Vous gagnez le service d'un combattant de niveau 4 qui apparaît dans un espace que vous choisissez à moins de 30 pieds de vous. Le combattant est de la même race que vous et vous sert fidèlement jusqu'à la mort, croyant que le destin l'a attiré vers vous. Vous contrôlez ce personnage.
- Lune : Vous avez la possibilité de lancer le sort de souhait 1d3 fois.
- Voleur : un personnage non joueur du choix du MJ devient hostile envers vous. L'identité de votre nouvel ennemi n'est connue que lorsque le PNJ ou quelqu'un d'autre l'a révélée. Rien de moins qu'un sort de souhait ou une intervention divine peut mettre fin à l'hostilité du PNJ envers vous.
- Ruine : Toutes les formes de richesse que vous portez ou possédez, à l'exception des objets magiques, vous sont perdues. La propriété portable disparaît. Les entreprises, les bâtiments et les terrains que vous possédez sont perdus d'une manière qui altère le moins la réalité. Toute documentation prouvant que vous devez posséder quelque chose perdu sur cette carte disparaît également.
- Crâne . Vous invoquez un avatar de la mort - un squelette humanoïde fantomatique vêtu d'une robe noire en lambeaux et portant une faux spectrale. Il apparaît dans un espace au choix du MJ à moins de 10 pieds de vous et vous attaque, avertissant tous les autres que vous devez gagner la bataille seul. L'avatar se bat jusqu'à ce que vous mouriez ou il tombe à 0 point de vie, après quoi il disparaît. Si quelqu'un essaie de vous aider, l'assistant invoque son propre avatar de mort. Une créature tuée par un avatar de mort ne peut pas retrouver la vie.
- Étoile : augmentez l'un de vos scores de capacité de 2. Le score peut dépasser 20 mais pas 24.
- Soleil : vous gagnez 50 000 XP, et un objet merveilleux (que le MJ détermine au hasard) apparaît entre vos mains.
- Serres : chaque objet magique que vous portez ou transportez se désintègre. Les artefacts en votre possession ne sont pas détruits mais disparaissent.
- Trône : vous gagnez en compétence dans la compétence Persuasion et vous doublez votre bonus de compétence sur les contrôles effectués avec cette compétence. De plus, vous obtenez la propriété légitime d'un petit donjon quelque part dans le monde. Cependant, le donjon est actuellement entre les mains de monstres, que vous devez vider avant de pouvoir le revendiquer comme le vôtre.
- Vizir : À tout moment que vous choisissez dans l'année suivant le tirage de cette carte, vous pouvez poser une question en méditation et recevoir mentalement une réponse véridique à cette question. Outre les informations, la réponse vous aide à résoudre un problème déroutant ou un autre dilemme. En d'autres termes, la connaissance vient avec la sagesse sur la façon de l'appliquer.
- The Void : Cette carte noire est synonyme de catastrophe. Votre âme est tirée de votre corps et contenue dans un objet dans un endroit au choix du MJ. Un ou plusieurs êtres puissants gardent l'endroit. Alors que votre âme est emprisonnée de cette façon, votre corps est frappé d'incapacité. Un sort de souhait ne peut pas restaurer votre âme, mais le sort révèle l'emplacement de l'objet qui le contient. Vous ne piochez plus de cartes.
(descriptions des cartes copiées à partir du DDR 5e édition de D&D )
Certains joueurs particulièrement stupides tireront un grand nombre de cartes à la fois, dans l'espoir d'obtenir au moins une aubaine puissante pour équilibrer les cartes préjudiciables. Comme on pouvait s'y attendre, cela entraîne souvent la mort du personnage ou son incapacité à continuer à tirer des cartes.
Le défi
Simulez un dessin répété à partir d'un jeu de 22 cartes contenant de nombreuses choses , en sortant chaque carte tirée, en vous arrêtant uniquement lorsque l'une des conditions suivantes est remplie:
- Le personnage meurt (en piochant Skull , ou en piochant 5 cartes après avoir pioché Flames ou Rogue , sans bénéficier de The Fates ou Moon active 2 ).
- Le personnage est incapable de piocher plus de cartes (via les effets de Donjon , Talons , The Void 3 ou le score d'Intelligence du personnage passant à 3 ou moins via Idiot 4 ).
Règles
- L'alignement, le niveau, l'XP et les possessions du personnage autres que le deck n'ont pas d'importance.
- Le score d'Intelligence du personnage commence à 10.
- Il n'y a pas de limite maximale à l'Intelligence du personnage ou à ses utilisations stockées de souhait .
- Les utilisations de The Fates ne se cumulent pas.
- Le sort de souhait a 1 chance sur 3 d'empêcher le personnage de ne plus jamais pouvoir utiliser le sort de souhait , en plus de son effet régulier. Si cela se produit, le personnage ne peut plus utiliser le sort pour annuler Flames , Rogue ou Skull - le pouvoir de The Fates est leur seul recours.
- Le personnage fait toujours les choix suivants:
- Le destin et la lune sont uniquement utilisés pour sortir le personnage des ennuis de Skull , Flames et Rogue . Le personnage ne les utilisera jamais pour inverser l'effet de Serres ou le sort de souhait ne pouvant plus être lancé, et ne peut pas les utiliser pour inverser les effets de Donjon et du Vide . Le personnage utilisera immédiatement un sort de souhait pour annuler les effets de Crâne , Flammes ou Voleur lors du dessin de l'un d'entre eux, et il réussira toujours. Le personnage utilisera toujours The Fates avant d'utilisersouhaite .
- Le personnage choisit toujours de tirer plus de cartes avec les effets d' Idiot et de Bouffon (de manière appropriée).
- L'effet de Star est toujours utilisé pour augmenter l'Intelligence de 2, pour éviter d'avoir à arrêter de piocher des cartes via l'effet d' Idiot .
- L'allié PNJ invoqué par Knight n'est pas assez puissant pour sauver le personnage de sa disparition prématurée.
- Toute augmentation ou diminution de l'Intelligence (via Star ou Idiot , respectivement) doit être reflétée dans la sortie (soit en notant le changement (
+2
ou-(1d4+1)
), soit en émettant le score d'Intelligence actuel après que l'effet se soit produit). - Toute modification du nombre d' utilisations de souhaits que le personnage a stockées doit également être reflétée dans la sortie, y compris un souhait empêchant le personnage d'utiliser le souhait .
- Toutes les sélections aléatoires proviennent de distributions discrètes uniformes.
- Vous pouvez choisir n'importe quel ensemble de 22 sorties distinctes pour les cartes à tirer - les noms des cartes n'ont pas à être utilisés.
- Vous pouvez générer des modifications dans Intelligence, souhaiter des utilisations et souhaiter devenir inutilisable de la manière cohérente et non ambiguë de votre choix.
- Le personnage peut utiliser le souhait ou le pouvoir de The Fates pour éviter la mort si la carte appropriée est tirée comme cinquième carte après avoir pioché Rogue ou Flames . Ce n'est que si le souhait est inutilisable ou que toutes les utilisations ont été utilisées, ainsi que The Fates n'est pas dessiné à temps ou a déjà été utilisé, que le personnage mourra.
- Fool et Jester sont jetés après avoir été tirés. Toutes les autres cartes sont immédiatement renvoyées dans le jeu, puis le jeu est mélangé.
- S'il y a plusieurs piles de Voleur et / ou de Flamme actives, une seule utilisation de The Fates ou Wish est nécessaire pour les dissiper toutes.
- Piocher plusieurs cartes à la fois via Jester ou Fool ne fait pas avancer le compteur de tours sur Flames et / ou Rogue .
Exemples
Chaque ligne représente une séquence de tirages. Les modifications apportées à Intelligence et aux utilisations souhaitées sont indiquées par la valeur actuelle entre parenthèses. Une utilisation à C
côté d'un souhait indique ce souhait ne peut plus être utilisé. A F
indique que le pouvoir de The Fates a été utilisé pour éviter la mort. Des commentaires supplémentaires sont fournis à titre explicatif, sous la forme de commentaires de style Python.
Void # Can't draw with your soul ripped out of your body.
Throne, Euryale, Rogue, Star (12), Donjon # Can't draw while in suspended animation.
Moon (3), Throne, Sun, Flames (2), Fool, Idiot (6), Flames (1 C), The Fates, Skull (F), Skull # Two uses of wish were used on the two Flames draws. The second use rendered the character unable to use wish again. The Fates was used on the first Skull. When the second Skull came up, there was no way for the character to save himself, so he died.
Idiot (5), Star (7), Idiot (3) # Too dumb to draw.
Sun, Star (12), Talons # Talons destroys the deck.
Fates, Throne, Moon (2), Fates, Skull (F), Skull # Fates doesn't stack
Fates, Flames, Euryale, Fates, Skull, Void
Flames, Comet, Euryale, Gem, Knight, Key # 5 draws after Flames, the hero dies
Rogue, Balance, Throne, Gem, Idiot (8), Vizier, Sun # 5 draws plus one extra from Idiot
Implémentation de référence
#!/usr/bin/env python3
import random
deck="""Sun
Moon
Star
Throne
Key
Knight
Void
Flames
Skull
Ruin
Euryale
Rogue
Jester
Vizier
Comet
Fates
Gem
Talons
Idiot
Donjon
Balance
Fool""".split()
random.shuffle(deck)
int_stat = 10
wish_uses = 0
wish_expired = False
fates = False
turn_count = None
while True:
card = deck.pop()
if card == "Fates":
if turn_count is None:
fates = True
print(card)
else:
turn_count = None
fates = False
print("{} (F)".format(card))
elif card == "Moon":
wish_uses += random.randint(1, 3)
if turn_count is None:
print("{} ({})".format(card, wish_uses))
else:
turn_count = None
wish_uses -= 1
print("{} ({}) ({})".format(card, wish_uses+1, wish_uses))
elif card in ["Flames", "Rogue"]:
if turn_count is None:
turn_count = 5
if fates:
fates = False
turn_count = None
print("{} (F)".format(card))
elif wish_uses > 0 and not wish_expired:
wish_uses -= 1
turn_count = None
wish_now_expired = random.choice([False, False, True])
print("{} ({}{})".format(card, wish_uses, " C" if wish_expired else ""))
wish_expired = wish_now_expired
else:
print("{}".format(card))
elif card == "Idiot":
int_stat -= random.randint(2, 5)
print("{} ({})".format(card, int_stat))
if turn_count is not None:
turn_count += 1
if int_stat <= 3:
break
elif card == "Star":
int_stat += 2
print("{} ({})".format(card, int_stat))
elif card == "Skull":
if fates:
fates = False
turn_count = None
print("{} (F)".format(card))
elif wish_uses > 0 and not wish_expired:
wish_uses -= 1
turn_count = None
wish_now_expired = random.choice([False, False, True])
print("{} ({}{})".format(card, wish_uses, " C" if wish_expired else ""))
wish_expired = wish_now_expired
else:
print(card)
break
elif card in ["Donjon", "Void", "Talons"]:
print(card)
break
elif card == "Fool":
print(card)
if turn_count is not None:
turn_count += 1
elif card == "Jester":
print(card)
if turn_count is not None:
turn_count += 2
else:
print(card)
if card not in ["Fool", "Jester"]:
deck.append(card)
random.shuffle(deck)
if turn_count is not None:
turn_count -= 1
if turn_count == 0:
break
[1]: Techniquement, il existe deux variantes: une avec 13 cartes et une avec 22 cartes. Nous ne sommes préoccupés que par la version complète de 22 cartes ici.
[2]: Flamme et Voleur ne tuent normalement pas le personnage, mais le PNJ hostile est supposé avoir trouvé et tué le personnage stupide après avoir eu le temps de piocher 5 cartes supplémentaires. Le spectre invoqué par Skull est extrêmement difficile à combattre, et on suppose que le personnage ne gagne pas. Seule intervention divine / magique via The Fates ou Moon peut sauver le personnage stupide de sa mort par ces 3 cartes.
[3]: Nous supposons que les amis du personnage sont assez intelligents pour ne pas essayer de sauver le personnage et leur permettre de piocher plus de cartes.
[4]: Un score d'Intelligence de 3 est à peu près équivalent à un animal sauvage, qui ne serait pas en mesure de faire activement le choix de piocher des cartes.
Réponses:
JavaScript (ES6), 379 octets
Non golfé
Afficher l'extrait de code
Explication de la sortie
Les cartes vont de 0 à 21 comme suit:
Une inversion de Skull, Flames ou Rogue via The Fates est indiquée par a
0
.JavaScript (ES6), 792 octets
Version précédente utilisant des noms de carte, avant de découvrir que 22 sorties distinctes sont autorisées.
Non golfé
Afficher l'extrait de code
la source
Kotlin , 1173 octets
Il est également exécutable. - Essayez-le en ligne!
Il y a probablement beaucoup de bugs ... faites le moi savoir dans les commentaires!
la source
Fool
ouJester
.Java 8,
481480 octetsPortage de l'implémentation de référence Python3 en Java, puis déclinaison. Peut certainement être joué plus, mais ce n'est qu'une version initiale pour m'assurer que j'ai tout fait correctement.
Si quelqu'un repère des erreurs (
cela ne me surprendrait pas s'il y a desmodifications: déjà corrigé comme sept ou huit erreurs depuis que j'ai posté cela ..), veuillez me le faire savoir.Sorties de carte:
Format de sortie pour les souhaits laissés, les souhaits utilisés, l'intelligence gauche et l'indicateur utilisé:
Explication:
Essayez-le ici ou essayez-le ici avec une sortie assez imprimée .
la source
Jester; Fates; Ruin; Euryale; Gem; Ruin; Ruin; Rogue(Fates used) Gem; Balance; Throne; Rogue(wishes left: 0; wishes used: 0); Rogue(wishes left: 0; wishes used: 0);
Pourquoi cela s'est-il arrêté?