Академический Документы
Профессиональный Документы
Культура Документы
Программирование на Python (неполная версия)
Программирование на Python (неполная версия)
Списки.
Часть 2
СОДЕРЖАНИЕ
Инициализация корабля. . . . . . . . . . . . . . . . . . . . . . . . . . 4
Звездное небо . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Наблюдение за галактикой . . . . . . . . . . . . . . . . . . . . . . . 12
Запуск ракеты. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Защита от вражеских кораблей . . . . . . . . . . . . . . . . . . . 14
Н
а сегодняшнем уроке вас ждет интересное
приключение, в ходе которого вы сможете
почувствовать себя настоящим капитаном
космического корабля!
Рисунок 1
Инициализация корабля
Подробно разберем программу из Листинга 1.
Для начала капитану необходимо включить все при-
боры и выполнить инициализацию корабля (рис. 2).
Рисунок 2
ship = [
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
',
...
...
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
',]
for i in range(len(ship)):
print(ship[i])
time.sleep(.2)
Рисунок 3
5
Урок № 10
Рисунок 4
6
Списки. Часть 2
Рисунок 5
7
Урок № 10
Рисунок 6
8
Списки. Часть 2
Звездное небо
Наконец-то, приключение начинается! Первое, что
мы предлагаем капитану, – полететь в открытый кос-
мос и посмотреть, как рождаются звезды. Вот тут-то
и пригодится библиотека turtle. Следует учесть один
9
Урок № 10
for i in range(50):
# Random color
random_index = random.randint(0,
max_index)
new_color = colors[random_index]
turtle.color(new_color)
10
Списки. Часть 2
11
Урок № 10
Рисунок 7
Наблюдение за галактикой
Знаете ли вы, как выглядит галактика? Капитану
нашего корабля представилась возможность попутеше-
ствовать по ней (рис. 8)!
Рисунок 8
12
Списки. Часть 2
Запуск ракеты
В космосе огромное количество астероидов, кото-
рые могут угрожать вам и вашему кораблю. Предста-
вим, что один из таких гигантов движется на вас, и, если
избежать столкновения невозможно, следует выпустить
ракету. Ракета изменит траекторию движения астеро-
ида, и вы, целый и невредимый, сможете продолжить
свое космическое странствие. В коде это реализовано
следующим образом:
missile = [
'#####################################@@
',
...
...
'$$$####################################'
]
for i in range(len(missile)):
print(missile[i])
time.sleep(.2)
13
Урок № 10
Рисунок 9
14
Списки. Часть 2
Рисунок 10
for i in range(5):
print(name[i], end='')
print('\nStart protection...')
time.sleep(1)
protection = [
'....................._-$@@@$-@_................',
...
...
'..................._--___@@$$@$_...............'
]
for i in range(len(protection)):
print(protection[i])
time.sleep(.2)
15
Урок № 10
16
Списки. Часть 2
Листинг 1
import time
import datetime
import random
import turtle
print('''
****************************************
* *
* Welcome to Space Adventures! *
* *
****************************************
''')
print('Initialization...')
time.sleep(1)
ship = [
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$@@@@@@@@@',
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@$___-$$$$$$$@@@@@@@',
'@@@@@@@@@@@@@@@@@@@@@@@@@@-______-$$$$$$$@@@@@@',
'@@@@@@@@@@@@@@@@@@@@@@@@$__________-$$$$$@@@@@@',
'@@@@@@@@@@@@@@@@@@@@@@@___-$$$$-_____--$$@@@@@@',
'@@@@@@@@@@@@@@@@@@@@@$___-------$______-@@@@@@@',
'@@@@@@@@@@@@@@@@@@@@_____-------$____-@@@@@@@@@',
'@@@@@@@@@@@@@@$$$$-_______-$$$$$___-@@@@@@@@@@@',
'@@@@@@@@@@@@$$$$$________________$@@@@@@@@@@@@@',
'@@@@@@@@@@$$$$$-_____-$_______-@@@@@@@@@@@@@@@@',
'@@@@@@@@@@@@@@@____$$-_____-@@@@@@@@@@@@@@@@@@@',
'@@@@@@@@@@@@@@--_$$-_____-$@@@@@@@@@@@@@@@@@@@@',
'@@@@@@@@@@@@$--$$-____-$$$$@@@@@@@@@@@@@@@@@@@@',
'@@@@@@@@@@$$_--_-$@@@$$$$$@@@@@@@@@@@@@@@@@@@@@',
'@@@@@@@@@$-__--$@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@',
'@@@@@@@@$$-$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',
'@@@@@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',]
17
Урок № 10
for i in range(len(ship)):
print(ship[i])
time.sleep(.1)
print('\nYeah! The spaceship is ready.')
18
Списки. Часть 2
if select == '1':
print('Stars are giant, luminous spheres
of plasma.')
# List of colors
colors = ['white', 'yellow']
max_index = len(colors) - 1
for i in range(50):
# Random color
random_index =
random.randint(0, max_index)
new_color = colors[random_index]
turtle.color(new_color)
# Stars
turtle.begin_fill()
for i in range(5):
turtle.forward(15)
turtle.right(144)
turtle.penup()
turtle.end_fill()
# Generate random location on the
screen
w = turtle.window_width() // 2 - 50
h = turtle.window_height() // 2 - 50
x = random.randrange(-w, w)
y = random.randrange(-h, h)
turtle.goto(x,y)
turtle.pendown()
turtle.exitonclick()
# Galaxy
else:
print('Galaxies consist of stars, stellar
remnants, dust, gas, and dark
matter, bound together by gravity.')
turtle.pencolor('purple')
19
Урок № 10
# List of colors
colors = ['white', 'yellow']
max_index = len(colors) - 1
for i in range(100):
turtle.pensize(i/100 + 1)
turtle.forward(i)
turtle.left(59)
turtle.exitonclick()
# Rocket
elif select == '3':
print('Launching a missile...')
missile = [
'#####################################@@',
'##################################@$@@@',
'###############################@$-@@@@#',
'############################@@_$@@@@@##',
'##########################@-_@@@@@@@###',
'#######################@@_-@##@@@@@####',
'#####################@@_-@@@--@@@@#####',
'###################@@_-@@@@@@@@@#######',
'##################@__@@@@@@@@@@########',
'################@-_@@@@@@@@@@@#########',
'##############@$_$@@@@@@@@@@###########',
'#######@@$$$$@$-@@@@@@@@@@@############',
'#####@$@@@@@@$@@$@@@@@@@@##############',
'###@$@@@@@@@@@@@@@@@@@@################',
'##@@@@@@@@@@@@@@@@@@@@#################',
'#@@@##@@@@@@@@@@@@@@@@#################',
'#######@@@@@@@@@@@@@@@#################',
'######-#@@@@@@@@@@@@@##################',
'####$$-@-####@@@@@@@###################',
'##$$---$$#####@@@@#####################',
'#$$--$$#######@@#######################',
'$$$$$$#################################',
'$$$####################################'
]
20
Списки. Часть 2
for i in range(len(missile)):
print(missile[i])
time.sleep(.2)
# Protection
elif select == '4':
print('An enemy spaceship is moving toward your
SPACESHIP ID-', end='')
for i in range(5):
print(name[i], end='')
print('\nStart protection...')
time.sleep(1)
protection = [
'....................._-$@@@$-@_................',
'...................-$$$$$@@@@$$_...............',
'...................$$$$@@@@$$@$$_..............',
'...................-$$$$@@@$$@$-...............',
'..................._@#$$@##@$$-_...............',
'..................._-$$$$$$$$$_................',
'..................._$$@@@@@@$_.................',
'...................._-@@@@@_...................',
'...................._-@@#@@$_..................',
'.................._@$$@@@@@@@$_................',
'................._@$$$$@@@@##@@$...............',
'................_-@@$$$@@@#@#@@@@_.............',
'................_@@__$$@@@@@@_.$@@-............',
'..............._@@$._@$@@#@@@_..$@@_...........',
'.............._$@-._-@$@@@@@@..._@@-...........',
'............._$@_.._$@$@@#@@@_..._@$_..........',
'.............-@@$_._@@@@@@@@$_.._@@@$..........',
'.............$$.__._@@@#_@#@$...$__@$..........',
'............._$_..._@@#@_$$@$._...-$_..........',
'..................._@@#@_$@@@-.................',
'....................$@#@@-@@@$.................',
'..................._$@#@@$@@@@_................',
'..................._--___@@$$@$_...............'
]
21
Урок № 10
for i in range(len(protection)):
print(protection[i])
time.sleep(.2)
elif select == '0':
break
else:
print('Error! Try again')
22
Урок № 10
Списки. Часть 2