Угадай число: Логическая игра «Угадай число»

Содержание

5 простых математических фокусов | Мел

Привить любовь к математике можно разными способами, и самый необычный из них — через фокусы. Для некоторых детей этот способ может стать самым действенным — появится реальный стимул тренироваться в устном счёте и разбираться в формулах. Сайт «Фокусы. Как научиться» собрал пять самых интересных математических фокусов, а «Мел» попросил учителя математики Дмитрия Коробченко объяснить, как они работают.

Рассылка «Мела»

Мы отправляем нашу интересную и очень полезную рассылку два раза в неделю: во вторник и пятницу

Математические фокусы — самые простые в исполнении. Для них не нужен реквизит, длительная подготовка и специальное место для демонстрации. Смысл таких фокусов — в отгадывании чисел, задуманных зрителями, или в каких-нибудь операциях над ними. Все чудеса основаны на математических закономерностях, такие фокусы можно проделывать на уроках алгебры и геометрии.

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

Дмитрий Коробченко,

учитель математики:

Обобщить секрет всех подобных математических фокусов можно следующим образом: зритель загадывает некое случайное число (или числа). Затем мы предлагаем зрителю произвести с этим числом некоторые простые арифметические операции. В итоге у зрителя получается некий финальный результат («ответ»), и наша задача — либо (1) угадать этот результат, либо (2) по этому результату, который зритель нам сообщает, предсказать исходное загаданное число.


1. Угадай число

Содержание фокуса. Попросите любого зрителя задумать число. Потом это число зритель должен умножить на 2, прибавить к результату 8, разделить результат на 2 и задуманное число отнять. В результате вы смело называете число 4.

Пример. Зритель задумал число 7.

Дмитрий Коробченко:

Фокус относится к случаю (1). Загадано число X. Зритель выполняет следующие операции:

Мы получили 4 независимо от изначально загаданного числа.

Ответ: 4


2. Угаданный день рождения

Содержание фокуса. Объявите зрителям, что вы сможете угадать день рождения любого незнакомого человека, сидящего в зале. Вызовите любого желающего и предложите ему умножить на 2 число дня своего рождения. Затем пусть зритель сложит получившееся произведение и число 5 и умножит на 50 полученную сумму. К этому результату необходимо прибавить номер месяца рождения (июль — 7, январь — 1), вслух назвать полученное число. Через секунду вы называете день и месяц рождения зрителя.

Секрет. Все очень просто. В уме от того числа, которое назвал зритель, отнимите 250. У вас должно выйти трехзначное или четырехзначное число. Первая и вторая цифры — день рождения, две последние — месяц.

Дмитрий Коробченко:

Фокус относится к случаю (2). Загадан день рождения. День — X, месяц — Y. Оба числа являются не более чем двузначными. Зритель выполняет следующие операции:

В уме отнимаем 250:

Так как Y — не более чем двузначное число, в получившемся числе [W=X*100+Y] месяц Y и день X никак не перемешаются. Поэтому последние две цифры числа W — это месяц Y, остальные — день X.

Пример:

Ответ: X, Y


3. Разгаданный результат математических вычислений

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

Содержание фокуса. Предложите зрителям задумать трехзначное число и записать его на бумаге. При загадывании числа должно быть выполнено одно условие: цифра сотен не должна быть равна цифре единиц и не должна быть на единицу меньше или больше неё. Если вы ещё путаетесь в сотнях и единицах, то на первом месте в трехзначных числах стоят сотни, на втором десятки, на третьем единицы (например, подойдёт число 531).

Пример. Допустим, это и есть число 531. Теперь зрители должны перевернуть задуманное число, то есть написать цифры в обратном порядке (135). Затем зрители должны взять эти два числа и из большего вычесть меньшее (531 — 135). Получившуюся разницу снова нужно перевернуть (396; 693) и сложить эти два числа (396 + 693). Потом один из зрителей должен прибавить к полученной сумме 100, второй — 200, третий — 300 и так далее. Теперь вы можете отгадать, что получилось у каждого зрителя, но при том условии, что они к своему последнему числу прибавят цифру 1 089. У первого зрителя, прибавлявшего 100, получится 1 189, у второго — 1 289, у третьего — 1 389.

Секрет фокуса. Для того чтобы узнать, что получилось, вам не нужно знать задуманное число. Главное — прибавлять к числу 1 089 то число (100, 200, 300, 400…), которое прибавлялось в самом конце. Для того чтобы не перепутать, у кого что получилось, в самом конце фокуса можно раздать карточки с цифрами 100, 200, 300 и попросить держать их при отгадывании конечного результата.

Дмитрий Коробченко:

Примечание: Порой в фокусах встречаются различные операции над цифрами, которые входят в состав используемых чисел. В таком случае полезно пользоваться тем фактом, что число с цифрами a, b,c, записанное как «abc», представимо в виде:

Например:

Фокус относится к случаю (1). Загадано трёхзначное число, X, записанное как «abc». Цифра сотен — a. Цифра десятков — b. Цифра единиц — c. То есть:

По условию:

Зритель выполняет следующие операции. Перевернуть число:

Вычесть из большего числа меньшее (допустим, a > c, в противном случае всё будет так же, просто a и c поменяются ролями):

Для дальнейшего действия нам необходимо представить число («abc» — «cba») как «def», то есть найти его сотни, десятки и единицы.

Все такие двузначные числа можно найти в таблице умножения (18, 27, 36, 45, 54, 63, 72, 81), и они обладают следующим свойством: сумма цифр такого числа равна 9. Запишем 9*t как «df»:

Вернёмся к числу «abc» — «cba»:

Дальнейшее действие — получившееся число снова перевернуть и сложить с предыдущим:

В результате мы получили число 1089 независимо от изначально загаданного числа. Далее к этому числу мы просим прибавить 100, 200 или 300 и получаем соответственно 1189, 1289 или 1389.

Ответ: 1189, 1289 или 1389 (в зависимости от зрителя).


4. Угадываем задуманное число

Вам понадобятся: заранее приготовленные листы бумаги (по числу зрителей), карандаши или ручки, калькуляторы.

Содержание фокуса. Предложите зрителям задумать двузначное число. Теперь пусть они умножат число его десятков на 2, прибавят к этому произведению число 5, умножат эту сумму на 5, к полученному произведению прибавят 10 и число единиц того числа, которое задумали. Пусть любой зритель скажет, что у него получилось. Вычтите из полученного результата число 35 (лучше сделать это в уме или на калькуляторе, не посвящая в свои действия зрителей), и вы сможете назвать задуманное зрителями число.

Пример. Все основано на математических закономерностях, о которых вашим зрителям знать необязательно. Как это выглядит в реальном фокусе? Например, зритель задумал число 38: 3 десятка и 8 единиц. Умножаем 3 на 2, получается 6. Прибавляем к 6 число 5, получаем 11. Умножаем эту сумму на 5, получаем 55. Прибавляем 10 и получаем 65. Прибавляем число единиц (8) задуманного числа. Получаем 73, вычитаем 35. В итоге задуманное число — 38.

Дмитрий Коробченко:

Фокус относится к случаю (2). Загадано двузначное число X, записанное как «ab»:

Зритель выполняет следующие операции:

Ответ от зрителя — Z. В уме отнимаем 35:

Ответ: X


5. Фокус с отгадыванием чисел

Вам понадобятся: заранее приготовленные листы бумаги (по числу зрителей), карандаши или ручки (по числу зрителей), калькуляторы.

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

Теперь пусть каждый умножит это число на 2, затем к полученному числу морковок прибавит 5, после чего умножит эту сумму на 50. Теперь пусть каждый сделает следующее: если в этом году уже был день рождения, прибавить 1 750, если нет — 1 749. Теперь из этого числа каждый должен вычесть свой год рождения и к этому числу прибавить 7.

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

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

Пример. Допустим, вы загадали 2 дня в неделю для поедания морковки. Теперь умножьте 2 на 2, получится 4. Потом к 4 прибавьте 5, получится 9, затем 9 умножьте на 50, получится 450. Допустим, ваш день рождения 18 июля 1997 года. Например, сейчас сентябрь и ваш день рождения уже прошёл. Значит, прибавьте к 450 число 1 750, получится 2 200. Теперь из числа 2 200 вычтите год рождения 1997, получится 203, к этому числу прибавьте 7. Результат — 210 (2 дня и 10 лет).

