1 Отредактировано garnizon (01-07-2024 18:31)

Тема: Президент

Хотелось бы выложить игру Президент, но оказалось что у нас почти 100 версий этой игры, полученных из разных мест.

Агат изначально дисковый и одним нажатием кнопки любой школьник сохранял свои эксперименты над кодом игры и получалась новая версия...

И вот как из них выбрать для сайта, если я никогда не играл в эту игру и не знаю её особенностей.

В нашем архиве есть пометки:

Прога огромная, я попробовал взять десяток близких по размеру вариантов, конвертнуть в текст и сравнить построчно:
отличия в чём угодно: в цветах (RIBBON=), синтаксических ошибках:

   <  2575  PRINT : PRINT : SPEED= 50: PRINT "ВАМ nОВОРИЛИ УЖЕ,ЧТО ВЫ Ж М О Т!": SPEED= 200
    >  2575  PRINT : PRINT : SPEED= 50: PRINT "ВАМ  OR ОВОРИЛИ УЖЕ,ЧТО ВЫ Ж М О Т!": SPEED= 200

подкрученной арифметике:

    <  5730 K3 = K1
    >  5730 K3 = K1 / (K5 * 2)

    <  5735  PRINT : PRINT "  ДАЕМ ПОД "K3 * 0" %"
    >  5735  PRINT : PRINT "  ДАЕМ ПОД "K3 * 50" %"

    <  5815 X = K1(0):K4 = 0
    >  5815 X = K1 + K1 * K3:A(0) = A(0) - X:K4 = 0

замедлениях:

    <  5745  PRINT : PRINT " ЗАПОМНИТЕ ВРЕМЯ РАСПЛАТЫ": PRINT : PRINT "     "1987 + N + K2" ГОД": GET O$
    >  5745  PRINT : SPEED= 50: PRINT " ЗАПОМНИТЕ ВРЕМЯ РАСПЛАТЫ": PRINT : PRINT "     "1987 + N + K2" ГОД": SPEED= 200

Не представляю, что было начальной версией ?


Может быть Агатовская версия была списана с какого-то журнала? Тогда можно узнать изначально задуманные переменные.

А вообще нужен человек, который знает игру, и готов поиграть И СРАВНИТЬ хотя бы десяток версий.

2 Отредактировано garnizon (01-07-2024 21:51)

Re: Президент

Архив.

Post's attachments

Attachment icon pres.rar 182.2 kb, 45 downloads since 2024-07-01 

3

Re: Президент

Я почитал страницу игры (http://agatcomp.ru/agat/Software/Game/L … dent.shtml), немножко пошарил по интернету и пришел вот к какому выводу.

Да, похоже игра - это адаптация с Роботрон-1715. Во всяком случае, вот на этом сайте
http://www.criss.fun/?AzZmzW6VLyST3VHnmzo0b3TdzwNo0IAx
нашлась игра "Министр" (на Роботроне все скромнее :). В описании к ней сказано:

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

Вроде как по описанию похоже. Но есть важное отличие: файл ministrr.com бинарный. То есть, исходная игра написана на ассемблере Z80.

Я сомневаюсь, что школьники взяли дизассемблер, распотрошили игру на Роботроне и перенесли ее на Бейсик. Потому что, будь у них точный алгоритм, версий было бы меньше.
Тут же в чем проблема: какую-нибудь аркадную леталку-стрелялку-бродилку скопировать сравнительно легко. Логика у нее простая, все спрайты/лабиринты видны на экране, как начисляются очки тоже понять несложно.
А вот "Президент" - это экономический симулятор. У него много формул под капотом, которые восстановить только "по ощущениям" или "внешним проявлениям" на экране невозможно. И то, что версий аж 100 штук, как раз показывает, что школьники пытались угадать эти формулы, результат им не нравился/не совпадал с "Роботроном" и они продолжали подкручивать игру дальше.

В связи с этим, я вижу два варианта действий (и оба плохие, потому что требуют кучу времени):
1) пройти "Роботроновскую" версию и понять, а что было в оригинале. После этого можно будет перебирать эти 100 версий и искать ту, что ближе к исходнику. Вот только непонятно, а хотели ли школьники получить полное сходство с оригиналом? Может, они в процессе переноса начали делать что-то свое?

2) распотрошить "Роботроновский" исходник и просто перенести его заново. Понятно, что можно будет добиться 100% сходства с оригиналом, но это уже будет новодел и совсем другая игра.

4 Отредактировано Voldemar0 (02-07-2024 09:01)

Re: Президент

Я попробовал глянуть Министра, там внутри файла есть два интересных места:

1) "[[[[ BASLIB #890065 5.2 - OWNED BY MICROSOFT, 1979 "
и дальше список бейсиковских ошибок (строки). Так что это, возможно, не ассемблер, а какой-то байт-код бейсика + сам интерпретатор. В этом случае, теоретически, прогу можно конвертнуть обратно, если знать байт-код.

