Навигация

• Онлайн: 2

qr_code



Рейтинг@Mail.ru

Индекс цитирования

Яндекс
creation/prograf/nbin.txt · Последнее изменение: 04.02.2025 08:23 — nozdr

Игра NBIN

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

Далее, если в теме, что это такое, то можно смело пропустить.

тут про двоичный код

тут про двоичный код

Как известно, двоичный код – это способ представления данных в виде кода, в котором каждый разряд принимает одно из двух возможных значений, обычно обозначаемых цифрами 0 и 1, «0» это выключенное состояние, а «1» это включенное состояние. Единицу информации, которая может содержать в себе одно из двух возможных состояний, называют бит.

Бит (русское обозначение: бит; международное: bit; от англ. binary digit — двоичная цифра; также игра слов: англ. bit — кусочек, частица) — единица измерения количества информации. 1 бит информации — символ или сигнал, который может принимать два значения: включено или выключено, да или нет, заряженный или незаряженный. Бит может описывать не обязательно дискретные значения, а например, противоположные границы диапазонов или просто два чего-нибудь. Например, холодный или горячий, белый или чёрный, высокий или низкий, красный или синий. Понятно, что в диапазоне или наборе бывают и какие-то промежуточные значения. Но в бите их нет, возможны только два.

Любой двухпозиционный переключатель представляет собой физическое воплощение бита.

В двоичной системе счисления в качестве основы используется именно такой двоичный код, в нём всего две цифры – это 0 (ноль) и 1 (единица). В десятичной системе цифр десять – 0123456789, в шестнадцатеричной – шестнадцать: 0123456789ABCDEF, в восьмеричной – восемь: 01234567, а в двоичной всего две – 0 и 1. Перечисленные системы счисления являются позиционными. Это значит, что позиция, в которой стоит цифра в числе, очень важна. От позиции (разряда) цифры зависит, сколько именно цифра означает. Например, в числе 1 единица означает 1 :) В числе 12 единица означает уже 10, в числе 123 – сотню, а в 1 000 000 – аж миллион. Это в десятичной. А в двоичной системе чтобы посчитать, сколько значит единичка в определённой позиции, нужно посчитать, сколько будет 2позиция - 1. 1 в первой позиции означает 21-1=20=1. Единичка во второй позиции 22-1=21=2, в третьей – 23-1=22=4, в 4-й – 24-1=23=8 и т.д. Получается ряд степеней двойки: 1,2,4,8,16,32,64,128,256…

Чтобы последовательно записывать числа в десятичной системе, нам нужно постепенно перебирать цифры сначала в первом разряде, потом, когда все переберём, то переходим к следующему разряду. Сначала перебираем одноразрядные числа 0,1,2,3,4,5,6,7,8,9. Всё, цифры для первого разряда закончились. Тогда ставим на второй разряд первую значащую цифру 1 и снова начинаем перебирать первый разряд: 10,11,12,13,14,15,16,17,18,19. Всё, опять приехали. Перещёлкиваем во втором разряде 1 на 2 и снова начинаем перебирать первый разряд. И так далее. В результате мы доходим до числа 99. Затем переходим к третьему разряду и снова перебираем сначала первый разряд, потом увеличиваем на 1 второй, снова перебираем первый и т.д. Таким образом постепенно перебираем все возможные числа от 0 до ∞ :)

Ну да что я вам тут рассказываю, как детсадовцам…

А как быть, когда цифры всего две? 0, потом 1 и всё. То есть одним разрядом можно закодировать всего два числа. Первый разряд окончен, переходим ко второму. Ставим во второй разряд единицу и снова перебираем первый разряд: 10, 11. Всё :) То есть если у нас есть два разряда, то мы можем закодировать 4 числа: 00, 01, 10, 11. Переходим к третьему разряду: 100, 101, 110, 111. Значит, с тремя разрядами мы можем закодировать всё, что было раньше и ещё 4 числа, итого 8: 000, 001, 010, 011, 100, 101, 110, 111.

Для четырёх разрядов получается 16 чисел: 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111. Для пяти разрядов – 32 числа, для шести – 64, для семи – 128, для восьми – 256. В общем, мы вернулись к нашему ряду: 1,2,4,8,16,32,64,128,256

Как будут выглядеть восьмиразрядные двоичные числа?

  • 00000000
  • 00000001
  • 00000010
  • 00000011
  • 00000100
  • 00000101
  • 00000110
  • 00000111
  • 00001000
  • 00001001
  • 11111000
  • 11111001
  • 11111010
  • 11111011
  • 11111100
  • 11111101
  • 11111110
  • 11111111

О таком бинарном представлении чисел я уже неоднократно писал, например, в той же сказке про ёлочки, и ещё не раз буду к нему возвращаться.


Итак, игрушка должна быть про бинарный код и чтобы работала и на компьютере и на телефоне одновременно. Проще, чем реализовать это на html+javascript и разместить у себя на сайте, в голову не пришло. Решил ограничиться чистым фронтэндом. Может быть, потом придумаю какой-нибудь бэкэнд с сохранялками, стеной плачаславы и пр. А может быть и не надо этого. А пока вот, что получилось. NBIN = NoZDR's Binary.

Жмите вот эту ссылку, игра откроется в новом окне:

Игра NBIN

А вот как игра выглядит:

Игра NBIN несложная, её можно пройти, сделав минимум 502 шага. На это у меня уходит чуть более пяти минут. Но обычно шагов я делаю больше. Потому что следовать идеальной стратегии, когда на каждом шагу открываешь новый вариант, довольно сложно. Если хочется узнать побольше про оптимальную стратегию с минимальным количеством шагов, почитайте про Код_Грея.


Инструменты страницы

Инструменты пользователя