Во втором случае из числа 2 199 вычтите 1 997, получится число 202, прибавьте 7, получится 209. Значит, загадано 2 дня морковки и 9 лет загадавшему.

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

Дмитрий Коробченко:

Фокус относится к случаю (2). Но этот фокус работает только в 2007 году. Для других годов нужно заменить число 1750 на другое.

Загадано число морковок X и возраст зрителя Y. Также в задаче участвуют:

Зритель выполняет следующие операции:

Ответ от зрителя — W.

Если возраст зрителя меньше 100 лет, то в получившемся числе [W=100*X+Y] возраст Y и количество морковок X никак не перемешаются. Последние две цифры числа W — это возраст Y, остальные — количество морковок X.

Пример:

Ответ: X, Y


ЧИТАЙТЕ ТАКЖЕ:

Математика в школе: 9 вещей, которые бесят

10 математических секретов, которые научат легко считать в уме

Как математика спасла мир (и чуть не уничтожила)

Игра в «Угадай число»

В этой части Учебника Perl мы начнем создавать маленькую, но веселую игру. Это была моя первая игра, которую я написал в средней школе, еще до того как вышел Perl 1.0.

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

Целая часть дробного числа

Функция int() возвращает целую часть переданного ей параметра:

use strict;
use warnings;
use 5.010;

my $x = int 3.14;
say $x;          # выведет 3

my $z = int 3;
say $z;          # тоже выведет 3.

                 # Даже это выведет 3.
my $w = int 3.99999;
say $w;

say int -3.14;   # выведет -3

Случайные числа

Вызов функции Perl'а rand($n) вернет случайное дробное число от 0 до $n. Причем это может быть 0, но не $n.

Если $n = 42, то вызов rand($n) вернет случайное число от 0 до 42. Это может быть 0, но не 42. Например, 11.26462482109582.

Если мы не зададим значения, то rand() по умолчанию даст число от 0 до 1, включая 0 и исключая 1.

Объединив rand и int, мы сможем генерировать случайные целые числа.

use strict;
use warnings;
use 5.010;

my $z = int rand 6;
say $z;

Это вернет число от 0 до 6. Оно может быть 0, но не 6. Так что это будет одно из чисел: 0,1,2,3,4,5.

Если же мы добавим к результату 1, то получим какое-то из чисел 1,2,3,4,5,6, как если бы бросили кубик.

Упражнение: игра «Угадай число»

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

Напишите скрипт, в которой, используя функцию rand(), компьютер «загадывает» целое число от 1 до 200. Пользователь должен угадать число.

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

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

Угадай число - Задачи - E-Olymp

Боб и его старший брат Альберт часто играют в игру "Угадай число". Сначала Боб загадывает число K в диапазоне от 1 до N. Потом Альберт называет числа, а Боб говорит, является названное число больше или меньше загаданного или Альберт назвал правильное число. Альберт для угадывания всегда использует следующую стратегию.

1 шаг. Альберт задает A=1 и B=N

2 шаг. Альберт вычисляет M – целую часть среднего арифметического чисел A и B

3 шаг. Альберт называет число M

4 шаг. Если Боб говорит "Меньше", то Альберт полагает A=M+1 и переходит к шагу 2

5 шаг. Если Боб говорит "Больше", то Альберт полагает B=M1 и переходит к шагу 2

6 шаг. Если Боб говорит "Угадал", то игра заканчивается

Например, пусть N=9, а задуманное Бобом число K равно 6. Сначала A=1, B=9. Альберт называет число 5 и получает ответ "Меньше". Теперь A=6, B=9. Следующее число-попытка 7. Боб отвечает "Больше". Теперь A=6, B=6. Альберт называет 6 и получает ответ "Угадал".

Напишите программу, которая определяет, сколько чисел придется назвать Альберту, прежде чем он получит ответ "Угадал" от Боба.

Входные данные

В первой строке входного файла содержатся два целых числа N (1  ≤  N ≤  1000) и K (1  ≤  K ≤  N), разделенных пробелом.

Выходные данные

В выходной файл вывести одно целое число – количество названных Альбертом чисел до получения ответа Боба "Угадал".

Лимит времени 1 секунда

Лимит использования памяти 64 MiB

Python скрипт - игра угадай число.

Вы здесь: Главная - Python - Основы Python - Python скрипт - игра угадай число.

Python скрипт - игра угадай число.

# файл guess_number.py
# импортируем модуль для работы со случайными числами
import random

# число попыток угадать
guesses_made = 0

# получаем имя пользователя из консольного ввода
name = input('Привет! Как тебя зовут?\n')

# получаем случайное число в диапазоне от 1 до 30
number = random.randint(1, 30)
print ('Отлично, {0}, я загадал число между 1 и 30. Сможешь угадать?'.format(name))

# пока пользователь не превысил число разрешенных попыток - 6
while guesses_made < 6:
    
    # получаем число от пользователя
    guess = int(input('Введи число: '))
    
    # увеличиваем счетчик числа попыток
    guesses_made += 1

    if guess < number:
        print ('Твое число меньше того, что я загадал. ')

    if guess > number:
        print ('Твое число больше загаданного мной.')

    if guess == number:
        break

if guess == number:
    print ('Ух ты, {0}! Ты угадал мое число, использовав {1} попыток!'.format(name, guesses_made))
else:
    print ('А вот и не угадал! Я загадал число {0}'.format(number))
    
    

Вызываем так:

C:/> python guess_number.py
  • Создано 30.04.2020 12:13:25
  • Михаил Русаков
Предыдущая статья Следующая статья

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:
    <a href="https://myrusakov.ru" target="_blank"><img src="https://myrusakov.ru/images/button.gif" alt="Как создать свой сайт" /></a>

    Она выглядит вот так:

  2. Текстовая ссылка:
    <a href="https://myrusakov.ru" target="_blank">Как создать свой сайт</a>

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):
    [URL="https://myrusakov. ru"]Как создать свой сайт[/URL]

Не работает код игры "Угадай число" для бота в ТГ Python pytelegrambotapi

Никак не могу написать код для игры в угадай число для бота, код пишу в отдельном файле(не главном), чтобы потом вызвать его функцией, вот код игры:

import random
import time


def random_guesses(message,bot):
# число попыток угадать
    guesses_made = 0
    guess = 0

# получаем имя пользователя из консольного ввода
    name = str(message.chat.first_name)

# получаем случайное число в диапазоне от 1 до 30
    number = random.randint(1, 30)
    bot.send_message(message.chat.id, '{0}, я загадал число между 1 и 30. Сможешь угадать?'.format(name))
    time.sleep(1)

# пока пользователь не превысил число разрешенных попыток - 6
    while guesses_made < 6:
        
    
        bot.send_message(message.chat.id, "Введи число")
        
        try:
            guess = int(message.text)
        except ValueError:
            bot.send_message(message.chat.id, "Неверный ввод. Введите число")

        
    # увеличиваем счетчик числа попыток
        guesses_made += 1

        if guess < number:
                bot.send_message(message.chat.id, 'Твое число меньше того, что я загадал.')

        elif guess > number:
            bot.send_message(message.chat.id, 'Твое число больше загаданного мной.')

    if guess == number:
        bot.send_message(message.chat.id, 'Ух ты, {0}! Ты угадал мое число, использовав {1} попыток!'.format(name, guesses_made))
    else:
        bot.send_message(message.chat.id, 'А вот и не угадал! Я загадал число {0}'.format(number))

Вызов функции идёт с главного файла кодом:

if message.text.lower() == "Угадай число":
    bot.send_message(message.chat.id, conf_games.random_guesses(message, bot))

Бот идёт по циклу не принимая сообщения, кажется надо как то добавить приём сообщений из главного файла в цикл, но не понимаю как это сделать. Когда пишу боту "Угадай число" игра запускается, но бот пишет вот это, я даже ответить не успеваю, он строчит без остановки: Screenshot-20200923-185528 В консоли вот это: Screenshot-20200923-214358 Помогите доработать что бы игра работала, заранее большое спасибо!

Угадай число