2)
"Вы так хорошо справились с заданием, что можете ^Y=^Pлетний избирательный срок^UY^PВы успешно закончили ^Uq^P*** поздравляем!! ***3Й^Pподали в отставку или покончили жизнь самоубийством2┐^Pголода. Общественность в ярости, требует, чтобы Вы6^Ppotratili. в результате  некоторые крестьяне умерли ри&-^Qденьги остались в казне, которую Вы не^QV^Qзахватили страну./j^Qместных жителей. Как большинство они восстали i)Ь^Qчисло иностранных рабочих превысило число^\╚^QВы были предательски убиты!!^Oч^Qненавидят Вас!!#∙^Qкак Вы вступили на пост. Остальные )^_^Rболее половины населения умерло с тех пор'K^RВы объявлены национальным преступником.+u^RВы также заработали очень плохую репутацию.^]г^Rтакже Вам выбили левый глаз!!^X├^Rбыли изгнаны с поста, но,▐^Rиз-зи крайне плохого управления Вы не только^_^M^Sкрестьян погибло в один год!!!!#/^SВы находитесь в тюрьме...мужайтесь.^\U^SВас выгнали с поста и сейчас^Gt^SБурлей!^Y~^Sу Вас осталось всего лишь"Ъ^SБурлей с налогов от промышленности^K┐^SВы получили+═^Sгостиницы выглядят неприглядно из-за смога)$√^Sнеприятный смог отпугивает туристов)7"^Tзалежи полезных ископаемых разрушены загрязнённой водой(\^Tпернатых связало с загрязнением воздуха),З^Tобитателей моря связано с загрязнением воды)^X╢^T(уменьшение численности ^F╤^TБурлей^X┌^Tот туризма Вы заработали   ^T  прибыль^S^A^Uуровня загрязнения)"

Как видно, сама лексика мало похожа на Президента.
У Президента уровень проблем другой (яхты, автомобили, кредиты, акции компаний, ссуды...).

Наверное, средний по сложности, но более-менее быстрый, путь: взять уникальные версии, пробежать глазами отличия исходников, выкинуть те, которые явно хакнутые (ну вот как в примере первого сообщения подкручена процентная ставка в 0), выкинуть те, которые отличаются только цветами, скоростями и уже оставшуюся выжимку тестировать играя.

---

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

---

PPS Там ещё в некоторых играх авторы не указаны, а в некоторых они встречаются. Но в разных файлах авторы разные :))

5 Отредактировано AlexBel (02-07-2024 09:09)

Re: Президент

Вектор-06Ц.
"Игра «Президент». Сборка из бейсик-игры, выполненная, как самостоятельный ROM-файл."
https://caglrc.cc/scalar/ware/820/
На страничке есть онлайн-эмулятор, можно игру сразу запустить.
Происхождение игры не знаю, но, возможно, чем-то поможет.
Эмулятор "Вектор-06Ц" Virtual Vector: https://cloud.mail.ru/public/5uyc/2pkicQPoZ

Post's attachments

Attachment icon PREZID.ROM 31.25 kb, 38 downloads since 2024-07-02 

6

Re: Президент

Поиграл вчера в Векторовскую версию, а потом в одну из Агатовских.
Да, кажется я поторопился назвать эту игру экономическим симулятором :)

Не знаю, как на нее реагировали игроки в 90-е, но сейчас она выглядит просто как стёб.
Наверное, разработчики пытались постебаться над капитализмом, но похоже, что игра стебётся в основном над игроком.
Прям с первых же вопросов. Вот спрашивается, нафига эти приколы над возрастом игрока?

Еще как-то можно понять нижнюю границу - информатику преподавали в 10-11 классах и возраст школьников обычно был не меньше 16 лет. То есть, в игре, типа, защита чтобы младшеклассники не играли (ну да, там проститутки упоминаются, игра 16+). Но почему после 60 нельзя играть?

В исходной игре (да, я нашел очень похожую игру, на основе которой скорее всего сделали эту) вопрос с возрастом решается гораздо проще - игра сама случайно назначает игроку возраст. И ничего при этом не спрашивает.

Дальше прикол с начальной суммой денег. Понятно, что с большой начальной суммой игра легко проходится, поэтому нельзя разрешать игроку иметь много денег. Но зачем вообще давать ему выбирать начальную сумму? Видимо затем, чтобы сразу урезать сумму и постебаться :) В исходной игре сумма назначается случайно, без вопросов.

Не сразу до меня дошло, что игрок начинает игру бездомным. Я все никак не мог понять, почему меня все время штрафуют за бродяжничество и сажают в тюрьму :) Заодно отнимая акции, вклады и бизнес. Что за фигня? Может, я живу в том баре, который купил :)

Интересно, что начальной суммы денег тупо не хватает на то, чтобы завести бизнес, который позволил бы сводить концы с концами. Акции и вклады денег приносят еще меньше. А главному герою еще и жить на что-то надо.

Короче, стандартный сценарий игры, видимо, состоит в том, что не на первом, так на втором году, не за бродяжничество, так за долги всё отнимут, и игра закончена :)
Усекли, граждане, желающие стать миллионерами?
(Если что, "усекли" - это цитата из игры.)

***

