Компьютерная суперигра

 

Григорий Попов                                                                  Что наша жизнь? Игра!...

 

55 лет назад, 1 марта 1963 года, мне подарили шахматы(запомнил дату, так как подписал доску) и началось знакомство с этой чудесной игрой.
В том же 1963 году увлёкся композицией.
50 лет назад, примерно в это время, впервые участвовал в турнире - первенстве Харьковского государственного университета(швейцарка,6,5 из 10)
И 50 лет, как начал писать первые программы для электронно-вычислительных машин.
Программирование для ЭВМ и первых компьютеров во многом напоминало составление шахматных композиций.
Для того чтобы реализовать нужное задание необходимо было придумать удачную схему(структуру) программы.
Оперативная память была ничтожна. В первой ЕС-1020 - 128 килобайт, в первом компе, на котором работал ROBOTRON 1715 - 64 килобайта.
И реализовать, например, решение системы многих нелинейных уравнений в таких ограниченных условиях иногда было не менее трудно, чем составить сложный таск.
...Да, были программисты-виртуозы в наше время. Не то что нынешние, с практически неограниченной памятью компов и суперскоростями...
К сожалению, все программы для разных ЭВМ типа ЕС 70-х годов "канули в лету".
Хорошо, что некоторые компьютерные программы, примерно 25 летней давности, сохранились.
На студенческом сайте недавно поделился воспоминаниями с описанием десятка таких программ.
Обновил также выложенные ранее не совсем удачные видеоролики некоторых программ -

Тетрис по цветам    Квадрат   Сапёр модернизированный    Кроссворд  Стихотворящая программа
Современные программисты могут взглянуть - Записки первобытного программиста


Все сохранившиеся программы прошлого века теперь можно использовать только как наглядные пособия о программировании того времени.
Но всё таки про одну игровую программу хочу рассказать поподробнее, может кто из современных программистов захочет осовременить её...

 

Описание игры
Имеется прямоугольник размером NxM клеток и 2 игрока, управляющих разными цветами или картинками(в примерах - A-зелёный и B-красный).
Задача игроков - перекрасить бОльшую часть прямоугольника в свой цвет.
Вначале игроки могут располагаться или по углам или по центру или случайным образом.
В примере №1 они по углам -

A                      
                       
                       
                       
                       
                       
                       
                      B

№1.

В каждый момент позиция описывается тремя числами - n1-число зелёных, n2-число красных и n3-число нейтральных полей.
Исходная позиция №1 (n1=1,n2=1,n3=94)
Игра заканчивается, когда не останется нейтральных полей(n3=0) или противник будет пойман(про этот случай далее в примере №4).
Движения игроки могут совершать на соседнее поле по горизонтали или вертикали(но не по диагонали).
Это поле сразу же становится того цвета, которым управляет игрок до тех пор, пока это поле не захватит другой игрок.
Можно захватывать целые прямоугольные участки, двигаясь по его периметру, как в примере №2.

 

                       
                       
A                      
                       
                       
                       
                       
                  B    

№2. позиция (17,17,66)

Следующими ходами и зелёные и красные могут замкнуть периметры очерченных прямоугольников и увеличить свои владения.

 

                       
A                      
                       
                       
                       
                       
                       
                    B  

№3. позиция (28,30,38)

В итоге за равное число ходов зелёные прибавили 28 клеток(7х4), а красные - 30(6х5).

Но вся игра впереди, ещё надо захватить 38 нейтральных полей.

 

 

              B        
                       
                       
                       
                       
A                      
                       
                       

№4. позиция (56,39,1)
Очевидно, что не выгодно захватывать последние нейтральные поля, если отстаёшь в счёте.
В позиции №4 у зелёных преимущество в 17 очков. Но выигрывают красные за 7 ходов.
Они должны играть не Bh7?, что ведет к окончанию игры, а захватывать квадрат 3х3(но не более!) территории зелёных и играть- Bg8-f8-e8-e7-e6-f6-g6.
Зеленые же никак воспрепятствовать не успеют.
Итог будет в пользу красных - (56-9=47,39+9+1=49,1-1=0)

 

 

                       
                       
        B              
                       
              A        
                       
                       
                       