Ограничение времени                   1 секунда
Ограничение памяти 512Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt

Это интерактивная задача.

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

Программа жюри загадала число от 1 до n, цель программы участника — отгадать, задав не более чем за 30 вопросов. Для этого программа участника сообщает свои догадки программе жюри, а программа жюри отвечает, является ли загаданное число бóльшим, меньшим или равным сделанной догадке.

Протокол взаимодействия 

Сначала ваша программа должна прочитать из стандартного потока ввода число n. Затем протокол общения следующий: ваша программа выводит в стандартный поток вывода одну строку, содержащую число — свою догадку о загаданном числе.

После этого программа должна считать из стандартного потока ввода одно число: ответ программы жюри. Возможны следующие ответы:

  • «1» — загаданное число больше последней догадки;
  • «-1» — загаданное число меньше последней догадки;
  • «0» — последняя догадка верна. Считав 0, ваша программа должна завершиться.
Примечания

В данной задаче две подзадачи. Каждая оценивается в 50 баллов. Баллы за подзадачу начисляются только при прохождении всех тестов и предыдущих подзадач.

  1. 1 ≤ n ≤ 30
  2. 1 ≤ n ≤ 109
Пример

Для отправки решения задачи необходимо авторизоваться!

Создание игры на Питоне. Угадай число

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

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


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


Код игры «Угадай число»


import random
NumberToGuess=random.randint(1,100)
userGuess=-1

while userGuess!=NumberToGuess:
userGuess=int(input("Угадай число от 1 до 100"))
if userGuess > NumberToGuess:
print("Число должно быть меньше!")
elif userGuess print("Число должно быть больше!")
else:
print("Вы угадали, это число = " + str(NumberToGuess))
#Конец игры - выйти из цикла while
break

Давайте разберем, как это работает

Строки


import random
NumberToGuess = random.randint(1,100)

Генерируют случайное целое число от 1 до 100 и помещают его в переменную
NumberToGuess.

Конструкция


while userGuess!=NumberToGuess:

задает цикл с условием. Пока число пользователя не совпадёт с загаданным числом

Блок кода

   
if userGuess > NumberToGuess:
print("Число должно быть меньше!")
elif userGuess print("Число должно быть больше!")
else:

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

последняя строка

else:

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


Пример работы программы

Python 3.5.2 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
>
Угадай число от 1 до 100 60
Число должно быть меньше!
Угадай число от 1 до 100 50
Число должно быть меньше!
Угадай число от 1 до 100 40
Число должно быть меньше!
Угадай число от 1 до 100 30
Число должно быть меньше!
Угадай число от 1 до 100 20
Число должно быть меньше!
Угадай число от 1 до 100 10
Число должно быть больше!
Угадай число от 1 до 100 12
Вы угадали, это число = 12
>

Возможная доработка программы

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


Проверка времени реакции пользователя Как создать калькулятор на Питоне?

Угадай мой номер - The Game Gal

Что это такое : Простая математическая игра для двух игроков, чтобы просмотреть числовые предложения «больше / меньше» (должен ли чей-либо ребенок останавливаться каждый раз, когда они рисуют знак «больше / меньше», чтобы он мог повернуть его? в аллигатора?)

Лучшее для : маленький ребенок, изучающий математику, и старший брат или сестра или родитель

Что вам понадобится : таблица чисел для печати и мелок или чайник

Как играть : Начните с числовой таблицы на столе перед обоими игроками. (Таблицы для печати, которые я включил, имеют четыре версии, которые доходят до 100, 120, 150 и 200.) Игрок 1 (которого можно назвать Мамой) молча выбирает номер на таблице и говорит: «Угадай мой номер». Игрок 2 (имя которого может быть Бен) затем угадает любое число, говоря: «Это 25?» Допустим, у мамы число 56. Она говорила: «Больше 25». Затем Бен сможет использовать свой карандаш или маркер и вычеркнуть любое число на числовой таблице, он знает, что ответ - это не (поэтому 25 и все, что меньше 25).Затем Бен делает еще одно предположение. Если он говорит: «Это 73?» Мама говорит: «Меньше 73». Затем Бен должен вычеркнуть все числа 73 и выше. Игра продолжается так: Бен угадывает и приближается все ближе и ближе, пока, наконец, не угадает номер мамы. Затем Бен получает возможность думать о числе, а мама - угадывать.

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

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

Если вы хотите снова и снова использовать таблицу с числами для печати, ламинируйте ее и используйте маркер для сухого стирания. Удачной игры!

(Для вас, пожилые люди, играющие, мой муж рассказал мне о стратегии, называемой бинарным поиском, которая значительно увеличивает ваши шансы на победу, когда ваша очередь угадывать.Обычно, если вы играете до 100, вы сначала угадаете 50. Если вам сказали, что число меньше 50, угадайте 25. Если вам сказали, что число больше 25, угадайте 37. В основном продолжайте сокращать невыбранные числа пополам, и вы получите это быстрее. Только будьте осторожны, чтобы не подорвать уверенность молодых игроков, с которыми вы играете.) 😉

Прочие связанные игры и посты

Угадай мой номер 3-5 | Математические решения

Урок с третьеклассниками, четвертыми и пятыми классами

от Расти Брессера и Карен Хольцман

Угадай мой номер предлагает детям подумать о структуре системы счисления во время логической игры.Учащиеся пытаются угадать секретное число из заданного диапазона возможностей. Guess My Number также дает возможность усилить математические символы, такие как знаки «больше чем» и «меньше чем». Благодаря этому заданию учащиеся узнают о пользе числовых линий как инструментов для решения проблем. «Угадай, мой номер » фигурирует в «Мини-уроках для математической практики» Расти Брессера и Карена Хольцмана, 3–5 классы (Math Solutions Publications, 2006).

Когда пятиклассники Пэтти Старк устроились на своих местах, я подошел к доске и нарисовал рамку с вопросительным знаком внутри.

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

«Неужели сто?» - спросила Мартина.

«Да», - ответил я. «Это может быть любое число от одного до ста, в том числе от одного до ста. Вы можете угадать число, и я скажу вам, будет ли мое секретное число больше или меньше вашего предположения.”

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

"Как насчет пятидесяти?" - спросил Латойя.

«Секретное число меньше пятидесяти», - сказал я ей, записывая эту информацию на доске. Я также отметил 50 на числовой прямой стрелкой, показывая, что все числа от 50 и выше были слишком большими.

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

«Мне немного любопытно, Латойя, - сказал я. "Есть ли конкретная причина, по которой вы выбрали пятьдесят?"

«Ага», - ответил Латоя. «Я знал, что у вас число от одного до ста, поэтому я выбрал пятьдесят, потому что он посередине».

«Так как это предположение поможет вам?» Я толкнул.

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

Я кратко изложил стратегию Латойи со ссылками на числовую прямую.«Думаю, я понял», - сказал я классу. «Все возможные числа от одного до ста. Поэтому, если вы угадываете число прямо посередине, вы можете выяснить, в какой половине секретного числа, а затем вы можете просто выбросить вторую половину и не беспокоиться об этом ».

Я начал делать еще несколько предположений. Через минуту числовая строка выглядела так:

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

Что вы уже знаете о моем секретном номере?

Какое следующее предположение вы бы хотели сделать? Почему?

Через несколько минут я обратил внимание студентов. «Так может ли кто-нибудь сказать что-то, что вы знаете о моем секретном номере?» Я спросил.

- Больше сорока, - предложил Иларио.

«Сейчас от сорока до пятидесяти», - добавил Дэвид.

"Сейчас сороковые", - заявила Бренда.

«Значит, вы уже много знаете о секретном номере», - подтвердил я. «Имея всю эту информацию, какое число вы хотели бы угадать следующим? Если вы поднимаете руку, чтобы угадать число, вы также должны быть готовы объяснить, почему вы думаете, что это число является полезным предположением ».

Я позвонил в Дестини. «Сорок пять», - предложила она.

«Чем полезны сорок пять?» Я спросил.

«Потому что, - объяснил Дестини, - мы знаем, что секретное число находится в сороковых годах, а сорок пять - в середине сороковых.”

«Это похоже на идею Латойи, - вмешался Рейнальдо. - Вы можете избавиться от половины оставшихся чисел».

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

Я позволил студентам разговаривать друг с другом, добавляя новую информацию в числовую строку.Многие студенты хотели использовать ту же стратегию и выбрать число, которое находится на полпути между 40 и 45. Мы сделали небольшой обход, чтобы установить, что 42,5 было серединой между 40 и 45, но я объяснил, что в этой игре «Угадай мой номер » задействована вся только числа, поэтому им нужно было выбрать либо 42, либо 43.

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

«Это новая игра, в которую мы сегодня играем», - сказал я классу. «Частично учиться и пробовать новое - делать ошибки. Очень важно, чтобы каждый в классе чувствовал себя в достаточной безопасности, чтобы делиться своими идеями и иногда совершать ошибки. Вот как мы учимся. Если вы с кем-то не согласны или у вас другая идея, ничего страшного. Просто убедитесь, что вы говорите об этом так, чтобы никому не обидеться. Вы понимаете, о чем я говорю? " - спросила я у класса, глядя на каждого ученика.

«Да», - пробормотали студенты.

Я добавил предположение Кенни на доску и двинулся дальше.

"Как насчет сорока трех?" - предложила Лиза.

Я написал на доске 43 и обвел его.

«Да», - поздравил я. «Мой номер сорок три. Я впечатлен мышлением всех. Это могло быть любое из ста различных чисел, и вам потребовалось всего восемь угадываний, чтобы получить его. Это показывает, что вы использовали хорошее математическое мышление ».

Перед тем, как покинуть класс, я позвал пару учеников, чтобы они возглавили класс в следующем раунде «Угадай мой номер».

Расширение деятельности

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

Диаграмма 1–100 - еще один инструмент, который хорошо работает с Угадай мой номер . Скажите студентам, что секретное число находится где-то на таблице 1–100. Вычеркивайте числа с диаграммы по мере их удаления. Знакомство с таблицей 1–100 дает учащимся старших классов особое преимущество, когда дело доходит до мысленных вычислений и понимания нашей системы счисления.Когда ученики имеют в голове визуальную модель диаграммы, они могут легко прыгать, используя десятки. У них также есть полезная геометрическая модель (квадрат 10 на 10), чтобы понять, как числа связаны друг с другом. Игра «Угадай мой номер » с таблицей 1–100 дает учащимся дополнительное представление о таблице и подталкивает их к формулированию некоторых присущих ей числовых соотношений.


, представленное в Интернет-бюллетене по математическим решениям, весна 2007 г. , выпуск 25

Публикация по теме:
Minilessons for Math Practice, 3-5
by Jennifer M.Бэй-Уильямс и Шерри Л. Мартини

Глава 3: Угадай число

3
УГАДАЙТЕ НОМЕР

В этой главе вы собираетесь создать игру «Угадай число». Компьютер придумает секретное число от 1 до 20 и попросит пользователя угадать его. После каждого предположения компьютер сообщит пользователю, является ли число слишком большим или слишком низким. Пользователь выигрывает, если угадывает число за шесть попыток.

Это хорошая игра для программирования, потому что она охватывает многие концепции программирования в короткой программе. Вы узнаете, как преобразовывать значения в разные типы данных и когда это необходимо. Поскольку эта программа представляет собой игру, с этого момента мы будем называть пользователя player .

Пример запуска «Угадай число»

Вот как выглядит программа «Угадай число» для игрока при запуске. Действия игрока выделены жирным шрифтом.

Здравствуйте! Как тебя зовут?
Альберт
Хорошо, Альберт, я думаю о числе от 1 до 20.
Угадай.
10
Ваше предположение завышено.
Угадай.
2
Ваше предположение слишком занижено.
Угадай.
4
Молодец, Альберт! Вы угадали мой номер за 3 попытки!

Исходный код для «Угадай число»

Откройте новое окно редактора файлов, щелкнув Файл Новое окно . В появившемся пустом окне введите исходный код и сохраните его как guess.py . Затем запустите программу, нажав F5.

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

Если после ввода этого кода у вас возникнут ошибки, сравните набранный вами код с кодом книги с онлайн-инструментом сравнения по адресу https://www. nostarch.com/inventwithpython#diff .

guess.py