Теперь понятно, почему модификаций много - играть-то иначе невозможно :(
Помучившись с Векторовской версией взял из архива версию Voldemar0. В этой версии добрый дядя периодически отваливает  деньжат, поэтому пройти ее можно. Я на первом же году получил от него миллиард, поэтому скупил все бизнесы, все акции, нанял всех наемных работников и вышел в плюс.

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

Короче.

Игра всеми способами намекает, что успех зависит в основном от генератора случайных чисел, а не от игрока.
Кроме того, сомневаюсь, что разработчики хорошо разбирались в капитализме, поэтому в экономике игры много спорных моментов.
Ясно же, что машина должна стоить намного дешевле, чем квартира. И нельзя покупать акции не имея счета в банке. И прибыльные акции не могут стоить дешево (тут у них курс от прибыльности вообще никак не зависит). Непонятно, почему тупо нельзя устроиться на работу :)
То, что игрока сразу сажают в тюрьму за долги - это вообще какой-то 19 век. В мире давно придумана процедура банкротства. В общем, экономический симулятор из игры так себе.

А раз экономика тут не главное, то что главное? Стёб? Надо искать версию, которую труднее всего пройти?

***

А что же с исходной игрой?

Где-то в середине 1970-х выходил журнал Creative Computing и там была опубликована игра Millionaire. В 1979 году журнальные статьи переиздали отдельной книжкой https://archive.org/details/More_BASIC_Computer_Games. Текст игры начинается на странице 104.

Игра более простая. Тут нет меню и все события выбираются случайно, но сами события во многом совпадают. Тут можно попасть в казино и выиграть или проиграть деньги. Можно получить наследство от дедушки. Можно покупать и продавать акции. Кроме того, могут происходить разные неприятности, типа ограбления дома, падения на него самолета или прохождения торнадо. Можно попасть в больницу с неведомой болезнью. Цель игры - набрать миллион. Важное отличие - игрок получает деньги за счет того, что работает. Но в общем все очень похоже, включая многие фразы. Кстати, похож и общий подход - упор на юмор и генератор случайных чисел :)

В общем, я думаю, "Президент" получился переделкой этой игры. Да, переделка капитальная, вполне могли быть и какие-то промежуточные варианты на других машинах, но сходство очень заметное. У книги мог существовать и русский перевод, так что стоит поискать.

P.S.: Кстати, страна в которой происходит действие оказалась вовсе не Америка, а Франция :) Название тюрьмы (Фор-Левек) взяли из "Трёх мушкетёров".

7 Отредактировано Voldemar0 (04-07-2024 09:30)

Re: Президент

> Не знаю, как на нее реагировали игроки в 90-е, но сейчас она выглядит просто как стёб.

Отлично воспринимали. Мы же не знали даже бОльшей части этих слов: акции, биржи, брокеры и прочее. И в школе этому, к сожалению, не учили. Более того, у нас на факультете (радиофизическом) был курс экономики, там было кой что интересное, но мы всё равно больше узнавали про эластичный и неэластичный спрос-предложение, чем, например, о механизмах инвестирования, отличиях ООО и ЗАО и ещё многое там было упущено.

{ Сейчас читаю интересную книжку "Приключения экономистов в тропиках" - после неё экономика вообще выглядит немного гаданием на кофейной гуще :) }

Пожалуй, первое, что меня удивило в этой игре: акции компаний были вроде AGFA, SONY и ещё штуки 3 фирмы - у всех очень короткие названия и некоторые из этих названий не были на слуху.


> В 1979 году журнальные статьи переиздали отдельной книжкой https://archive.org/details/More_BASIC_Computer_Games.

К сожалению, после распознавания её не вычитывали, судя по сильно повреждённому тексту программы.
Типа такого:
1440 LET V-INT(RND(1>*2000>+1000

Интересная строчка:
1570 PRINT "1 IBM (INCREDIBLY BAD MACHINES) ";S(1>;" ";S(5>

2stager: "Imperialistic Bad Machines" ты сам придумал или видел эту книжку ? :))))


> В этой версии добрый дядя периодически отваливает  деньжат, поэтому пройти ее можно

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

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


---

А там, случайно, нельзя ли кредит взять ?

8

Re: Президент

Voldemar0 пишет:

Пожалуй, первое, что меня удивило в этой игре: акции компаний были вроде AGFA, SONY и ещё штуки 3 фирмы - у всех очень короткие названия и некоторые из этих названий не были на слуху.

Агфу наверное только любители фотографии знали. И вроде магнитную пленку она тоже выпускала.
Но, между прочим, в других версиях набор фирм отличается. В 72 секторной такой список: "STANDARD OIL", "STEEL COMPANY", "I B M", "SUZUKI" и какая-то неведомая "ZOO ZOO CO".

Voldemar0 пишет:

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

В 1980 году вышло отдельное переиздание этой книги для компьютера TRS-80. Там вроде меньше опечаток.
https://archive.org/details/More_BASIC_ … _Computing

Voldemar0 пишет:

Но уже после того, как мне также удалось всё скупить, я понял, что я мало что могу делать с этими деньгами, даже проиграть их куда-то сложно.

Вот и я про то же. Миллиард есть, а как его тратить - непонятно.

Voldemar0 пишет:

