Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
#Круги добра
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр «Дурак подкидной и переводной» — классика карточных игр! Яркий геймплей, простые правила. Развивайте стратегию, бросайте вызов соперникам и станьте королем карт! Играйте прямо сейчас!

Дурак подкидной и переводной

Карточные, Настольные, Логическая

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • Animalrescueed Animalrescueed 36 постов
  • Oskanov Oskanov 7 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
3696
TriggerAuto
TriggerAuto
1 год назад

Новая игра в крестики-нолики от Lewabov Gobblet Gobblers⁠⁠

Tg - VideoByte

Крестики-нолики Настольные игры Видео Вертикальное видео Telegram (ссылка)
128
8
Ndetea
1 год назад

Крестики-нолики⁠⁠

Крестики-нолики Игры Мяч Идея Активный отдых Спорт Парни Девушки Забавное Веселье Вертикальное видео Видео
1
2027
rahatlykym
rahatlykym
1 год назад
Видеохостинг на Пикабу

Ну а чтобы и нет?⁠⁠

Настольный теннис Крестики-нолики Азиаты Развлечения Видео Вертикальное видео
42
16
Timeweb.Cloud
Timeweb.Cloud
1 год назад
Лига программистов

Играем в крестики-нолики c RPN калькулятором⁠⁠

Автор текста: dlinyj

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

Когда я разбирался с программируемыми калькуляторами, то думал, как бы элегантнее протестировать функциональность устройства. Один из известных способов проверки – это реализация какой-либо игры.

Игр для калькуляторов, как на просторах бывшего СССР, так и за рубежом громадное количество, остаётся только выбрать. Наиболее популярная — это «Посадка на Луну». Однако, для меня она показалась скучной и неинтересной, а сам код сложным и запутанным. Поэтому мой выбор пал на крестики-нолики, так как все мы играли в них в школе, и мне стало интересно сыграть в неё с калькулятором.

Реализовать игру решил на модели HP-32S, поскольку он мне очень полюбился за красоту архитектурной реализации и удобство программирования.

❯ Основа программы


В предыдущей своей статье "Калькуляторы с обратной польской нотацией" я делал обзор литературы для программируемых калькуляторов. Среди которой была замечательная книга А.Г. Гайшут "Калькулятор твой помощник и соперник в играх".

В этой книге приводится огромное количество примеров игр на калькуляторе и, в частности, пример игры в крестики-нолики:

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

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

Поэтому придётся разбираться с этой программой самостоятельно. Приведу текст и описание программы из книги под спойлером:

Описание программы Крестики-нолики из книги:

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост
Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

Главная задача – это перенос этого кода с МК-61 на калькулятор HP-32S. Для начала, разберёмся как эта программа работает.

❯ Проверка программы на МК-61


Первое, что я сделал – это перенабрал код из книги в формате, который понимает онлайн-эмулятор МК-61.

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

Кстати, если интересно, то можно попробовать поиграть в эмуляторе, чтобы понять принцип работы. Для этого копируем код, вставляем в область «Код программы:» и нажимаем кнопку «Ввести в память». Картинка из книжки выше подсказывает нам, что калькулятор даёт координаты, куда ставить "X", а мы ему в ответ передаём координаты, куда ставить "O".

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

Координаты для игры

