alex925
Фев. 8, 2015 15:24:21
unnamed_xd
Раз у тебя такие проблемы, то тебе нужно почитать про алгоритмизацию + попробуй строить блок-схемы перед тем как пишешь код. То есть, делай как учат в (школах, техах, универах), сначала рисуешь блок схему и продумываешь, что тебе надо сделать, а потом уже по этой блок-схеме пишешь код.
В общем учись приводить свои мысли в порядок.
unnamed_xd
Фев. 9, 2015 08:38:44
alex925
Какие есть действительно хорошие книги про алгоритмизацию? Я сейчас пробую строить не блок схемы, а как написано в книге, которую читаю: сначала написать “псевдокод”, то есть выстроить и описать последовательность действий программы человеческим языком, грубо говоря создать план последовательностей.
py.user.next
Фев. 9, 2015 09:14:07
unnamed_xd
сначала написать “псевдокод”
Псевдокод пишется по блок-схеме. Блок-схема строится по словесному описанию. Смысл в том, чтобы на каждом шаге иметь возможность оптимизировать алгоритм до его реализации.
unnamed_xd
Фев. 9, 2015 10:00:23
Сейчас у меня проблема в том, что тяжело читать то, что написал не я. Вот в книге дается пример игры “крестики нолики” и нужно её модифицировать, вроде бы и расписывается что да как работает, а я смотрю на код и понять ничего не могу. Смотрю на функции по отдельности, разбираю их, в итоге понимаю какая функция, что делает. А потом смотрю на общую функцию которая задает последовательность вызова функции и в целом работу программы и понять не могу. То есть не могу сформировать в голове общей картинки происходящего. В общем нужно больше практики и почаще смотреть и разбирать чужие работы.
alekscooper
Фев. 9, 2015 16:55:13
unnamed_xd
То есть не могу сформировать в голове общей картинки происходящего.
С карандашом надо посидеть

Это норм, я думаю.
unnamed_xd
Фев. 9, 2015 17:17:35
alekscooper
Как раз с таким подходом сейчас и занимаюсь.
z00t
Фев. 11, 2015 18:46:44
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
Фев. 11, 2015 20:24:13
z00tprint("А я попытаюсь угадать его за наименьшее число попыток.\n")
the_number = random.randint(x, y)
противоречат друг другу
z00t
Фев. 11, 2015 20:28:03
terabayt
противоречат друг другу
Согласен.
Но просто хотелось создать иллюзию игры с человеком. Некий элемент удачи, так сказать.
terabayt
Фев. 11, 2015 21:36:34
z00t
Но просто хотелось создать иллюзию игры с человеком.
ну эт я понял ))
z00t
print(“\nАй да компьютер! Ай да сукин сын!”)