Geek & Imperius
Imperius Imperius
Π― Ρ‚ΡƒΡ‚ Π½ΠΎΠ²ΡƒΡŽ кампанию Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽ, старинныС ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΈΠ·ΡƒΡ‡Π°ΡŽ. НуТСн Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ для модСлирования пСрСдвиТСния войск ΠΈ логистики. Π‘ΠΎΠ±Ρ€Π°Π» Π±Ρ‹ Ρ‚Ρ‹ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Ρ‚Π°ΠΊΠΎΠ΅, смоТСшь Π·Π°ΠΊΠΎΠ΄ΠΈΡ‚ΡŒ?
Geek Geek
ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. БСйчас Π½Π°Π±Ρ€ΠΎΡΠ°ΡŽ Ρ‚Π΅Π±Π΅ Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ основу симуляции, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ‚Ρ‹ смоТСшь ΠΏΠΎΠ΄ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒ сСбС сСтку, Π½Π°Π»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π½Π° Ρ‚Π²ΠΎΡŽ ΡΡ‚Π°Ρ€ΠΈΠ½Π½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚Ρƒ, Π³Π΄Π΅ каТдая ячСйка ΠΈΠΌΠ΅Π΅Ρ‚ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ мСстности, статус снабТСния ΠΈ располоТСниС войск. Π’ΠΎΡ‚ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π° простом, псСвдокодС, ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΌ Π½Π° Python: 1. **ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠ°Ρ€Ρ‚Ρ‹** - Π—Π°Π³Ρ€ΡƒΠ·ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив `grid`. - Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйки сохрани `terrain_cost` (ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ мСстности), `is_supply_point` (являСтся Π»ΠΈ это ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠΌ снабТСния) ΠΈ `troop_id` (ID войск, 0 Ссли пусто). 2. **ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡŽΠ½ΠΈΡ‚ΠΎΠ²** - ΠžΠ±ΡŠΠ΅ΠΊΡ‚ `Unit`: `id` (ID), `strength` (сила), `morale` (ΠΌΠΎΡ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Π΄ΡƒΡ…), `current_pos` (тСкущая позиция), `supply_status` (статус снабТСния), `movement_points` (ΠΎΡ‡ΠΊΠΈ пСрСмСщСния). - Π‘ΠΎΡ…Ρ€Π°Π½ΠΈ всСх ΡŽΠ½ΠΈΡ‚ΠΎΠ² Π² спискС `units`. 3. **Ѐункция стоимости пСрСмСщСния** ```python def movement_cost(cell): return terrain_costs[cell.terrain] + (1 if cell.is_supply_point else 0) ``` 4. **Поиск ΠΏΡƒΡ‚ΠΈ** - Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ A* для поиска самого дСшСвого ΠΏΡƒΡ‚ΠΈ ΠΎΡ‚ `current_pos` ΡŽΠ½ΠΈΡ‚Π° Π΄ΠΎ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ячСйки. - Эвристика = ΠœΠ°Π½Ρ…ΡΡ‚Ρ‚Π΅Π½ΡΠΊΠΎΠ΅ расстояниС * срСдняя ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ мСстности. - Π Π°ΡΡˆΠΈΡ€ΡΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли кумулятивная ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ≀ `unit.movement_points`. 5. **ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π»ΠΈΠ½ΠΈΠΈ снабТСния** - ПослС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ пСрСмСщСния запускай BFS ΠΎΡ‚ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΡŽΠ½ΠΈΡ‚Π° Π΄ΠΎ блиТайшСго ΠΏΡƒΠ½ΠΊΡ‚Π° снабТСния. - Если расстояниС > `max_supply_range`, установи `unit.supply_status = False` ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°ΠΉ ΠΌΠΎΡ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Π΄ΡƒΡ… ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΊ. 6. **Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ боя** - Когда Π΄Π²Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠ±ΠΎΡ€ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΡŽΠ½ΠΈΡ‚Π° Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ сосСдниС ячСйки, сравни `strength` + `morale`. - Наноси ΡƒΡ€ΠΎΠ½, ΠΎΠ±Π½ΠΎΠ²ΠΈ `strength`, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈ ΡŽΠ½ΠΈΡ‚Π° Ссли `strength` ≀ 0. 7. **Π¦ΠΈΠΊΠ» Ρ…ΠΎΠ΄Π°** ```python for turn in range(max_turns): for unit in units: # 1. Π’Ρ‹Π±Π΅Ρ€ΠΈ Ρ†Π΅Π»ΡŒ (ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ИИ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ³Ρ€ΠΎΠΊΠ°) target = decide_target(unit) # 2. Найди ΠΏΡƒΡ‚ΡŒ path = find_path(unit.current_pos, target) # 3. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡΡŒ ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ Π΄ΠΎ `movement_points` move_unit(unit, path) # 4. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒ снабТСниС check_supply(unit) # 5. Π Π°Π·Ρ€Π΅ΡˆΠΈ Π±ΠΎΠΉ Ссли Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ рядом с Π²Ρ€Π°Π³ΠΎΠΌ resolve_combat(unit) ``` 8. **Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ / визуализация** - Ббрасывай состояниС сСтки Π² CSV Ρ„Π°ΠΉΠ» ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ…ΠΎΠ΄ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ построСния Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ². - Или, Ссли Ρ‚Π΅Π±Π΅ ΠΏΠΎ Π΄ΡƒΡˆΠ΅ pygame, отрисовывай ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ячСйку Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ: Π·Π΅Π»Π΅Π½Ρ‹ΠΉ для снабТСния, красный для Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΠΌΠΎΡ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π΄ΡƒΡ…Π° ΠΈ Ρ‚.Π΄. Π­Ρ‚ΠΎ основа. Настраивай `terrain_costs`, `supply_range` ΠΈ сниТСниС ΠΌΠΎΡ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π΄ΡƒΡ…Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π½ΡƒΠΆΠ½ΠΎΠΉ атмосфСры для Ρ‚Π²ΠΎΠ΅ΠΉ старинной ΠΊΠ°Ρ€Ρ‚Ρ‹. Π£Π΄Π°Ρ‡ΠΈ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ β€” ΠΏΠΎΠΌΠ½ΠΈ, любая Π΄Π΅Ρ‚Π°Π»ΡŒ ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Π±Π΅Π·Π±Π°Π³-Ρ„ΠΈΡ‡Π΅ΠΉ, Ссли Ρ‚Ρ‹ ΡƒΠ²Π»Π΅Ρ‡Π΅ΡˆΡŒΡΡ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ!
Imperius Imperius
ΠžΡ‚Π»ΠΈΡ‡Π½Π°Ρ конструкция, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько тактичСских Π½Π΅Π΄ΠΎΡ‡Ρ‘Ρ‚Ρ‹. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска ΠΏΡƒΡ‚ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹, выводящиС ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π·Π° радиус снабТСния – Π½Π΅Ρ‚ смысла Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ, Ссли ΠΎΠ½ΠΎ окаТСтся ΠΎΡ‚Ρ€Π΅Π·Π°Π½Π½Ρ‹ΠΌ. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, поиск снабТСния Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π·Π° Ρ…ΠΎΠ΄ ΠΎΡ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ снабТСния, отмСчая достиТимыС участки, Π° Π½Π΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ подраздСлСния; это Π±ΡƒΠ΄Π΅Ρ‚ O(S+E) ΠΏΡ€ΠΎΡ‚ΠΈΠ² O(UΒ·S). Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, ΠΌΠΎΡ€Π°Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ½ΠΈΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ Ρ€Π°ΡΡΡ‚ΠΎΡΠ½ΠΈΡŽ ΠΎΡ‚ снабТСния, Π° Π½Π΅ просто ΠΏΠΎ Ρ„Π»Π°Π³Π°ΠΌ – Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ€Π΅Π·ΠΊΠΈΡ… ΠΏΠ°Π΄Π΅Π½ΠΈΠΉ. И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, добавь слой "Ρ€Π΅Π·Π΅Ρ€Π²Π°": Ссли ΠΌΠΎΡ€Π°Π»ΡŒ подраздСлСния ΠΏΠ°Π΄Π°Π΅Ρ‚ Π½ΠΈΠΆΠ΅ ΠΏΠΎΡ€ΠΎΠ³Π°, ΠΎΠ½ΠΎ автоматичСски отступаСт ΠΊ блиТайшСй Ρ‚ΠΎΡ‡ΠΊΠ΅ снабТСния. Π­Ρ‚ΠΈ измСнСния Π½Π΅ позволят симуляции Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ ΠΈ заставят Π»ΠΈΠ½ΠΈΠΈ снабТСния вСсти сСбя ΠΊΠ°ΠΊ настоящая линия Ρ„Ρ€ΠΎΠ½Ρ‚Π°.
Geek Geek
Понял, Π΄Π°Π²Π°ΠΉ ΠΏΠΎΠ΄ΠΊΡ€ΡƒΡ‚ΠΈΠΌ Π»ΠΎΠ³ΠΈΠΊΡƒ. 1. **ΠžΠ±Ρ€Π΅Π·ΠΊΠ° ΠΏΡƒΡ‚Π΅ΠΉ ΠΏΠΎ радиусу снабТСния** - ΠŸΡ€ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ ΡƒΠ·Π»Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ A*, вычисляй расстояниС ΠΏΠΎ прямой ΠΎΡ‚ этого ΡƒΠ·Π»Π° Π΄ΠΎ блиТайшСго источника снабТСния. - Если это расстояниС плюс ΠΎΡΡ‚Π°Π²ΡˆΠ°ΡΡΡ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ пСрСмСщСния ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ радиус снабТСния ΡŽΠ½ΠΈΡ‚Π°, ΠΎΡ‚Π±Ρ€ΠΎΡΡŒ ΡƒΠ·Π΅Π». 2. **Один BFS Π·Π° Ρ…ΠΎΠ΄** - Запускай Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ заполнСния (flood-fill) ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ источника снабТСния ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π·Π° Ρ…ΠΎΠ΄. - ΠŸΠΎΠΌΠ΅Ρ‡Π°ΠΉ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π΄ΠΎΡΡ‚ΠΈΠΆΠΈΠΌΡƒΡŽ ΠΊΠ»Π΅Ρ‚ΠΊΡƒ с наимСньшим расстояниСм Π΄ΠΎ снабТСния. - Π’ΠΎΠ³Π΄Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡŽΠ½ΠΈΡ‚ смоТСт Π·Π° O(1) ΡƒΠ·Π½Π°Ρ‚ΡŒ расстояниС Π΄ΠΎ своСй ΠΊΠ»Π΅Ρ‚ΠΊΠΈ ΠΈ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, бСзопасно Π»ΠΈ Π΅ΠΌΡƒ. 3. **ΠŸΠΎΡΡ‚Π΅ΠΏΠ΅Π½Π½ΠΎΠ΅ сниТСниС ΠΌΠΎΡ€Π°Π»ΠΈ** - Установи `unit.morale -= decay_rate * (distance_from_supply / max_supply_range)`. - ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΠΉ ΠΌΠΎΡ€Π°Π»ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ 0 ΠΈ 100. 4. **АвтоматичСский Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·Π΅Ρ€Π²Π°** - Если `unit.morale < reserve_threshold`, ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠΉ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ блиТайшСй ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠ΅ снабТСния (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ вычислСнныС расстояния). - Π”ΠΎΠ±Π°Π²ΡŒ пСрСзарядку, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡŽΠ½ΠΈΡ‚ Π½Π΅ ΠΌΠΎΠ³ сразу Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² Π±ΠΎΠΉ. Π‘ этими измСнСниями симуляция останСтся ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²ΠΎΠΉ, Π»ΠΈΠ½ΠΈΠΈ снабТСния Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ рСалистично, Π° ΡŽΠ½ΠΈΡ‚Ρ‹ Π½Π΅ застрянут Π² Π½ΠΈΠ³Π΄Π΅-странС. Π£Π΄Π°Ρ‡ΠΈ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅!
Imperius Imperius
ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, настройки ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΡŒ ΡΠ»ΡƒΡˆΠ°Π΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΈ ΠΌΠΎΡ€Π°Π»ΡŒ пСрСраспрСдСляСтся ΠΏΠ»Π°Π²Π½ΠΎ. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π· Π΄Π΅Π»Π°ΠΉ Ρ‚Π°ΠΊ: сначала распрСдСлСниС рСсурсов ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ BFS, ΠΏΠΎΡ‚ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈ ΠΌΠΎΡ€Π°Π»ΡŒ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ подраздСлСния, Π·Π°Ρ‚Π΅ΠΌ – сразу ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π±ΠΎΠ΅Π²Ρ‹Π΅ дСйствия. Π’Π΅Π΄ΠΈ Π»ΠΎΠ³ΠΈ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ, записывай Ρ‚ΠΎΠ»ΡŒΠΊΠΎ измСнСния Π·Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ…ΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ. Π’ΠΎΡ‚ Ρ‚Π΅Π±Π΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° для Ρ‡Ρ‘Ρ‚ΠΊΠΎΠΉ ΠΈ эффСктивной симуляции.
Geek Geek
ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, Π·Π°ΠΊΡ€Π΅ΠΏΠ»ΡΡŽ порядок Ρ…ΠΎΠ΄ΠΎΠ², сначала ΠΏΡ€ΠΎΠ³ΠΎΠ½ΡŽ BFS, обновлю ΠΌΠΎΡ€Π°Π»ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌ сразу всС двиТСния ΠΈ Π±ΠΎΠΉ – ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠ°Ρ…ΠΎΠΌ. Волько Π΄Π΅Π»ΡŒΡ‚Ρƒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π»ΠΎΠ³ Π·Π°ΠΏΠΈΡˆΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π΅ Ρ€Π°Π·Π΄ΡƒΠ²Π°Π»Π°ΡΡŒ. Π“ΠΎΡ‚ΠΎΠ² Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ – посмотрим, ΠΊΠ°ΠΊ Ρ‚Π²ΠΎΠΈ Π»ΠΈΠ½ΠΈΠΈ снабТСния Π²Ρ‹Π΄Π΅Ρ€ΠΆΠ°Ρ‚!