Найти - Пользователи
Полная версия: Угадай число. Самый новичок.
Начало » Python для новичков » Угадай число. Самый новичок.
1 2 3 4
alex925
unnamed_xd
Раз у тебя такие проблемы, то тебе нужно почитать про алгоритмизацию + попробуй строить блок-схемы перед тем как пишешь код. То есть, делай как учат в (школах, техах, универах), сначала рисуешь блок схему и продумываешь, что тебе надо сделать, а потом уже по этой блок-схеме пишешь код.
В общем учись приводить свои мысли в порядок.
unnamed_xd
alex925
Какие есть действительно хорошие книги про алгоритмизацию? Я сейчас пробую строить не блок схемы, а как написано в книге, которую читаю: сначала написать “псевдокод”, то есть выстроить и описать последовательность действий программы человеческим языком, грубо говоря создать план последовательностей.
py.user.next
unnamed_xd
сначала написать “псевдокод”
Псевдокод пишется по блок-схеме. Блок-схема строится по словесному описанию. Смысл в том, чтобы на каждом шаге иметь возможность оптимизировать алгоритм до его реализации.
unnamed_xd
Сейчас у меня проблема в том, что тяжело читать то, что написал не я. Вот в книге дается пример игры “крестики нолики” и нужно её модифицировать, вроде бы и расписывается что да как работает, а я смотрю на код и понять ничего не могу. Смотрю на функции по отдельности, разбираю их, в итоге понимаю какая функция, что делает. А потом смотрю на общую функцию которая задает последовательность вызова функции и в целом работу программы и понять не могу. То есть не могу сформировать в голове общей картинки происходящего. В общем нужно больше практики и почаще смотреть и разбирать чужие работы.
alekscooper
unnamed_xd
То есть не могу сформировать в голове общей картинки происходящего.

С карандашом надо посидеть Это норм, я думаю.
unnamed_xd
alekscooper
Как раз с таким подходом сейчас и занимаюсь.
z00t
unnamed_xd
Вот, как получилось у меня

Я сделал так. Строковый метод lower() добавил уже позже.

import random  
# начальные значения
x = 1
y = 100
the_number = random.randint(x, y)
tries = 1
print("Привет! Давай поиграем в игру.")
print("\nТы загадываешь натуральное число из диапозона от 1 до 100.")
print("А я попытаюсь угадать его за наименьшее число попыток.\n")
input("Готов?")
print("\nИтак, ты загадал число", the_number)
guess = input("Я угадал? (Да/Меньше/Больше): ").lower()
# цикл отгадывания
while guess != "да":
    if guess == "меньше":
            y = the_number-1
            the_number = random.randint(x, y)
            print("\nВозможно, ты загадал число", the_number)
            guess = input("Я угадал? (Да/Меньше/Больше): ").lower()
            tries += 1
    elif guess == "больше":
            x = the_number+1
            the_number = random.randint(x, y)
            print("\nИли, ты загадал число", the_number)
            guess = input("Я угадал? (Да/Меньше/Больше): ").lower()
            tries += 1
    else:
          print("Ну не хочешь играть, как хочешь. Пока!")
          break
if guess == "да":
    print("\nАй да компьютер! Ай да сукин сын!")
    print("Угадал число и всего лишь за", tries, "попыток")
input("\n\nНажмите Enter, чтобы выйти.")
terabayt
z00t
print("А я попытаюсь угадать его за наименьшее число попыток.\n")
the_number = random.randint(x, y)
противоречат друг другу
z00t
terabayt
противоречат друг другу
Согласен.
Но просто хотелось создать иллюзию игры с человеком. Некий элемент удачи, так сказать.
terabayt
z00t
Но просто хотелось создать иллюзию игры с человеком.
ну эт я понял ))
z00t
print(“\nАй да компьютер! Ай да сукин сын!”)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB