Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Python

  • Автор темы Автор темы Lydor
  • Дата начала Дата начала
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# -*- coding: utf-8 -*-
import pygame
import random

window = pygame.display.set_mode((402, 402))
pygame.display.set_caption("Zmey 3000")
screen = pygame.Surface((402, 402))
done = True # для главного цикла
#рисуем сетку
def draw_setka():
x = 0
x_x = 400
y = 0
y_y = 400
for i in range(11):
pygame.draw.line(screen, (255, 255, 255), (x, y), (x, y_y), 2)
x += 40
x = 0
for i2 in range(11):
pygame.draw.line(screen, (255, 255, 255), (x, y), (x_x, y), 2)
y += 40
#класс героя, элемента хвоста, яблока
class Zmey():
def __init__(self, xpos, ypos, filename):
self.xpos = xpos
self.ypos = ypos
self.bitmap = pygame.image.load(filename)
def render(self):
screen.blit(self.bitmap, (self.xpos * 40 + 2,self.ypos * 40 + 2))
#движение хвоста
def going_hv():
x = 2
y = len(list)
for i in reversed(list[1:]):
i.xpos, i.ypos = list[y - x].xpos, list[y - x].ypos #каждый кубик (элемент хвоста) получает координаты стоящего перед ним (ближе к голове змейки)
x += 1
counter = 0 #для будущего счёта
hvost = Zmey(4, 5, 'element.jpg')
hero = Zmey(4, 4, 'element.jpg')
going = '' # для клавиш
list = [hero, hvost] #тут хранится змейка
#движение хвоста змейки
def do_going(going):
if going == 'left':
going_hv()
list[0].xpos -= 1
if list[0].xpos < 0:
list[0].xpos = 9
if going == 'right':
going_hv()
list[0].xpos += 1
if list[0].xpos > 9:
list[0].xpos = 0
if going == 'up':
going_hv()
list[0].ypos -= 1
if list[0].ypos < 0:
list[0].ypos = 9
if going == 'down':
going_hv()
list[0].ypos += 1
if list[0].ypos > 9:
list[0].ypos = 0
apple = Zmey(10, 10, 'apple.png')
#генерация яблока
def apple_gen(list):
x = random.randint(0, 9)
y = random.randint(0, 9)
for i in list:
if (i.xpos, i.ypos) == (x, y):
x, y = apple_gen(list)
else:
continue
return x, y
apple.xpos, apple.ypos = apple_gen(list) #начальное положение яблока
while done:
some_x = list[len(list) - 1].xpos #если бедет захвачено яблоко, добавленной части хвоста передаётся это значение по Х
some_y = list[len(list) - 1].ypos # --//-- по У
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = False
if event.type == pygame.KEYDOWN:
# Выясняем какая именно кнопка была нажата
if event.key == pygame.K_LEFT:
going = 'left'
if event.key == pygame.K_RIGHT:
going = 'right'
if event.key == pygame.K_UP:
going = 'up'
if event.key == pygame.K_DOWN:
going = 'down'
do_going(going) #передаем новые координаты змейки
#если съедено яблоко
if list[0].xpos == apple.xpos and list[0].ypos == apple.ypos:
counter += 1
list.append(Zmey( some_x, some_y, 'element.jpg'))
apple.xpos, apple.ypos = apple_gen(list)
screen.fill((0, 0, 0))
draw_setka()
#отрисовка змейки через цикл
for i in list:
i.render()
apple.render()
window.blit(screen, (0, 0))
pygame.display.flip()
pygame.time.delay(300)
[TBODY] [/TBODY]
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# -*- coding: utf-8 -*-
import pygame
import random

window = pygame.display.set_mode((402, 402))
pygame.display.set_caption("Zmey 3000")
screen = pygame.Surface((402, 402))
done = True # для главного цикла
#рисуем сетку
def draw_setka():
x = 0
x_x = 400
y = 0
y_y = 400
for i in range(11):
pygame.draw.line(screen, (255, 255, 255), (x, y), (x, y_y), 2)
x += 40
x = 0
for i2 in range(11):
pygame.draw.line(screen, (255, 255, 255), (x, y), (x_x, y), 2)
y += 40
#класс героя, элемента хвоста, яблока
class Zmey():
def __init__(self, xpos, ypos, filename):
self.xpos = xpos
self.ypos = ypos
self.bitmap = pygame.image.load(filename)
def render(self):
screen.blit(self.bitmap, (self.xpos * 40 + 2,self.ypos * 40 + 2))
#движение хвоста
def going_hv():
x = 2
y = len(list)
for i in reversed(list[1:]):
i.xpos, i.ypos = list[y - x].xpos, list[y - x].ypos #каждый кубик (элемент хвоста) получает координаты стоящего перед ним (ближе к голове змейки)
x += 1
counter = 0 #для будущего счёта
hvost = Zmey(4, 5, 'element.jpg')
hero = Zmey(4, 4, 'element.jpg')
going = '' # для клавиш
list = [hero, hvost] #тут хранится змейка
#движение хвоста змейки
def do_going(going):
if going == 'left':
going_hv()
list[0].xpos -= 1
if list[0].xpos < 0:
list[0].xpos = 9
if going == 'right':
going_hv()
list[0].xpos += 1
if list[0].xpos > 9:
list[0].xpos = 0
if going == 'up':
going_hv()
list[0].ypos -= 1
if list[0].ypos < 0:
list[0].ypos = 9
if going == 'down':
going_hv()
list[0].ypos += 1
if list[0].ypos > 9:
list[0].ypos = 0
apple = Zmey(10, 10, 'apple.png')
#генерация яблока
def apple_gen(list):
x = random.randint(0, 9)
y = random.randint(0, 9)
for i in list:
if (i.xpos, i.ypos) == (x, y):
x, y = apple_gen(list)
else:
continue
return x, y
apple.xpos, apple.ypos = apple_gen(list) #начальное положение яблока
while done:
some_x = list[len(list) - 1].xpos #если бедет захвачено яблоко, добавленной части хвоста передаётся это значение по Х
some_y = list[len(list) - 1].ypos # --//-- по У
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = False
if event.type == pygame.KEYDOWN:
# Выясняем какая именно кнопка была нажата
if event.key == pygame.K_LEFT:
going = 'left'
if event.key == pygame.K_RIGHT:
going = 'right'
if event.key == pygame.K_UP:
going = 'up'
if event.key == pygame.K_DOWN:
going = 'down'
do_going(going) #передаем новые координаты змейки
#если съедено яблоко
if list[0].xpos == apple.xpos and list[0].ypos == apple.ypos:
counter += 1
list.append(Zmey( some_x, some_y, 'element.jpg'))
apple.xpos, apple.ypos = apple_gen(list)
screen.fill((0, 0, 0))
draw_setka()
#отрисовка змейки через цикл
for i in list:
i.render()
apple.render()
window.blit(screen, (0, 0))
pygame.display.flip()
pygame.time.delay(300)
[TBODY] [/TBODY]
это игра вроде
 
https://yougame.biz/threads/22108/
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Назад
Сверху Снизу