Охота на Wumpus была бы фантастической. Это относительно простая игра, но большинство примеров - это старый процедурный код на бейсике. Вы можете начать с нуля и написать OO-версию на C ++.
Игра жизни Конвея - еще одна хорошая игра, так как она не требует взаимодействия с пользователем. Я написал 3D-версию в начале своей карьеры и нашел ее полезной. И очень интересно наблюдать: -)
< в сторону >
Я действительно скучаю по старым временам, когда в компьютерных журналах были списки программ на заднем плане, которые вы могли напечатать самостоятельно. У них были игры, утилиты, что угодно. Я так много узнал, просто копируя то, что написали другие.
& Л; / & в стороне триазола
Согласно документы , gc.get_referrers (thatobject)
сообщит вам , почему объект все еще жив (сделайте это сразу после gc.collect ()
, чтобы убедиться, что нежелательная «живость» будет постоянной). После этого это как-то черное искусство ;-). Вы'
del
Или None
только ваши друзья
>>> a = "Hello"
>>> a = None
Or
>>> del a
Это зависит от того, на чем работает ваш Python. Вот хорошая статья , объясняющая подробности
Цитата:
В текущих выпусках CPython каждое новое присвоение x внутри цикла освобождает ранее выделенный ресурс. При использовании GC это не гарантируется. Если вы хотите написать код, который будет работать с любой реализацией Python, вы должны явно закрыть ресурс; это будет работать независимо от GC:
for name in big_list:
x = Resource()
do something with x
x.close()
Если GC отказывается уничтожить его, это потому, что у вас где-то есть ссылка на него. Избавьтесь от ссылки, и она (в конце концов) уйдет. Например:
myRef = None
Имейте в виду, что сборщик мусора не может обязательно уничтожить ваш объект, если это не потребуется.
Если ваш объект удерживает ресурсы, не находящиеся под управлением Python (например, некоторые уловки с C код, вызываемый из Python), объект должен предоставлять вызов освобождения ресурсов, чтобы вы могли сделать это, когда захотите, а не тогда, когда Python решит.