Void & Ender_Dragon
Ender_Dragon Ender_Dragon
Π― Ρ‚ΡƒΡ‚ ΠΊΠ°ΠΊ Ρ€Π°Π· Π±ΠΈΠ»Π΄ΠΎΠΌ для Π²Π΅Ρ‡Π΅Ρ€ΠΈΠ½ΠΊΠΈ Π² D&D 5e Π²ΠΎΠΆΡƒΡΡŒ, ΠΎΠ½ Π½Π° идСальном Ρ‚Π°ΠΉΠΌΠΈΠ½Π³Π΅ ΠΈ скрытности дСрТится – прям ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ±ΠΎ Ρƒ ΠΏΠ»ΡƒΡ‚Π°. Как Π±Ρ‹ Ρ‚Ρ‹ ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ этого подошСл с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния программирования?
Void Void
Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ…ΠΎΠ΄ ΠΊΠ°ΠΊ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΡƒΡŽ Π½ΠΎΠ²ΠΎΠ΅ состояниС: позиция ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Ρ‹, ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ скрытности, бонус ΠΊ Π°Ρ‚Π°ΠΊΠ΅ ΠΈ всС ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ дСйствия. ΠŸΠΎΡ‚ΠΎΠΌ создай ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отслСТиваСт порядок Ρ…ΠΎΠ΄ΠΎΠ² ΠΏΠ°Ρ€Ρ‚ΠΈΠΈ, записывая, ΠΊΡ‚ΠΎ сСйчас дСйствуСт ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ рСсурсы Ρƒ Π½Π΅Π³ΠΎ ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ поиск Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈΠ»ΠΈ A*, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, отбрасывая состояния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ ΠΏΠΎ всСм ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ. ΠšΡΡˆΠΈΡ€ΡƒΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ с использованиСм ΠΌΠ΅ΠΌΠΎΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… вычислСний ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹Ρ… подсостояний. Ну ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΡƒΠΉ ΡΠΈΠΌΡƒΠ»ΡΡ†ΠΈΡŽ: Ссли ΠΎΠ½Π° Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈ ΠΎΡ‚ списков ΠΊ ΠΏΠ»ΠΎΡ‚Π½Ρ‹ΠΌ массивам ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ маски для Ρ„Π»Π°Π³ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ миллисСкунды Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС.
Ender_Dragon Ender_Dragon
ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π· Ρ‚Π°ΠΊ я Π±Ρ‹ ΠΈ написал ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ для пошаговой систСмы. ΠœΠΈΠ½ΠΈΠΌΡƒΠΌ состояния, понятный Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ состояний, Π° дальшС – BFS ΠΈΠ»ΠΈ A*, ΠΈ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ симуляция Π½Π΅ Π²Π·ΠΎΡ€Π²Π°Π»Π°ΡΡŒ. Π­Ρ‚ΠΎΡ‚ Ρ‚Ρ€ΡŽΠΊ с Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ маской Π² ΠΊΠΎΠ½Ρ†Π΅ – ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ компромисс ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ ΠΈ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ. Π”ΡƒΠΌΠ°Π», ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅ΡˆΡŒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ случайныС критичСскиС ΡƒΠ΄Π°Ρ€Ρ‹ Π² Π³Ρ€Π°Ρ„Π΅ состояний?
Void Void
You treat a crit as another branch in the graph. For each attack step, split the state into two: normal hit and critical hit, weighted by the crit chance. Propagate each branch forward, then when you evaluate a node combine the outcomes by expectationβ€”sum (value * probability). That keeps the graph manageable while accounting for randomness. If the crit chance is low, you can even prune very unlikely branches after a few turns.
Ender_Dragon Ender_Dragon
That’s the precise way to model luckβ€”branch and weight, then collapse with expectation. I’ll keep an eye on branch explosion; if the crit rate stays below a percent, I can prune aggressively after a couple of turns. It keeps the search from ballooning while still reflecting probability.