А там, случайно, нельзя ли кредит взять ?

Кредит в исходной игре есть, но логика выдачи отличается. Если у игрока кончаются наличные и он уходит в долг, то кредит выдается автоматом. Выдается ровно столько, чтобы обнулить долг. Код находится в строках 640-680 (в версии TRS-80). "LOAN INTEREST" - это размер ежегодной выплаты (проценты по кредиту).

9 Отредактировано Voldemar0 (05-07-2024 15:13)

Re: Президент

Вдруг пришло в голову, что когда мы играли в эту игру, слово "президент" воспринималось, по аналогии с другими стратегиями (Королевство Эйфория, например), как глава страны.
Но, если задуматься: вряд ли президент не имеет даже своего жилья.
А даже если это не текущий статус, но цель, то президентом чего нужно стать ?
Инвестиционной компании ? В игре ведь нет упоминания политики.
Если в оригинале игра называлась Миллиардер - это логично.

Но в заставке агатовской версии говорится о том, что "вы можете стать президентом.... оплачиваете услуги маклера".
Я не представляю себе зачем президенту страны оплачивать услуги маклера...

Я даже залез в словарик
https://www.oxfordlearnersdictionaries.com
- он не знает такого слова. Вики намекает, что makler - это немецкое слово, в английском эта профессия называется broker.

Но если агатовская версия - перевод из какой-то англоязычной игры, то почему "маклер", а не "брокер" ?

И всё же, если агатовская версия - перенабор из какой-то книжки, причем разными людьми, то, видимо, в книжке тоже была эта особенность.

10

Re: Президент

Voldemar0 пишет:

А даже если это не текущий статус, но цель, то президентом чего нужно стать ?
Инвестиционной компании ? В игре ведь нет упоминания политики.

Президентом страны. В меню пункт 2 - общественное положение. При его выборе предлагается поучаствовать в выборах. Игрок начинает как бизнесмен, он может стать лидером профсоюза (при этом не имея работы и не состоя в профсоюзе :), потом шерифом, сенатором и наконец президентом.

Voldemar0 пишет:

Но если агатовская версия - перевод из какой-то англоязычной игры, то почему "маклер", а не "брокер" ?

Потому что это слово так переводилось в советских словарях. Вот у меня англо-русский словарь Мюллера 1977 года, и там broker = маклер. Можно еще вспомнить рассказы про Шерлока Холмса - там тоже брокеры переводились как маклеры.

Voldemar0 пишет:

И всё же, если агатовская версия - перенабор из какой-то книжки, причем разными людьми, то, видимо, в книжке тоже была эта особенность.

Игра по сути довольно хулиганская - игрок должен непонятно как получать деньги (работать нельзя!), а потом тратить на предметы роскоши (яхту, самолет, виллу) и развлечения (азартные игры, любовниц, круизы).
При этом кажется, что игра написана в конце 1980-х. Что-то у меня сомнения, что в таком виде ее могли напечатать в книге или журнале в те годы. Редактору влетело бы :)

Насчет года соображения такие: во-первых, некоторые версии написаны под Бейсик-60 (там есть вызовы его Монитора через CALL). Во-вторых, некоторые версии вывод текущего года делают как PRINT "   ЗАКОНЧИЛСЯ "1987 + N" ГОД.". Можно предположить, что эти версии относятся к 1987 году.

***

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

Самый интересный вопрос, на какой машине была написана самая первая версия Президента?

Я тут узнал, что кроме Агата и Вектора были еще версии для Корвета, Yamaha MSX и ZX Spectrum. На Спектрум игру перенесли позже всего, в 1994 году. Что там было на Ямахе - непонятно.
Интересный вариант - Корвет. Корвет разработали в МГУ. Плюс, в МГУ большая научная библиотека, где конечно были и иностранные книги. То есть, там вполне могла быть книжка с текстом миллионера. Если эта книжка действительно использовалась, то наибольший шанс ее увидеть был там. Ну и для школьников переделка кода игры была тяжеловата. Скорее всего, ее делали студенты. Они же могли похулиганить с сюжетом.

Исходники Корветовской версии можно посмотреть тут https://github.com/UncleJey/prezident в папке Original.

Но все-таки есть сомнения, что это оригинал. У Корвета есть прописные и строчные буквы. А тут все капсом набрано.

Post's attachments

Broker.jpg, 43.05 kb, 566 x 318
Broker.jpg 43.05 kb, 30 downloads since 2024-07-06 

11 Отредактировано Voldemar0 (07-07-2024 20:32)

Re: Президент

> При этом кажется, что игра написана в конце 1980-х.

Сейчас нашел на своих дисках эту игру, как её мне переписали.
Там даже их две обнаружилось.

В архиве они в каталоге 77, если обратить внимание на даты создания файлов - там 2001 год,
файлы:

PRESIDENT:
<  4010  PRINT "  ЗАКОНЧИЛСЯ "1990 + N" ГОД": PRINT 

PREZIDENT:
>  4010  PRINT "  ЗАКОНЧИЛСЯ "1987 + N" ГОД": PRINT 

Среди других файлов ещё есть варианты:
1988
1994

Кроме такой basic-строки есть ещё варианты:

4205  PRINT " НАСТУПИЛ НОВЫЙ, ";1988 + N;" ГОД"

4010  PRINT "  ЗАКОНЧИЛСЯ "G + N" ГОД":
{похоже это из коллекции Виктор Бутово}

И ещё вариант:

4205  PRINT : PRINT " НАСТУПИЛ НОВЫЙ "GODI + N" ГОД": PRINT 

И, наконец, в самых компактных версиях проги есть ещё такой вариант:

205  HOME :  RIBBON= 3: VTAB 4:  HTAB 6: PRINT "ЗАКОНЧИЛСЯ ";P1;" ГОД": PRINT :  HTAB 6:  PRINT "ПОРА ПОДВЕСТИ ИТОГИ": P1 = P1 + 1: O = O + 1: F = 2: PRINT 

В этих версиях P1=1990

Ранее 1987 года найти не удалось. И позже 1994 тоже.

Но тут важно, что сам год выводится в разных строках.
Вероятно, вариант, где он выводится в 4010 - это совсем ранняя редакция, примерно 1987 года.
Вывод года в строке 4205 - какая-то существенная переработка, допустим, 1988 года.
А вот вариант со строкой 205 - возможно, некая альтернативная (альтернативный перенабор с какого-то оригинала) 1990 года.
И это - три сильно отличающихся ветви.

--

Возвращаясь к ранее упомянутым PRESIDENT и PREZIDENT из моей коллекции:
построчное сравнение показывает, что в версии 1987 года есть следующие отличия:

1987: в основном использует SPEED= для замедления вывода
1990: предпочитает GET $

1987: предлагает стать во главе профсоюза
<  2037  IF X = 1 THEN  PRINT "МУСОРЩИКОВ";
1990:
>  2037  IF X = 1 THEN  PRINT "программистов"


1987:

<  2075  PRINT : SPEED= 65: PRINT "ВЫ НЕ ПОЛЬЗУЕТЕСЬ ПОПУЛЯРНОСТЬЮ": PRINT : PRINT "ВАС ПРОКАТИЛИ": PRINT
<  2078 Y =  INT (Y)
<  2080  PRINT "ВЫ НАБРАЛИ ТОЛЬКО  "Y * 50"% ГОЛОСОВ": PRINT : SPEED= 200: GOTO 2100

1990:

>  2075  PRINT : PRINT "ВЫ НЕ ПОЛЬЗУЕТЕСЬ ПОПУЛЯРНОСТЬЮ": PRINT : PRINT "ВАС ПРОКАТИЛИ": PRINT
>  2080  PRINT "ВЫ НАБРАЛИ ТОЛЬКО  " INT (Y * 50)"% ГОЛОСОВ": PRINT : GET O$: GOTO 2100

Тут я даже не знаю, какой вариант считать ранним, а какой - поздним.
В 1987 строка с INT добавлена между (как исправление), но в варианте 1990 она встроена в строку, к тому же не ломает значение Y.

Кроме того, версии отличаются по используемым цветам.
Других отличий найти не удалось.
Я думаю, можно использовать эти версии как базовые и дальше сравнивать с ними другие версии.

12

Re: Президент

Voldemar0 пишет:

Ранее 1987 года найти не удалось. И позже 1994 тоже.

А я откопал версию 1986 года. Но она не для Агата. И не на Бейсике.
Это версия Президента для БК-0010 на языке Фокал: https://r-games.net/bk001x/games/871-pr … focal.html

Кажется, это и есть общий предок. Интересно, что тут используются заглавные и строчные буквы. Также более удобно сделан интерфейс (в версиях на Бейсике иногда текст пропадает до того, как я успеваю его прочитать). И опечаток меньше всего.
Тут предлагается стать главой профсоюза мусорщиков, а в списке акций "Standart Oil", "Steel Company", "IBM", "Suzuki" и "Kruft & Co".

К сожалению, как перевести токенизированный формат Фокала в исходный текст я не понял, хотя поглядеть исходник было бы интересно.

Voldemar0 пишет:

А вот вариант со строкой 205 - возможно, некая альтернативная (альтернативный перенабор с какого-то оригинала) 1990 года.

Да, очень может быть, что на Агат Президента переносили несколько раз с разных машин. Версии игры были почти для всех компов того времени, а средств узнать, что версия под Агат уже существует - не было.

***

Вообще, проблема в том, что хочется совместить возможности разных версий. Например, везде использовать GET $, чтобы текст не уползал, но при этом оставить названия компаний из самой ранней версии. К тому же, несколько раз ловил ситуации, когда что-то не удавалось купить с сообщением "недостаточно средств", хотя средств точно было достаточно. Видимо, где-то есть ошибки в вычислениях. Как их выловить, не зная точный алгоритм, - непонятно.

13

Re: Президент

Фокал объясняет, почему могла в разных наборах плавать нумерация строк.
У них там своё понимание о номерах Ж)

Но вообще, коль скоро тут подразумевается Фокал БК-0010, то задача разглядеть этот исходник не выглядит нерешаемой. Во всяком случае строки отчётливо видны в бинарнике.

