Сделать рестарт в змейке
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()
Откройте «Настройки» и пролистайте страницу вниз.
В общем списке войдите во вкладку «Универсальный доступ».
Появится перечень возможностей, в котором тапните по «Виртуальный контроллер».
Следующим выберите «Переключатели».
Система допускает создание 1-10 профилей виртуальных контроллеров. Чтобы настроить первый, клацните по «Добавить новый».
В перечне источников тапайте на «Экран».
Откроется следующее окно. Выберите в нем «На весь экран».
В подкатегории «Система» тапните по «Касание».
Сверху нажмите на «Назад», чтобы выйти из переключателя и открыть дополнительное меню.
Теперь выберите «Набор правил», по которым будет работать автокликер.
Появится перечень доступных действий, где пользователю нужно нажать «Создание нового набора правил».
В поле «Название» введите имя контроллера, а затем жмите по «Назначить переключатель».
Снова жмите «На весь экран».
Появится список функций, доступных для надстройки. В подгруппе «Удержание на точке» вам нужен «Собственный жест».
В следующем окне предложат сделать движения, которые в последующем будут автоматически повторяться на экране. Делайте касание по экрану или свайпы в той зоне, где в игре или приложении понадобится повторить тапы. После “натапывания”, жмите «Стоп» в правом нижнем углу, а затем «Сохранить» в верхнем.
Вернитесь к предыдущему меню, тапнув по «Назад».
Пользователь вернется во вкладку «Набор правил», где нужно перейти в «Запуск набора правил».
Переключите галочку с пункта «Нет» на название автоматического кликера, который создал юзер.
Снова вернитесь во вкладку «Универсальный доступ» и откройте «Универсальная команда».
Сверху перечня нажмите по «Виртуальный контроллер
<h1>Таблица</h1>
<div style="margin-left: 30%;margin-bottom: 100px;">
<form action="" method="POST">
<table>
<tr><td>
<label for="surname">Фамилия:</td><td><input type="text" name="surname" id="name" value="<?php echo $surname; ?>"></label></td>
</tr><tr>
<td>
<label for="name">Имя:</td><td><input type="text" name="name" id="name" value="<?php echo $name; ?>"></label></td>
</tr><tr>
<td>
<label for="patronymic">Отчество:</td><td><input type="text" name="patronymic" id="patronymic" value="<?php echo $patronymic; ?>"></label></td>
</tr><tr>
<td>
<label for="age">Дата рождения:</td><td><input type="text" name="age" id="age" value="<?php echo $age; ?>"></label> </td>
</tr><tr>
<td>
<label for="phone">Телефон:</td><td><input type="text" name="phone" id="phone" value="<?php echo $phone; ?>"></label></td>
</tr><tr>
<td>
<label for="gender">Пол:</td><td><input type="text" name="gender" id="gender" value="<?php echo $gender; ?>"></label>
</tr><tr>
</td>
<label for="address">Баланс:</td><td><input type="text" name="balance" id="balance" value="<?php echo $balance; ?>"></label> </td>
</tr><tr>
<label for="address">Скидка:</td><td><input type="text" name="discount" id="discount" value="<?php echo $discount; ?>"></label></td>
</tr><tr>
<label for="address">Бонус:</td><td><input type="text" name="bonus" id="bonus" value="<?php echo $bonus; ?>"></label></td>
</table>
<input type="hidden" name="id" value="<?php echo($id);?>">
<input type="submit" value="<?php echo($button);?>">
</form>
Длина символов строки и маска для номера задается в SQL server.