1. # Это игра «Угадай число».
2. import random
3.
4. guessesTaken = 0
5.
6. print ('Здравствуйте! Как вас зовут?')
7. myName = input ()
8.
9.number = random.randint (1, 20)
10. print ('Ну,' + myName + ', я думаю о числе от 1 до 20.')
11.
12. for guessesTaken in range (6) :
13. print ('Угадай.') # Четыре пробела перед print
14. guess = input ()
15. guess = int (угадать)
16.
17. if guess 18. print ('Ваше предположение слишком мало.') # Восемь пробелов перед "print"
19.
20. if guess> number:
21. print ('Ваше предположение слишком велико.')
22.
23. if guess == number:
24. break
25.
26. if guess == number:
27. guessesTaken = str (guessesTaken + 1)
28. print (' Хорошая работа, '+ myName +'! Вы угадали мой номер в '+
guessesTaken +' guesses! ')
29.
30. if guess! = number:
31. number = str (number)
32. print (' Нет. Число, о котором я думал, было «+ число +».)

Импорт случайного модуля

Давайте посмотрим на первые две строки этой программы:

1.# Это игра «Угадай число».
2. случайный импорт

Первая строка - это комментарий, который вы видели в главе 2. Помните, что Python игнорирует все, что находится после символа #. Комментарий здесь просто напоминает нам, что делает эта программа.

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

Хотя Python включает в себя множество встроенных функций, некоторые функции написаны в отдельных программах, называемых модулями . Вы можете использовать эти функции, импортируя их модули в свою программу с помощью оператора импорта.

Строка 2 импортирует модуль random, чтобы программа могла вызывать функцию randint (). Эта функция предложит игроку случайное число, которое он должен угадать.

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

Строка 4 создает новую переменную с именем guessesTaken:

.

4. guessesTaken = 0

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

6. print ('Здравствуйте! Как вас зовут?')
7. myName = input ()

Строки 6 и 7 аналогичны строкам в программе Hello World в главе 2. Программисты часто повторно используют код из других программ, чтобы сэкономить время.

Строка 6 - это вызов функции print (). Помните, что функция похожа на мини-программу внутри вашей программы. Когда ваша программа вызывает функцию, она запускает эту мини-программу. Код внутри print () отображает строковый аргумент, который вы ему передали, на экране.

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

Генерация случайных чисел с помощью функции random.randint ()

Теперь, когда ваши другие переменные настроены, вы можете использовать функцию случайного модуля, чтобы установить секретный номер компьютера:

9. число = random.randint (1, 20)

Строка 9 вызывает новую функцию с именем randint () и сохраняет возвращаемое значение в виде числа. Помните, что вызовы функций могут быть частью выражений, потому что они оценивают значение.

Функция randint () предоставляется модулем random, поэтому вы должны вызывать ее случайным образом. randint () (не забудьте точку!), чтобы сообщить Python, что функция randint () находится в модуле random.

randint () вернет случайное целое число между (включительно) двумя целочисленными аргументами, которые вы ему передаете. Строка 9 передает 1 и 20, разделенные запятыми, между круглыми скобками, которые следуют за именем функции. Случайное целое число, возвращаемое функцией randint (), сохраняется в переменной с именем number - это секретное число, которое игрок пытается угадать.

Вернитесь на мгновение в интерактивную оболочку и введите import random, чтобы импортировать модуль random.Затем введите random.randint (1, 20), чтобы увидеть, что оценивается при вызове функции. Он вернет целое число от 1 до 20. Повторите код еще раз, и вызов функции вернет другое целое число. Функция randint () каждый раз возвращает случайное целое число, точно так же, как бросание кубика каждый раз приводит к случайному числу. Например, введите в интерактивную оболочку следующее. Результаты, которые вы получите при вызове функции randint (), вероятно, будут другими (в конце концов, это случайность!).

>>> import random
>>> random.randint (1, 20)
12
>>> random.randint (1, 20)
18
>>> random.randint (1, 20)
3
>>> random.randint (1, 20)
18
>>> random.randint (1, 20)
7

Вы также можете попробовать разные диапазоны чисел, изменив аргументы. Например, введите random.randint (1, 4), чтобы получить только целые числа от 1 до 4 (включая 1 и 4). Или попробуйте random.randint (1000, 2000), чтобы получить целые числа от 1000 до 2000.

Введите этот код в интерактивную оболочку и посмотрите, какие числа вы получите:

>>> случайный.randint (1, 4)
3
>>> random.randint (1000, 2000)
1294

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

.

9. number = random.randint (1, 20)
10. print ('Ну,' + myName + ', я думаю о числе от 1 до 20.')

Попробуйте вместо этого изменить целочисленный диапазон на (1, 100):

9. number = random.randint (1, 100)
10. print ('Ну,' + myName + ', я думаю о числе от 1 до 100.')

Теперь компьютер будет думать о целом числе от 1 до 100 вместо 1 и 20. Изменение строки 9 изменит диапазон случайного числа, но не забудьте также изменить строку 10, чтобы игра сообщала игроку новый диапазон вместо Старый.

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

Встреча игрока

После того, как компьютер присвоит номеру случайное целое число, он приветствует игрока:

10.print ('Ну,' + myName + ', я думаю о числе от 1 до 20.')

В строке 10 print () приветствует игрока по имени и сообщает ему, что компьютер думает о случайном числе.

На первый взгляд может показаться, что в строке 10 более одного строкового аргумента, но внимательно изучите строку. Операторы + между тремя строками объединяют их в одну строку. И эта строка является аргументом, передаваемым функции print (). Если вы присмотритесь, вы увидите, что запятые находятся внутри кавычек и являются частью самих строк.

Заявления об управлении потоком

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

Использование циклов для повторения кода

Строка 12 - это оператор for, который указывает начало цикла for:

12.для предположенийВзято в диапазоне (6):

Циклы позволяют выполнять код снова и снова. Строка 12 повторит свой код шесть раз. Оператор for начинается с ключевого слова for, за которым следует новое имя переменной, ключевое слово in, вызов функции range (), которая указывает количество циклов, которые она должна выполнять, и двоеточие. Давайте рассмотрим несколько дополнительных концепций, чтобы вы могли работать с циклами.

Группировка с блоками

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

Программисты

Python обычно используют четыре дополнительных пробелов отступа для начала блока. Любая следующая строка с таким же отступом является частью блока. Блок заканчивается, когда есть строка кода с таким же отступом , что и до начала блока .Также могут быть блоки внутри других блоков. На рисунке 3-1 показана кодовая диаграмма с выделенными и пронумерованными блоками.

Рисунок 3-1: Пример блоков и их отступов. Серые точки обозначают пробелы.

На рис. 3-1 строка 12 не имеет отступов и не находится внутри какого-либо блока. Строка 13 имеет отступ в четыре пробела. Поскольку эта строка имеет больший отступ, чем предыдущая, здесь начинается новый блок. Каждая строка, следующая за этой с одинаковым или большим отступом, считается частью блока ➊.Если Python встречает другую строку с меньшим отступом, чем первая строка блока, блок закончился. Пустые строки игнорируются.

Строка 18 имеет отступ в восемь пробелов, начиная с блока ➋. Это блок внутри блока ➊. Но следующая строка, строка 20, имеет отступ всего в четыре пробела. Поскольку отступ уменьшился, вы знаете, что блок ➋ строки 18 закончился, а поскольку строка 20 имеет тот же отступ, что и строка 13, вы знаете, что он находится в блоке ➊.

Строка 21 снова увеличивает отступ до восьми пробелов, поэтому начался другой новый блок внутри блока: блок ➌.В строке 23 мы выходим из блока ➌, а в строке 24 мы вводим последний блок внутри блока, блок ➍. И блок ➊, и блок ➍ заканчиваются на строке 24.

Зацикливание с операторами

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

Введите в интерактивную оболочку следующее:

>>> for i in range (3):
print ('Hello! I установлен в', i)

Hello! i установлен на 0
Здравствуйте! i установлен на 1
Здравствуйте! i установлен на 2

Обратите внимание, что после того, как вы набрали i в диапазоне (3): и нажали ENTER , интерактивная оболочка не показала другое приглашение >>>, потому что ожидала, что вы наберете блок кода. Нажмите ENTER еще раз после последней инструкции, чтобы сообщить интерактивной оболочке, что вы закончили ввод блока кода.(Это применимо только тогда, когда вы работаете в интерактивной оболочке. При записи файлов .py и в редакторе файлов вам не нужно вставлять пустую строку.)

Давайте посмотрим на цикл for в строке 12 файла guess.py :

12. for guessesTaken in range (6):
13. print ('Сделай предположение.') # Четыре пробела перед словом print
14. guess = input ()
15. guess = int (guess)
16.
17. if guess 18. print ('Ваше предположение слишком занижено.') # Восемь пробелов перед "print"
19.
20. if guess> number:
21. print (' Ваше предположение слишком велико. ')
22.
23. if guess == number:
24 . Break
25.
26. if guess == number:

В «Угадай число» блок for начинается с оператора for в строке 12, а первая строка после блока for - это строка 26.

Оператор for всегда имеет двоеточие (:) после условия. Операторы, заканчивающиеся двоеточием, ожидают нового блока в следующей строке.Это показано на Рисунке 3-2.

Рисунок 3-2: Поток выполнения цикла для

На рис. 3-2 показано, как выполняется выполнение. Выполнение войдет в блок for в строке 13 и продолжит работу. Как только программа достигает конца блока for, вместо перехода к следующей строке выполнение возвращается к началу блока for в строке 13. Это происходит шесть раз из-за вызова функции range (6). в заявлении for. Каждый раз, когда выполнение проходит через цикл, это называется итерацией .

Представьте, что оператор for говорит: «Выполните код в следующем блоке определенное количество раз».

Как угадать игрока

В строках 13 и 14 игроку предлагается угадать секретное число и дать ему возможность ввести свое предположение:

13. print ('Угадай.') # Четыре пробела перед "print"
14. guess = input ()

Это число, которое вводит игрок, сохраняется в переменной с именем guess.

Преобразование значений с помощью функций int (), float () и str ()

Строка 15 вызывает новую функцию с именем int ():

15.угадать = int (угадать)

Функция int () принимает один аргумент и возвращает значение аргумента в виде целого числа.

Введите в интерактивную оболочку следующее, чтобы увидеть, как работает функция int ():

>>> интервал ('42 ')
42

Вызов int ('42 ') вернет целочисленное значение 42.

>>> 3 + int ('2')
5

Строка 3 + int ('2') показывает выражение, которое использует возвращаемое значение int () как часть выражения. Он оценивается как целочисленное значение 5:

.

Даже если вы можете передать строку в int (), вы не можете передать ей любую строку.Передача 'сорок два' в int () приведет к ошибке:

>>> int ('сорок два')
Traceback (последний вызов последний):
Файл «», строка 1, в
int ('сорок два')
ValueError: недопустимый литерал для int () с базой 10: 'сорок два'

Строка, передаваемая в int (), должна состоять из чисел.

В «Угадай число» мы получаем номер игрока с помощью функции input (). Помните, что функция input () всегда возвращает строку текста, введенного игроком.Если игрок вводит 5, функция input () вернет строковое значение '5', а не целочисленное значение 5. Но нам нужно будет сравнить номер игрока с целым числом позже, а Python не может использовать сравнение <и>. операторы для сравнения строки и целочисленного значения:

>>> 4 <'5'
Traceback (последний вызов последний):
Файл «», строка 1, в
4 <'5'
TypeError: неупорядочиваемые типы: int ()

Следовательно, нам нужно преобразовать строку в целое число:

14.guess = input ()
15. guess = int (угадать)

В строке 14 мы присваиваем переменной guess строковое значение любого числа, которое набрал игрок. Строка 15 заменяет строковое значение в guess целочисленным значением, возвращаемым функцией int (). Код int (guess) возвращает новое целочисленное значение на основе предоставленной строки, а guess = назначает это новое значение для угадывания. Это позволяет последующему коду программы сравнивать, является ли предположение больше, меньше или равно секретному числу в числовой переменной.

Функции float () и str () аналогичным образом возвращают float и строковые версии переданных им аргументов. Введите в интерактивную оболочку следующее:

>>> float ('42 ')
42.0
>>> float (42)
42.0

Когда строка '42' или целое число 42 передается в float (), возвращается значение с плавающей запятой 42.0.

Теперь попробуйте использовать функцию str ():

>>> str (42)
'42'
>>> str (42.0)
'42.0 '

Когда целое число 42 передается в str (), возвращается строка '42'. Но когда в str () передается число с плавающей запятой 42.0, возвращается строка '42 .0 '.

Используя функции int (), float () и str (), вы можете взять значение одного типа данных и вернуть его как значение другого типа данных.

Логический тип данных

Каждое значение в Python принадлежит одному типу данных. Типы данных, которые были представлены до сих пор, - это целые числа, числа с плавающей запятой, строки, а теперь и логические значения.Тип данных Boolean имеет только два значения: True или False. Логические значения необходимо вводить с заглавными буквами T или F, а остальную часть имени значения - в нижнем регистре.

Логические значения могут храниться в переменных так же, как и другие типы данных:

>>> спам = Истина
>>> яйца = Ложь

В этом примере вы устанавливаете для спама значение True, а для яиц - значение False. Не забудьте сделать первую букву заглавной.

Вы будете использовать логические значения (называемые для краткости bools ) с операторами сравнения для формирования условий.Сначала мы рассмотрим операторы сравнения, а затем рассмотрим условия.

Операторы сравнения

Операторы сравнения сравнивают два значения и вычисляют логическое значение True или False. В таблице 3-1 перечислены все операторы сравнения.

Таблица 3-1: Операторы сравнения

Оператор

Эксплуатация

<

Менее

>

Больше

<=

Меньше или равно

> =

Больше или равно

==

Равно

! =

Не равно

Вы уже читали об математических операторах +, -, * и /.Как и любой другой оператор, операторы сравнения объединяются со значениями для формирования таких выражений, как guessesTaken <6.

В строке 17 программы «Угадай число» используется оператор сравнения «Меньше»:

17. если угадать <число:

Мы обсудим операторы if более подробно в ближайшее время; а пока давайте просто посмотрим на выражение, которое следует за ключевым словом if (часть guess

Проверка истинности или ложности с условиями

Условие - это выражение, которое объединяет два значения с оператором сравнения (например, <или>) и вычисляет логическое значение. Условие - это просто другое имя для выражения, которое оценивается как Истина или Ложь. Одно из мест, где мы используем условия, - это операторы if.

Например, условие guess <число в строке 17 спрашивает: «Является ли значение, сохраненное в предположении, меньше, чем значение, сохраненное в числе?» Если да, то условие оценивается как Истина.В противном случае условие оценивается как False.

Предположим, что guess хранит целое число 10, а number хранит целое число 16. Поскольку 10 меньше 16, это условие оценивается как логическое значение True. Оценка будет выглядеть так:

Эксперименты с логическими значениями, операторами сравнения и условиями

Введите следующие выражения в интерактивной оболочке, чтобы увидеть их логические результаты:

>>> 0 <6
Верно
>>> 6 <0
Ложно

Условие 0 <6 возвращает логическое значение True, поскольку число 0 меньше числа 6.Но поскольку 6 не меньше 0, условие 6 <0 оценивается как False.

Обратите внимание, что 10 <10 оценивается как False, потому что число 10 не меньше числа 10:

>>> 10 <10
Ложь

Значения такие же. Если бы Алиса была того же роста, что и Боб, вы бы не сказали, что Алиса выше Боба или что Алиса ниже Боба. Оба эти утверждения были бы ложными.

Теперь введите эти выражения в интерактивную оболочку:

>>> 10 == 10
Истина
>>> 10 == 11
Ложь
>>> 11 == 10
Ложь
>>> 10! = 10
Ложь

В этом примере 10 равно 10, поэтому 10 == 10 оценивается как True.Но 10 не равно 11, поэтому 10 == 11 ложно. Даже если порядок перевернут, 11 все равно не равно 10, поэтому 11 == 10 будет False. Наконец, 10 равно 10, поэтому 10! = 10 ложно.

Вы также можете оценивать строковые выражения с помощью операторов сравнения:

>>> 'Hello' == 'Hello'
True
>>> 'Goodbye'! = 'Hello'
True
>>> 'Hello' == 'HELLO'
False

«Привет» равно «Привет», поэтому «Привет» == «Привет» имеет значение Истина. «Goodbye» не равно «Hello», поэтому «Goodbye»! = «Hello» также имеет значение True.

Обратите внимание, что последняя строка оценивается как False. Прописные и строчные буквы в Python не совпадают, поэтому «Hello» не равно «HELLO».

Строковые и целочисленные значения никогда не будут равны друг другу. Например, введите в интерактивную оболочку следующее:

>>> 42 == 'Hello'
False
>>> 42! = '42'
True

В первом примере 42 - это целое число, а «Hello» - это строка, поэтому значения не равны, и выражение оценивается как False.Во втором примере строка '42' по-прежнему не является целым числом, поэтому выражение «целое число 42 не равно строке '42'» оценивается как True.

Разница между = и ==

Будьте осторожны, чтобы не перепутать оператор присваивания = и оператор сравнения ==. Знак равенства = используется в операторах присваивания для хранения значения переменной, тогда как двойной знак равенства == используется в выражениях, чтобы проверить, равны ли два значения.Легко случайно использовать один, когда вы собираетесь использовать другой.

Может быть полезно помнить, что и оператор сравнения, равный, ==, и оператор сравнения, не равен,! =, Имеют два символа.

если Выписки

Строка 17 - это оператор if:

17. if guess 18. print ('Ваше предположение слишком мало.') # Восемь пробелов перед "print"

Блок кода, следующий за оператором if, будет запущен, если условие оператора if оценивается как True.Если условие ложно, код в блоке if пропускается. Используя операторы if, вы можете заставить программу запускать определенный код только тогда, когда вы этого хотите.

Строка 17 проверяет, меньше ли предположение игрока секретного числа компьютера. Если это так, то выполнение перемещается в блок if в строке 18 и выводит сообщение, сообщающее игроку, что его предположение было слишком низким.

Строка 20 проверяет, превышает ли предположение игрока секретное число:

.

20. Если угадать> номер:
21.print ('Ваше предположение слишком велико.')

Если это условие истинно, то вызов функции print () сообщает игроку, что его предположение слишком велико.

Ранний выход из петель с разрывом Заявление

Оператор if в строке 23 проверяет, совпадает ли угаданное игроком число секретному числу. Если это так, программа запускает оператор break в строке 24:

.

23. if guess == number:
24. break

Оператор break сообщает исполнению немедленно перейти из блока for к первой строке после конца блока for.Оператор break находится только внутри циклов, например в блоке for.

Проверка того, выиграл ли игрок

Блок for заканчивается на следующей строке кода без отступа, то есть на строке 26:

26. если угадаешь == число:

Выполнение оставляет блок for либо потому, что он зацикливался шесть раз (когда у игрока заканчиваются догадки), либо потому, что оператор break в строке 24 был выполнен (когда игрок угадывает число правильно).

Строка 26 проверяет, правильно ли угадал игрок.Если это так, выполнение переходит в блок if в строке 27:

.

27. guessesTaken = str (guessesTaken + 1)
28. print ('Хорошая работа,' + myName + '! Вы угадали мой номер в' +
guessesTaken + 'guesses!')

Строки 27 и 28 выполняются, только если условие в операторе if в строке 26 истинно (то есть, если игрок правильно угадал номер компьютера).

Строка 27 вызывает функцию str (), которая возвращает строковую форму guessesTaken + 1 (поскольку функция диапазона идет от 0 до 5 вместо 1 до 6).Строка 28 объединяет строки, чтобы сообщить игроку, что он выиграл, и сколько для этого потребовалось предположений. Только строковые значения могут объединяться с другими строками. Вот почему в строке 27 пришлось изменить guessesTaken + 1 на строковую форму. В противном случае попытка объединить строку с целым числом приведет к тому, что Python отобразит ошибку.

Проверка, проиграл ли игрок

Если у игрока заканчиваются догадки, выполнение переходит к этой строке кода:

30. если угадайте! = Число:

Строка 30 использует оператор сравнения не равно! =, Чтобы проверить, не совпадает ли последнее предположение игрока с секретным числом.Если это условие оценивается как True, выполнение переходит в блок if в строке 31.

Строки 31 и 32 находятся внутри блока if, выполняются, только если условие в строке 30 истинно:

31. number = str (number)
32. print ('Нет. Число, о котором я думал, было' + number + '.')

В этом блоке программа сообщает игроку, какое было секретное число. Это требует объединения строк, но number хранит целочисленное значение. Строка 31 заменяет число строкой, чтобы его можно было объединить с 'Нет.Число, о котором я думал, было «и». строки в строке 32.

На этом этапе выполнение достигает конца кода, и программа завершается. Поздравляю! Вы только что запрограммировали свою первую настоящую игру!

Вы можете регулировать сложность игры, изменяя количество предположений, которые получает игрок. Чтобы дать игроку только четыре предположения, измените код в строке 12:

12. Для догадок Взято в диапазоне (4):

Передавая 4 в range (), вы гарантируете, что код внутри цикла будет выполняться только четыре раза вместо шести.Это значительно усложняет игру. Чтобы упростить игру, передайте в вызов функции range () целое число большего размера. Это приведет к тому, что цикл будет выполнен еще несколько раз, раз и примет еще предположений от игрока.

Сводка

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

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

Есть несколько видов инструкций:

Выражения - это значения, связанные операторами. Все выражения оцениваются до одного значения. Например, 2 + 2 оценивается как 4 или 'Hello' + '' + 'World' оценивается как 'Hello World'.Когда выражения находятся рядом с ключевыми словами if и for, вы также можете называть их условиями .

Операторы присваивания хранят значения в переменных, чтобы вы могли запомнить значения позже в программе.

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

Функции print () и input () отображают текст на экране и получают текст с клавиатуры. Инструкции, которые имеют дело с входом и выходом программы, называются I / O (произносится как eye oh ).

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

Угадай число - Computer Science Wiki

из Вики по информатике

Перейти к навигации Перейти к поиску Эта проблема предназначена для вас, чтобы работать через [1]

Это набор задач. Некоторые из них просты, другие намного сложнее. Целью этих наборов задач является ПОМОЩЬ ВАМ РАЗУМАТЬ НАСЫЩЕННЫЕ ПРОБЛЕМЫ. Решение находится внизу этой страницы, но, пожалуйста, не смотрите на него, пока не попробуете (и потерпите неудачу) хотя бы три или четыре раза.

Что это за проблема, которую пытается сделать [править]

Здесь вы должны думать об условных выражениях и вычислительном мышлении. Вы также собираетесь увеличивать переменные.

Проблема [править]

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

  1. Ваша программа должна сгенерировать случайное число от 0 до 100 и присвоить это случайное число переменной.
  2. Ваша программа должна попросить игрока угадать число
  3. Ваша программа должна сравнивать догадку игрока и секретное число. Программа должна сообщить игроку, если его предположение больше или меньше секретного числа
  4. .
  5. Ваша программа должна сообщить игроку, выиграл ли он
  6. Ваша программа должна спросить игрока, хочет ли он снова сыграть

Некоторый код Python, чтобы вы начали [править]

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

 1 случайный импорт
 2 secret_number = ...
 3 угадать = 0
 4 игры = 1
 5
 6 print ("Это предположение:" + str (предположение))
 7 print ("Это игра:" + str (игра))
 8 player_guess = input («Угадай, пожалуйста:»)
 9 угадай = угадай +1
10
11 ...
12
13 play_again = input («Хочешь сыграть снова?»)
14, если play_again == "y" или play_again == "Y" или play_again == "yes":
15 угадай = 0
16 игра = игра + 1
17 перерыв
18 ....
 

Продолжить [править]

  1. добавить при условии, что у игроков есть только определенное количество ходов, чтобы выиграть
  2. добавить уровень сложности; легкий, средний и экспертный.Если у игрока легкий, у него 8 попыток, средний, у него только 4 попытки, и эксперт, только 2 попытки !!
  3. вы можете сказать игроку, будет ли его предположение «от небольшого к высокому или от небольшого к низкому», или вы можете сказать: «ваше предположение - от высокого до низкого»

Как вас будут оценивать [править]

Каждый набор задач - это формирующее задание. Нажмите здесь, чтобы узнать, как вас будут оценивать

Источники [править]

Возможное решение [править]

Щелкните ссылку «развернуть», чтобы увидеть одно из возможных решений, но НЕ до того, как вы попробуете и потерпите неудачу!

 # Закончено 10.04.18
# Может обнаруживать ошибки и позволять пользователям снова вводить данные
# Автор: Филип
случайный импорт
secret_number = случайный.рандинт (1, 100)
counter = 0

в то время как True:
    пытаться:
        Уровень сложности = int (input ("Какой уровень сложности вы хотите (1-самый простой 5-невозможный):"))
        если уровень сложности <1 или уровень сложности> 5:
            поднять NameError ()
    кроме ValueError:
        print ("ОШИБКА: можно вводить только числа!")
        Продолжать
    кроме NameError:
        print («ОШИБКА: введите число от 1 до 5.»)
        Продолжать
    еще:
        если уровень сложности == 1:
            turn_left = 15
        elif Уровень сложности == 2:
            turn_left = 12
        elif Уровень сложности == 3:
            turn_left = 10
        уровень сложности elif == 4:
            turn_left = 7
        уровень сложности elif == 5:
            turn_left = 5
        
        в то время как счетчик  0:
                    если user_guess> secret_number:
                        счетчик + = 1
                        если user_guess-secret_number <4:
                            print («УГАДАЙТЕ НЕМНОГО НИЖНЕЕ»)
                        еще:
                            print ("УГАДАЙТЕ НИЖНИЙ")
                    elif user_guess  = поворотов влево:
            print («ИГРА ЗАВЕРШЕНА: у вас закончились очереди»)
    перерыв
 

Кодирование из визуального текста в текст Урок 8 - Угадай число

Вызов

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

1. Разработайте и запрограммируйте программу для получения кумулятивного итога по мере ввода цен, пока пользователь не решит остановиться. Посмотреть образец вывод ниже:

Добро пожаловать! Введите вашу первую цену:  17 
На данный момент общая сумма составляет 17 долларов.
Введите другую цену или введите СТОП для завершения:  5 
На данный момент общая сумма составляет 22 доллара.
Введите другую цену или введите СТОП для завершения:  12 
На данный момент общая сумма составляет 34 доллара.
Введите другую цену или введите СТОП для завершения:  СТОП 
Спасибо за использование этой программы.

а. Сначала подготовьте псевдокод.

Образец раствора
НАЧИНАТЬ
      всего  ← 0
    Отображение "Добро пожаловать!" Введите вашу первую цену: ’
      цена  ← ввод пользователя
    Повторить, пока  цена  не равна «СТОП»
          всего  всего  +  цена 
        Отобразите "На данный момент общая сумма составляет $", всего  , "."
        Отобразите "Введите другую цену или нажмите СТОП, чтобы закончить:"
          цена  ← ввод пользователя
    Конец повтора
    Дисплей «Спасибо за использование этой программы.’
КОНЕЦ
 

г. Запрограммируйте программу на Python или JavaScript.

2. Запрограммируйте программу замены гласных, следуя видео ниже.

3. (НЕОБЯЗАТЕЛЬНО) Попросите своих учеников написать игру выше / ниже, в которой роли меняются местами. Человек-игрок думает о секрете номер, и компьютер должен угадать ответ.

Вот несколько подсказок, которые помогут студентам разработать свой псевдокод:

  • Какой ввод и вывод потребуется? Как пользователь скажет компьютеру идти выше или ниже? (Это полезная программа для дизайн как класс, особенно для таких устройств, как BBC micro: bit с ограниченными входами, доступными пользователю.)
  • Как компьютер наберет правильный номер? См. Наше обсуждение двоичного поиска в начале этого урок. Обратите внимание: после расчета вам понадобится способ округления до ближайшего целого числа. Для этого вы можете использовать команда int () в Python и команда parseInt () в JavaScript.
  • Что нужно запомнить компьютеру, чтобы получить правильное число? Они должны стать переменными в программа.

Guess The Number by krunghcrow

Этот плагин добавляет событие, в котором игроки должны попытаться угадать случайно сгенерированное число между двумя заданными числами. Победитель получает приз (в настоящее время Battlepass, Economics или ServerRewards.)

Зависимости

  • Economics (обязательно)
  • Server Rewards (необязательно)
  • Battlepass (необязательно)

Commands

  • / gtn start - запуск основного события с номерами по умолчанию, установленными в файле конфигурации
  • / gtn start - запуск события с установленными номерами
  • / gtn end - Завершить текущее событие
  • / guess - Отправить предположение

Консольные команды

  • gtn start - Запустить базовое событие с номерами по умолчанию, установленными в файле конфигурации
  • gtn start - Начать событие с заданными числами
  • gtn end - Завершить текущее событие

Разрешения

  • guessth перечислить.введите - игроки с этим разрешением могут участвовать в событиях
  • guessthenumber.admin - игроки с этим разрешением могут использовать команды / gtn (функции администрирования)

Конфигурация

  {
  "Настройки объявления": {
    «Показать все попытки догадаться в чате»: false
  },
  "Настройки события": {
    «Время повторения автоматического события»: 600,
    «Автоматические события включены»: false,
    «Макс. Количество по умолчанию»: 100,
    «Мин. Числа по умолчанию»: 1,
    «Продолжительность мероприятия»: 30,
    «Макс. Попыток»: 1
  },
  "Интернет-настройки": {
    «Минимальное количество игроков, которые должны быть онлайн для начала игры»: «1»
  },
  "Reward Battlepass Settings": {
    «Сумма 1-й валюты (убытка)»: 10,
    «Сумма 1-й валюты (выигрыша)»: 20,
    «Сумма 2-й валюты (убытка)»: 10,
    «Сумма 2-й валюты (выигрыша)»: 20,
    «Использовать первую валюту Battlepass»: false,
    «Использовать вторую валюту Battlepass»: false,
    «Использовать Battlepass при потере»: false
  },
  "Настройки экономики вознаграждения": {
    «Сумма (убыток)»: 10,
    «Сумма (выигрыш)»: 20,
    «Экономика использования»: верно,
    «Используйте экономику на убытках»: верно
  },
  "Reward ServerRewards Settings": {
    «Сумма (убыток)»: 10,
    «Сумма (выигрыш)»: 20,
    "Use ServerRewards": false,
    «Использовать ServerRewards при проигрыше»: false
  }
}
  

Локализация

  {
  "Нет разрешения": "Вы не можете использовать эту команду!",
  «Событие уже активно»: «В данный момент уже есть активное событие!»,
  "Событие началось": "Событие со случайным числом началось, правильно угадывай случайное число, чтобы выиграть приз! \ NИспользуйте / угадывай <число> для входа",
  «Справочное сообщение»: « / gtn start  (будет использоваться значение min / max по умолчанию, заданное в конфигурации)»,
  "Help Message1": " / gtn start    (позволяет вам устанавливать собственные минимальные / максимальные числа)",
  "Help Message2": " / gtn end  (завершит текущее событие)",
  "No Event": "Активных текущих событий нет",
  "Max Tries": "Вы уже угадали максимальное количество раз",
  "Event Win": "{0} выиграл мероприятие! ​​(Правильное число: {1})",
  «Battlepass Reward1»: «За победу вы получаете вознаграждение (BP1):»,
  "Battlepass loss Reward1": "Вы получили неправильный ответ (BP1):",
  «Battlepass Reward2»: «За победу вы получаете вознаграждение (BP2):»,
  "Battlepass loss Reward2": "Вы получили неправильный ответ (BP2):",
  «Экономическое вознаграждение»: «За победу вы получаете вознаграждение в долларах»,
  «Вознаграждение за потерю экономики»: «За неправильный ответ вы получите $»,
  «ServerRewards Reward»: «За победу вы получаете RP»,
  "Вознаграждение за потерю ServerRewards": "Неверный ответ, вы получаете RP",
  "Wrong Number": "Вы угадали неправильное число \ nУгады, оставшиеся в этом раунде:",
  "/ guess Invalid Syntax": "Неверный синтаксис! / guess ",
  "Событие истекло": "Время события истекло, и никто не угадал число! \ NУгаданное число было:",
  "Invalid Guess Entry": "Вы ввели неверное предположение! Пожалуйста, укажите только цифры",
  «Событие создано»: «Событие успешно создано, выигрышный номер:»,
  «Недопустимый синтаксис консоли GTN»: «Недопустимый синтаксис! Gtn <начало / конец> <минимальное число> <максимальное количество>»
}
  

Credits

  • Dora , оригинальный автор этого плагина
  • Плагин запрошен Фрэнком Костелло
  • redBDGR , предыдущим разработчиком этого плагина до v2.0,2

Урок 6 - Угадай число

Упражнение: Создайте игру «угадай числа», в которой компьютер выбирает случайное число от 1 до 10, а пользователь игры продолжает угадывать это число. Если пользователь угадывает число за 5 или менее, он выигрывает. В противном случае он проиграет.

Шаги:

- Отображение заголовка и простых инструкций на экране

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

- Создайте переменную с именем The Number и присвойте ей случайное число от 1 до 10. Это число будет скрыто от пользователя игры, но пока для целей отладки отобразите его на экране, установив флажок рядом к имени переменной в блоках данных.

- Используйте блок зондирования / запроса, чтобы предложить пользователю угадать число и принять его ввод. Когда пользователь вводит свое предположение, оно сохраняется в переменной с именем answer. Оберните это в блок Forever, поскольку мы хотим, чтобы пользователь мог угадывать более одного раза.

- Сравните значение, хранящееся в «ответе», со значением, хранящимся в переменной под названием «Число». Проверьте 3 возможных условия: правильное, слишком высокое, слишком низкое (с использованием блоков if / else). Отображать разные сообщения в зависимости от того, какое условие выполняется.


- Протестируйте свою программу. Как только он заработает правильно, продолжайте.

- Двоичный поиск: в информатике двоичный поиск или поиск с половинным интервалом находит позицию элемента в отсортированном списке. В нашей игре отсортированный список: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10.

Определение: «Алгоритм двоичного поиска начинается со сравнения целевого значения со значением среднего элемента отсортированного массива. Если целевое значение равно значению среднего элемента, то позиция возвращается и поиск завершается. Если целевое значение меньше значения среднего элемента, то поиск продолжается в нижней половине массива; или если целевое значение больше, чем значение среднего элемента, поиск продолжается в верхней половине массива.Этот процесс продолжается, удаляя половину элементов и сравнивая целевое значение со значением среднего элемента остальных элементов - до тех пор, пока целевое значение не будет найдено »

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

Скажем, сгенерированное компьютером число - 4.

  1. Пользователь угадает 5, потому что это находится на полпути между 1 и 10
  2. Компьютер отвечает: Сильно. Угадайте еще раз!
  3. пользователь угадывает 3, потому что это среднее значение между 1 и 5
  4. Компьютер отвечает: слишком низкий.Угадай еще раз!
  5. Теперь пользователь знает, что это число от 3 до 5, поэтому он угадает 4 и выигрывает.

- Во второй версии вашей программы добавьте ограничение в 5 предположений. Добавьте новую переменную для максимального количества допустимых предположений. Когда угадывание закончится, отобразите сообщение: «Вы проиграли. Число было _ (здесь отображается случайное число, выбранное компьютером в начале игры). Щелкните зеленый флаг, чтобы играть снова».

Совет: соедините (склейте) строку «Вы проиграли.Число было «и значение числа». Используйте блок «Присоединиться».

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

Протестируйте свою программу. Убедитесь, что она работает в следующих тестовых случаях:

  • Тест 1 Когда пользователь угадывает число за 5 или менее попыток, пользователь выигрывает.
  • Тест 1.1 Появляется сообщение, информирующее пользователя о том, что он выиграл.
  • Тест 1.2 Появляется сообщение, информирующее пользователя о том, сколько догадок ему потребовалось, чтобы правильно угадать
  • Тест 2 Когда пользователь пытался угадать 5 раз, но не получил числа, программа НЕ должна разрешать пользователю для ввода дополнительных предположений
  • Тест 2.
Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

© 2019 Штирлиц Сеть печатных салонов в Перми

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