14 Отредактировано AlexBel (08-07-2024 09:54)

Re: Президент

Вот текст программы с БК-0010 на Фокале, товарищ прислал:

Post's attachments

Attachment icon prezident-special-for-BelodvortsevAlex.zip 7.78 kb, 27 downloads since 2024-07-08 

15

Re: Президент

AlexBel пишет:

Вот текст программы с БК-0010 на Фокале, товарищ прислал:

Спасибо!

Voldemar0 пишет:

Фокал объясняет, почему могла в разных наборах плавать нумерация строк.
У них там своё понимание о номерах Ж)

Да, оценил :) Я с Фокалом дела вообще не имел, смотрю и офигеваю :) Что-то есть от Фортрана.

16

Re: Президент

Прикольно. Сравнивал БК-шную версию и Агатовскую 1987 года и вот что нашёл.

БК-шная версия в начале игры спрашивает класс игрока:

45.03 A "Ваш класс [1-3]"L;I(3-L)45.03

Как я понял, это уровень сложности: 1 - самый сложный, 3 - самый простой. Класс запоминается в переменной L.
Эта переменная используется дальше, когда программа определяет начальную сумму денег X у игрока.

45.18 D 2;S N3=60+20*Y;D 2;S X=1500*L*(1+Y)

Переменная Y определяет разброс суммы и устанавливается в блоке строк 2.

2.10 S Y=.01*FITR(5+47.5*(1+FRAN()))

Функция FRAN возвращает значение от -1 до 1, а переменная Y получает значение от 0.05 до 1.

Что получается в итоге? У каждого класса будет своя начальная сумма денег.

 Класс | Сумма
-------+------------------
 1     | от 1575 до 3000
 2     | от 3150 до 6000
 3     | от 4725 до 9000

А что в Агатовской версии?

Уровней сложности нет. Начальная сумма считается в строке 109.

  109 X = 1000 + 750 * Y: RIBBON= 1

Переменная Y устанавливается в подпрограмме 3000.

 3000 Y =  INT (100 *  RND (1)) / 100: IF Y < 0.05 THEN Y = 0.05
 3005  RETURN 

Можно было написать без IF, но результат тот же: Y получает значение от 0.05 до 1.

Но главный момент, это то что начальная сумма денег существенно меньше, чем на максимальном уровне сложности в БК-шной версии: от 1038 до 1750! Цены при этом вроде бы те же самые.

То есть, если в БК есть выбор сложности легко/средне/хард, то тут всегда мегахард :)
И все играли в заведомо непроходимую игру.

Интересно, что код очень похож на Корветовскую версию. Там уровень сложности запрашивается, но не используется. В подпрограмме вычисления Y такой же оператор IF. Отличия только в номерах строк и одной константе. Начальная сумма еще ниже: 1025 - 1500.

Подозреваю, что на этом расхождения с БК-шной версией не заканчиваются.

17

Re: Президент

Товарищ прислал комментарий по версии игры на БК:

Игру проходил и на 1м уровне. Но там гораздо сложнее. Основной лайфхак пустить имущество (дорогие акции) с молотка продав квартиру, когда у вас накопилось много дорогих акций скупленных по дешёвке. Биржа не позволяла продать много дорогих акций. После этого получив стартовый капитал можно было обрасти бизнесами и начать выигрывать выборы. Наличие имущества влияет на репутацию а без неё нельзя было выиграть. Самолёт не покупайте! )))

18

Re: Президент

AlexBel пишет:

Товарищ прислал комментарий по версии игры на БК:

Ну я так и подозревал, что на БК игровой баланс другой и пройти игру там реально.


Но мне было интересно найти какие-то доказательства, что на Агате пройти игру почти невозможно. Для этого я попробовал ответить на вопрос, а какие шансы, что начальной суммы хватит, чтобы купить квартиру и прожить один год не уходя в долги?

Тут ведь как получается? Если не покупать квартиру, то в конце года игрока ждет штраф за бродяжничество, который может быть выше цены квартиры. А если денег не хватит на жизнь, то все имущество и акции пойдут с молотка.

И если начальной суммы не хватает, то игрок уходит в минус и попадает в тюрьму за долги. А после тюрьмы денег дают меньше, чем при старте игры. То есть по сути - это проигрыш.

Так что я пошел искать места, где вычисляются расходы игрока и цены на жилье :)

I. Расходы на жизнь.
--------------------
Они есть всегда и тратятся ежегодно.
Версия БК:

50.20 F I=1,5;S U=U+.05*G2(I);S V=V+P1(I)*P(I);I(-G(I))50.21;S G2(I)=0

51.01 I(N4-N1)51.1,51.1;S N1=N1+J;I(N1-N4)51.02;S J=J+N4-N1
51.02 S J=J/N4;D 52;S u=500*(2+B^2+FRAN());S v=0
51.03 F i=1,5;S u=u+.45*C(3,i)*C2(3,i)+D(i)*E(i);S v=v+C(5,i)*C1(i)
51.05 S U=U+J*u;S V=V+J*v;S v=FLOG(1+.02*B);S H=H*FEXP(J*v)
51.10 R

Нужное место находится в строке 51.02: S u=500*(2+B^2+FRAN()).
На БК расходы U зависят от социального положения B (1 - бизнесмен, 5 - президент).

 Положение | Расходы на жизнь
-----------+-------------------
 Бизнесмен | от  1000 до  2000
 Лидер     |
 профсоюза | от  2500 до  3500
 Шериф     | от  5000 до  6000
 Сенатор   | от  8500 до  9500
 Президент | от 13000 до 14000

Агатовская версия 1987 года:

 7000 A(1) = 0:A(2) = 0:A(3) = 0:A(4) = 0
 7002  FOR I = 0 TO 4
 7004 A(1) = F(I) * F1(I) + A(1)
 7010 A(2) = C(I) * C3(I) + E(I) * E3(I) + A(2)
 7015 A(3) = E(I) * E1(I) + F(I) * F2(I) * 0.5 + A(3)
 7020 A(4) = D(I) * D1(I) + C(I) * C2(I) * 0.45 + G3(I) * G(I) * 0.05 + A(4): NEXT I
 7027  GOSUB 3000
 7028 A(4) = A(4) + 1000 + 500 * Y
 7030  RETURN 

Нужное место в строке 7028. Сразу видно два отличия:
1) расходы ниже, от 1025 до 1500
2) расходы не зависят от социального положения - и бизнесмен и президент платят одинаково.
Кажется, это единственное место, которое делает Агатовскую версию проще.


II. Стоимость собственности.
----------------------------
Версия БК:

102.10 D 2;S X=FITR((2+5*Y)*20*5^I);S Z=FITR(.7*X*(Y+.3))

Цены получаются такие:

 Собственность | Цена
---------------+--------------------
 Квартира      | от    55 до    637
 Машина        | от   275 до   3185
 Вилла         | от  1378 до  15925
 Яхта          | от  6890 до  79625
 Самолет       | от 34453 до 398125

Агатовская версия:

 3200  GOSUB 3000:X = (200 + 500 * Y) * (5 ^ I):Z = X * Y: RETURN 

Видно, что формула другая и цены отличаются:

 Собственность | Цена
---------------+---------------------
 Квартира      | от    56 до    3500
 Машина        | от   281 до   17500
 Вилла         | от  1406 до   87500
 Яхта          | от  7031 до  437500
 Самолет       | от 35156 до 2187500

Неплохо так. Верхняя граница цен в 5 раз выше.


III. Расчет шансов
------------------
В общем, и так понятно: в Агатовской версии денег дают меньше, все стоит дороже, значит играть сложнее.
Но с цифрами интереснее. У нас есть три случайных переменных: начальная сумма A, цена квартиры B и расходы на жизнь C.
Спрашивается, чему равна вероятность, что A >= B * 1.45 + C?
(Не забываем, что 45% от цены квартиры - это расходы на ее содержание.)

На уровнях сложности 2 и 3 в БК-шной версии денег дают столько, что прожить год и купить квартиру можно всегда. То есть, вероятность прожить первый год без долгов 100%.

На уровне 1 в БК-шной версии дают денег от 1575 до 3000. Расходы на жизнь от 1000 до 2000. Стоимость квартиры от 55 до 637. Вероятность прожить первый год без долгов 68.4%.

В Агатовской версии дают денег от от 1038 до 1750. Расходы на жизнь от 1025 до 1500. Стоимость квартиры от 56 до 3500.
Вероятность прожить первый год без долгов 2.6%.

Ну блин! Нечестно же! С вероятностью 97.4% игрок уходит в минус уже на первом году. Можно выиграть не больше 1 игры из 38.

Это я к чему. Может, стоит искать Агатовские версии, где все эти расчеты делаются ближе к БК-шной версии? Или вообще заново эту игру перенести? Просто непонятно, кто захочет играть в игру с таким балансом?

19

Re: Президент

Может, стоит искать Агатовские версии, где все эти расчеты делаются ближе к БК-шной версии?

А не пустое ли это занятие? Версий, как я понял, много и каждую проверять... К тому же, в какой-то версии эти расчёты могут быть более корректны, но что-то неправильно в другом месте...

Или вообще заново эту игру перенести?

Думаю, это единственный вариант получить рабочую версию. Или, во всяком случае, столь же рабочую, как и БКшная. Но вопрос - зачем? Если для собственного удовольствия или чтобы положить в коллекцию агатовских программ - да. Но если реально играть - кем это будет востребовано? Среди ретро-любителей БК и "Вектор" более распространены, чем "Агаты", на БК (или эмуляторе) можно поиграть в оригинал, можно поиграть и на "Векторе" - вряд-ли его версия хуже агатовской...

Просто непонятно, кто захочет играть в игру с таким балансом?

Думаю, захочет тот, кто не знает, какие "подставы" скрываются в самой игре, тот, кто просто хочет поиграть в "экономический симулятор". Я сам, когда-то, пытался играть в эту игру (помню, там была короткая музыка в начале, перед запуском) и свои постоянные провалы относил на счёт неумения вести дела. Копаться в игре и проверять код даже не думал, тогда считал, что если есть игра, то она вне подозрений, а проблему нужно искать в себе.

20

Re: Президент

Так может тогда стоит Володину версию (подправленную) выложить?

21

Re: Президент

Если нужно передать суть оригинальной игры, то это плохой вариант.
Я тут разбирался с устройством биржевой торговли в игре и понял, что это была основная фишка.
Подправленная версия позволяет биржевой торговлей вообще не заниматься, поэтому игра просто теряет свою суть.

Это не значит, что тут есть какая-то рабочая стратегия как выиграть. Это в SimCity если делаешь правильные действия, то никогда в минус не уйдешь. В Президенте можно все делать идеально и все равно продуть. Эта игра по факту рулетка.
И если убрать непредсказуемость, то получается совсем другая игра.

***

Что мне удалось накопать.

По началу я смотрел только на величину дивидендов, поэтому мне казалось, что проку от акций немного. А вот когда я посмотрел в коде, как формируется курс акций, тут до меня дошло, что торговля акциями - это самое главное.

Интересно, что в игре Millionaire курсы акций вполне реалистичные. Они в начале игры все равны 150, а дальше обновляются по формуле S = INT(RND(1) * 100 + 100 + 2/3 * S). То есть, курс может временами немного проседать, но на большом интервале времени он всегда растет.

В Президенте курс акции это тупо случайное число от 5 до 100, которое заново устанавливается при каждом входе на биржу. В результате, если у игрока есть 1000 денег, он, в теории, может купить 200 акций по курсу 5, выйти с биржи, потом зайти снова, продать эти 200 акций по курсу 100 и получить 20000. А потом провернуть такой трюк еще пару раз и стать миллионером :) Но это в теории.

На деле тут есть много уровней защиты от быстрого обогащения :)

1-й уровень - это теория вероятностей. Шанс купить акции по минимальной цене, а при следующем заходе на биржу продать по максимальной равен 1 к 9216. Но если быть скромнее, то шансы растут. Шанс купить акции по курсу меньше 25, а продать по курсу больше 75 на втором заходе на биржу равен где-то 7%. Шанс заработать хоть что-нибудь (разница курсов больше 0) - уже 50%. Плюс, шанс растет при последующих заходах на биржу, так что если играть очень долго, то заработать хоть что-то можно почти наверняка. Вот только другие механизмы защиты этому сильно мешают :)

2-й уровень защиты - встроенные несчастные случаи. С вероятностью 50% при входе на биржу у игрока либо вымогают деньги, либо крадут акции, либо он попадает в больницу, либо его штрафуют за неверно оформленные бумаги, либо он получает судебный иск. Так как на биржу нужно зайти минимум два раза (купить акции и продать акции), то вероятность понести убытки увеличивается до 75%.

От этих несчастных случаев можно защищаться, нанимая персонал, но в начале игры на это нет денег.
Еще есть несчастные случаи при выходе с биржи. Они происходят с вероятностью 20% и приводят к потере собственности. От них тоже можно защищаться страхуя имущество, но опять же, на это нужны деньги. В Агатовской версии, кстати, почему-то не горит квартира, в отличие от БК-шной.

3-й уровень защиты - ограничение на число покупаемых и продаваемых акций. Например, акций по максимальному курсу 100 бизнесмен может продать не больше 25 (президент - не больше 125). В БК-шной версии этот предел можно повысить в 3 раза если нанять маклера, но в Агатовской версии этого нет.

Купить акций по минимальному курсу бизнесмен может тоже не больше 25.

Ограничение на число акций заодно ограничивает максимальную прибыль от продажи акций. Это важный момент. При продаже акций по максимальной цене полученная сумма будет меньше, чем при продаже по средней цене. Например, при курсе 100 можно продать акций на 2500, а при курсе 53 - уже на 13780 (и это максимум).

4-й уровень защиты - ограничение на число заходов на биржу в год. Точное число я не нашел, но вроде 4 или 5. Потом наступает рождество, год заканчивается, и если игрок не успел выгодно продать акции, то он уходит в долги :)

***

В общем, с этими знаниями в Векторовской версии мне один раз удалось купить акции по 14 и продать по 90, причем без несчастных случаев. Потом на полученные деньги купить сразу ресторан, который приносит больше прибыли чем бар, и протянуть аж 10 лет. Но развить успех не удалось, потому что потом несчастные случаи стали сыпаться непрерывно и, в конце концов, загнали меня в долги :)

22

Re: Президент

> Так может тогда стоит Володину версию (подправленную) выложить?

Моя заведомо сильно облегчённая. Там есть некоторая вероятность неудач, но совсем небольшая.
Я думаю, выложить можно одну из тех версий, которые я указывал как исходники для моей.
Но важно (может быть это будет даже интересенее чем игра), выложить комментарии, которые есть в этом треде.


> Это в SimCity если делаешь правильные действия, то никогда в минус не уйдешь.

В simcity тоже проиграть не сложно. Там известна стоимость строек и свой текущий счёт, но остальные цифры и взаимосвязи скрыты туманом.
Может быть в инструкции к игре они есть ? Но я её не видел.
В результате очень многое там происходит "на ощупь", так же как в Президенте.