№5. позиция (42,40,14)

А в этой позиции красные опрометчиво вторглись на территорию зелёных и проигрывают в 3 хода - Ah5-h6-h7.

 

                       
                       
                       
          A            
          B            
                       
                       
                       

№6. позиция (32,32,32) - пример, когда не ясно, как правильно продолжать дальше игру.


Эту идею можно реализовывать в играх с разными персонажами.
Например делёж территории между какими-нибудь хищными животными или космические войны...
Первую версию делал в 1992 году в текстовом режиме, примерно как в показанных выше примерах.
В 1996 году проходили выборы президента России.
Возникла идея - 2 кандидата проводят агитацию граждан за себя.
Кандидатами в президенты тогда были - Ельцин, Зюганов, Лебедь, Жириновский, Явлинский...
Выбрал Явлинского и Жириновского, так как предполагал, что они будут претендентами и в последующих циклах.
В игре можно выбирать кандидата, за которого хочешь играть. За второго кандидата играет компьютер.
Есть ещё демонстрационный режим компьютер-компьютер

Ниже картинки с той игры. Экраны имели тогда разрешение очень невысокое, поэтому качество картинок соответствующее.
К тому же всё внимание было сосредоточено на создание более менее умного алгоритма игры компьютера.
И графику делал на скорую руку. Даже не все глюки устранил тогда...







Примечание. В то время выпускалась водка “жириновка”.











Игра имеет сплошные достоинства.
1. Очень простые правила, доступна для любого возраста.
2. Интересна тем, что очень сложна для выбора правильной стратегии, при многоклеточных полях.
3. Игра более зрелищна чем шахматы. Принимать решения нужно на каждом шагу, как и в шахматах, но в динамике, очень быстро.
4. Можно соревноваться или человек-человек или человек-компьютер или компьютер-компьютер.
В последнем случае фактически могут соревноваться программисты, примерно как в соревнованиях шахматных программ.
5. Игру можно совершенствовать, вводить новые правила.
Например, была идея добавить ещё одну неподвижную фигуру с каждой стороны. И как только противник доберётся до неё - игра окончена.
6. Возможно, что перспективно эту игру использовать для разных смартфонов с сенсорными экранами.
7. Стоит подумать о версии со многими игроками для сетевой игры. Должно быть захватывающе интересно.
Вот, например, как может выглядеть поле битвы для 4-х игроков - A, B, C, D


                                               
                                               
                                               
                                               
                            D                  
                                               
                                               
    A                                          
                                               
                                               
                            B                  
                  С                            
                                               
                                               
                                               


Когда я тестировал свою программу 22 года назад, то без труда её обыгрывал.
Сейчас же, играя за Явлинского, с большим трудом одолел Жириновского.
Просто я тогда знал слабые места программы, постепенно совершенствовал алгоритм.
А сейчас, проигрывая фактически самому себе, поначалу показалось, что глюки самоустранились и программа стала сильнее играть!.
Потом всё понял - увы, виноват возраст, совсем забыл, что я там недоработал и как это использовать в игре...
Может кто из современных программистов заинтересуется вышеизложенным описанием игры и сделает более умную программу?
Запрограммировать версию человек-человек очень легко.
Сложнее научить программу делать обдуманные ходы, так как бывают позиции, где не совсем ясно куда ходить.
Например, в последней позиции для 4-х игроков. Куда лучше ходить игрокам - A, B, C, D ?!!
Умную программу пожалуй посложней сделать чем шахматную или игры в го.

...Может быть, примерно в 2050 году, какой-нибудь мой правнук-программист найдёт эту статью и осуществит идею даже для 3-х мерного пространства...


Смотрите видеоролик(7,5 минут) по выборам 1996 года - Битва Явлинский-Жириновский


1 марта 2018

Григорий Попов  popovgl@yandex.ru

 

COMMENTS (real-time mode) | КОММЕНТАРИИ посетителей
ccomments powered by HyperComments