дашаdaria12
07.06.2020 13:34

Сделать рестарт в змейке
from tkinter import *
import random

# переменные

width = 800
height = 600
seg_size = 20
in_game = true

# функции
def create_block():
""" создаем еду для змейки"""
global block
posx = seg_size * random.randint(1, (width-seg_size) / seg_size)
posy = seg_size * random.randint(1, (height-seg_size) / seg_size)
block = c.create_oval(posx, posy,
posx+seg_size, posy+seg_size,
fill="red")

class score(object):

def ):
self.score = 0
self.x = 55
self.y = 15
c.create_text(self.x, self.y, text = " score {}".format(self.score), font="arial 20", fill="white",tag="score")

def increment(self):
c.delete("score")
self.score += 1
c.create_text(self.x, self.y, text = " score {}".format(self.score), font="arial 20", fill="white", tag="score")

def main():
""" моделируем игровой процесс """
global in_game
if in_game:
s.move()
head_coords = c.coords(s.segments[-1].instance)
x1, y1, x2, y2 = head_coords
# проверяем на столкновения с границами игрового поля
if x2 > width or x1 < 0 or y1 < 0 or y2 > height:
in_game = false
# поедание яблока
elif head_coords == c.coords(block):
s.add_segment()
c.delete(block)
create_block()

# поедание себя
else:
for index in range(len(s.segments)-1):
if head_coords == c.coords(s.segments[index].instance):
in_game = false
root.after(100, main)
# не in_game -> останавливаем игру и выводим сообщение
else:
c.create_text(width/2, height/2,
text="game over! ",
font="arial 20",
fill="yellow")

class segment(object):
""" сегмент змейки """
def , x, y):
self.instance = c.create_rectangle(x, y,
x+seg_size, y+seg_size,
fill="yellow")

class snake(object):
""" класс змейки """
def , segments):
self.segments = segments
# варианты движения
self.mapping = {"down": (0, 1), "right": (1, 0),
"up": (0, -1), "left": (-1, 0)}
# инициируем направление движения
self.vector = self.mapping["right"]

def move(self):
""" движение змейки в заданном направлении"""
for index in range(len(self.segments)-1):
segment = self.segments[index].instance
x1, y1, x2, y2 = c.coords(self.segments[index+1].instance)
c.coords(segment, x1, y1, x2, y2)

x1, y1, x2, y2 = c.coords(self.segments[-2].instance)
c.coords(self.segments[-1].instance,
x1+self.vector[0]*seg_size, y1+self.vector[1]*seg_size,
x2+self.vector[0]*seg_size, y2+self.vector[1]*seg_size)

def add_segment(self):
""" добавляем сегмент змейки """
score.increment()
last_seg = c.coords(self.segments[0].instance)
x = last_seg[2] - seg_size
y = last_seg[3] - seg_size
self.segments.insert(0, segment(x, y))

def change_direction(self, event):
""" выбор направления змейки """
if event.keysym in self.mapping:
self.vector = self.mapping[event.keysym]

# настройки окна
root = tk()
root.title("snake")

c = canvas(root, width=width, height=height, bg="#80")
c.grid()
# настройка нажатия клавиш
c.focus_set()
# создаем сегменты и саму змейку
segments = [segment(seg_size, seg_size),
segment(seg_size*2, seg_size),
segment(seg_size*3, seg_size)]

score = score()
s = snake(segments)
# реакция на нажатие
c.bind("", s.change_direction)

create_block()
main()
root.mainloop()

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Yutik
19.05.2023 02:18
//1)
Type
ty=array[1..25] of integer;

Var
n,i:integer;
ar:ty;

procedure sortbutmeh(var ar:ty;n:integer);
Var
i,j,c:integer;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
if ar[i]<ar[j] then
begin
c:=ar[i];
ar[i]:=ar[j];
ar[j]:=c;
end;
end;