Чтобы начать играть на клавиатуре калькулятора, нужно нажать кнопку [С/П]. В ответ будет выведено число, первое число всегда «9» (центр поля). В ответ необходимо ввести свою координату, например, «2» и нажать [С/П]. И так далее, пока вы не проиграете (калькулятор выведет «77», либо будет ничья (калькулятор выведет «0»).

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

Калькулятор победил

Чтобы посмотреть последний ход калькулятора, надо обменять регистры X и Y местами, для этого нужно нажать на клавишу [⟷].

Проверка показала, что всё прекрасно работает как в эмуляторе, так и на живом калькуляторе, и ошибок в программе нет.

❯ Анализ кода программы для калькулятора МК-61


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

Особенность программирования МК-61 в том, что он пропускает команду перехода, если условие истинно, и исполняет — если ложно! Поэтому все условия для python пришлось инвертировать. Плюс, я для удобства ввёл дополнительные функции, которые также перенёс впоследствии в HP-32S: функция вывода координат крестиков и ввода ноликов, функция ничья и победа калькулятора:

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

Первое – инициализирую регистры калькулятора:

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

После всех подпрограмм идёт головная программа:

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

Можно увидеть, что в любом случае в самом начале крестик будет стоять на координате 9. Вся основная логика сокрыта в подпрограмме.

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

Из всего кода я понял, что второй ход калькулятора будет на единицу меньше оппонента, а если ход был в координату «1», то равен восьми. Но вот что делает остальная логика программы, особенно зачем там тригонометрическая функция, для меня осталось загадкой. Буду рад читателям, если кто-то сможет прояснить, как же работает эта программа.

Исходный код доступен в репозитории проекта.

И, да, код вполне себе работоспособен, в чём несложно убедиться:

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

❯ Перенос кода на HP-32S

Напомню, что калькулятор HP-32S, который есть у меня, принадлежит семейству калькуляторов HP10B/14B/17B/17BII/19BII/20S/21S/22S/27S/28S/32S/32SII/42S, таким образом, всё, что приводится ниже, с небольшими адаптациями можно будет перенести и на другие модели этой серии.

Трудозатраты в предыдущей главе, по переносу кода на python, были проделаны с двумя целями:

  1. Понять, как же работает этот код (увы, не выполнено).

  2. Более удобно переносить на другую модель калькулятора.

Этакая программная блок-схема, которая позволяет понять, какие регистры нужны, какие переходы и прочее.

Вооружившисьдокументацией на калькулятор HP-32S, я переписал программу крестиков-ноликов с питона для него. Для удобства я делал это в таблицах Exel. Как я уже говорил, особенность калькулятора в том, что он маркирует каждую строку буквой и цифрой, а любая метка – это смена буквы. Таблицы идеально подходят для этого.

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

Код программы для калькулятора HP-32S:

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост
Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

В силу того, что на калькуляторе HP-32S можно сделать вывод на экран конкретного регистра (с указанием имени регистра), а также запрос ввода другого конкретного регистра, то ввод-вывод становится чуть более интерактивным и интересным.

Лучше один раз увидеть, чем тысячу раз прочитать.

❯ Выводы


Изначально задача казалась мне такой простой, но заняла у меня достаточно приличное время. Её ценность состояла в том, что мне удалось разобраться — как же программировать для калькулятора HP-32S. В результате оказалось, что из модельного ряда калькуляторов, с которыми я занимался — эта версия оказалась самая дружелюбная и удобная.

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

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

❯ Полезные ссылки:

  1. Гитхаб этого проекта

  2. Первая часть «Калькуляторы с обратной польской нотацией»

  3. Сайта автора «Гайштут и его друзья»

  4. Онлайн-эмулятор МК-61

  5. Документация на калькулятор HP-32S


Если вам интересна металлообработка, старое железо, всякие DIY штуки, погроммирование и linux, то вы можете следить за мной ещё в телеграмме.

  • Написано специально для Timeweb Cloud и читателей Пикабу. Подписывайтесь на наш блог, чтобы не пропустить новые интересные статьи.

  • Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать наши проекты.

Показать полностью 13
[моё] Калькулятор Программирование СССР Timeweb Электроника Познавательно Игры Крестики-нолики Гаджеты Длиннопост
5
13
nickclick
nickclick
1 год назад

ИИ нового поколения побеждает людей в игре в крестики-нолики⁠⁠

Искусственный интеллект Юмор Инновации Сарказм Без звука Крестики-нолики Видео Вертикальное видео
2
13
user9039536
user9039536
1 год назад

Инновационные крестики нолики xD⁠⁠

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

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

https://t.me/neurogpt4/154

Показать полностью
Мобильные игры Крестики-нолики Инновации Видео Вертикальное видео Telegram (ссылка)
5
6784
VoronGoshaTV
VoronGoshaTV
1 год назад
Лига орнитологии

Хорошо освоил игру⁠⁠

[моё] Ворон Гоша Птицы Животные Крестики-нолики Настольные игры Домашние животные Видео Вертикальное видео
220
27
TriggerAuto
TriggerAuto
1 год назад
Видео: Как это сделано

Когда скучно на работе⁠⁠

Крестики-нолики Дорога Игры Видео Без звука Вертикальное видео
2
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии