Buls and Cows

Решил Python я  изучать,
На нем писать программу.
Я программист? Нельзя сказать!
Известен лишь Fortran мне.
Python, Fortran -  они совпали
В функциональности своей
Но синтаксис их отличает,
К тому ж Fortran  в разы быстрей
Python вначале проектирует
Написанный свой код в байт-код,
Затем байт-код интерпретирует
И сам Python дает итог.
В Python  введен интерпретатор,
Он главный, как бы “оператор”.
Ошибки  с  ним легко исправить
Интерпретатор помогает.

Мой код - игра: “x” в нем число.
Оно четырехзначное,
Желание игрока узнать его,
Такая игрока задача.
Цифры в числе “х”  без повторений
И ноль не может быть в начале,
В программе функция сравнений
Дает подсказку, что не странно,
Ведь без подсказки нет решений,
Вариантов много без сомнений.
Здесь логику бы применять
И это нужно понимать.
Игра такая всем известна,
Buls и Cows есть имя ей
Я думаю  будет полезно
Для практики мне  потрудиться с ней.
Хотя бы в смысле повторения.
И просто так для закрепления.
Другая  цель сего творения
Задачу взять в стихотворение..
Когда я рифму применяю,
Смысл задачи четче знаю.
Теперь посмотрим как мой код
Четыре  цифры подберет
В виде загадки игроку.
Сейчас я это объясню.
В число не ставим ноль в начало,
Все цифры разные возьмем.
Цифры находим все случайно
from random import shuffle() берем
Чтоб цифры все перемешать.
Мешать весь список  цифр будем:
Ноль может где угодно встать.
Об этом думать здесь не будем.

Все десять цифр берем как list(z),
Где в скобках  ( z )- его название.
Сумеет shuffle(z)   list(z) сменить
(Здесь в скобках буквы не читаем)
Цифры меняет shuffe() случайно,.
Ведь shuffle() явился к нам из random,
Случайно выполнить задание.
list(z) - здесь список.Понимаешь?
Если захочешь, ты узнаешь .
Теперь мы в измененном списке
Возьмем четыре рядом  цифры
Они все разные. Ты понял:
Ведь список с цифрами тот самый,
Лишь место цифры поменяли.
Другие индексы им дали.
Индекс - номер места цифры.
Той, что будет в этом списке..
Если  “х”  само число
Создать его совсем легко
Взяв в списке  срез  в четыре цифры
Из “z”, что измененный  нынче.
Срез - часть списка по-порядку
Меж  двух индексов подряд там..
Цифру первую берем
С индексом один
Дальше индексы растут
По порядку все идут.
Нужно только убедиться, 
Что ноль не с индексом один
Если все же ноль случится,
Сдвинем срез на одиницу.
Первый индекс станет два
Там не ноль. Согласны да?
Игрок в input() число задал,
Оно четырёхзначное
Оно есть “y”, так назвал
И думает, что “х” узнал.
Теперь “х” с “у” есть в программе,
Чем похожи нам узнать бы.
Код программы выставляет
Игроку подсказку:
“Сколько цифр совпадает,
Сколько к индексам привязка”.
Коль значение и индекс цифр совпадает,
В “b”, что переменная, единицу прибавляем.
Если лишь в значении совпадение будет,
Прибавить единицу в “c” тоже не забудем.
“b” имеет смысл Buls “c”  такой же смысл для Cows.
Buls и Cows значения даются игроку
Число “у” новое им вводится в input().
Такой процесс продлится пока значение Buls
Четверкой в “b” окажется, ты выиграл игру.
Число процессов игровых бывает задается.
Победа здесь сложнее, но тоже удается.


Рецензии