begin
randomize;
readln(n);
writeln('First array:');
for i:=1 to n do
begin
ar[i]:=random(100);
write(ar[i]:4);
end;
sortbutmeh(ar,n);
writeln;
writeln('Array after sortbutmeh()');
for i:=1 to n do
write(ar[i]:4);
end.

//2)
Var
n:integer;

procedure ned(n:integer);
begin
case n of 
1:writeln('Понедельник');
2:writeln('Вторник');
3:writeln('Среда');
4:writeln('Четверг');
5:writeln('Пятница');
6:writeln('Суббота');
7:writeln('Воскресенье');
end;
end;

begin
readln(n);
ned(n);
end.

//3)
Var
s:string;

function lengthbutmeh(s:string):integer;
begin
while pos(' ',s)<>0 do
delete(s,pos(' ',s),1);
lengthbutmeh:=length(s);
end;

begin
readln(s);
writeln(lengthbutmeh(s));
end.
0,0(0 оценок)
Ответ:
milenakotik44
09.02.2021 20:22
Вариант 1
1. Поименованная информация, хранящаяся в долговременной памяти компьютера:
1) файл

2. Расширение файла указывает:
2) на тип данных, хранящихся в нем

З. Определите тип файла выход.ррt.
4) презентация

4. Какое расширение имеют текстовые файлы?
2) rtf, doc, docx, txt

5. Заполните пропуск в предложении
Полное имя файла включает в себя ... и имя файла.
ответ: путь

6. Установите соответствие.

Расширение Тип файла
1) .wav В) звуковой
2) .bmp Б) графический
3) .zip А) архив

7. Файловая система — это:
3) структура для хранения файлов и каталогов

8. Объект, не являющийся элементом файловой системы:
3) корзина

9. Полное имя файла D:\8 класс\Иванов Иван\Контрольная pa6oтa\контрошa.doc. В какой папке хранится файл контрошa.doc?
3) Контрольная работа

10. В каталоге хранился файл Отметки.txt. После создания в этом каталоге подкаталога и перемещения в созданный подкаталог файла Oтметки.txt полное имя файла стало A:\SCHOOL\USER\TXT\MARCH\Oтметки.txt. Полное имя каталога, в котором хранился файл до перемещения:
2) A:\SCHOOL\USER\TXT

11. Что представляет собой каталог диска в одноуровневой файловой системе?
ответ:линейная последовательность

12. Что такое корневой каталог?
ответ:начальный каталог в структуре каталогов устройства внешней памяти, в котором могут храниться файлы и другие подкаталоги.

Вариант 2
1. Файл — это:
1) поименованная группа данных в долговременной памяти

2. Сколько символов может быть в расширении файла?
4) до 256

З. Определите тип файла выход.jpg.
2) графический

4. Видеофайлы имеют расширение:
4) avi, wmv, mpeg

5. Заполните пропуск в предложении.
Полное имя файла включает в себя путь и ... файла.
ответ: имя

6.Установите соответствие

Расширение Тип файла
l).rtf А) текстовый
2) .bmp В) графический
3) .mp3 Б) звуковой

7. Функциональная часть ОС, обеспечивающая выполнение операций над файлами:
2) файловая система

8. Объект, не являющийся элементом файловой системы:
4) пуск

9. Полное имя файла С:\8 класс\Петров Петр\Самостоятельная работа\самраб.dос. В какой папке хранится файл самраб.dос?
3) Самостоятельная работа

10. В каталоге хранился файл Kaчecтвo.txt. После создания в этом каталоге подкаталога и перемещения в созданный подкаталог файла Kaчecтво.txt полное имя файла стало A:\SCHOOL\ADMIN\DOC\YEAR\Kaчecтво.txt. Полное имя каталога, в котором хранился файл до перемещения:
2) A:\SCHOOL\ADMIN\DOC

11. Что представляет собой каталог диска в многоуровневой файловой системе?

ответ: дерево

12. Задан путь к файлу C:\Text\Primer\Proba.doc.
Назовите имя каталога, в котором находится этот файл.

ответ: Primer
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота