Форум сайта python.su
Помогите с написанием кода к задаче.Вообще не понимаю как делать,преподаватель задал в университете.вот условия:
Гусеница, состоящая из 7 маленьких кружков, ползет по горизонтальной плоскости, на которой лежат препятствия в виде прямоугольников. Гусеница должна перелезать через них. (Подсказка: движение моделировать добавлением кружка в головную часть и удалением кружка из хвостовой части)
начало кода у меня такое.
from graphics import *
import math
from random import randrange
class partCPillar():
def __init__(self,win,size,pc,r,color):
self.xc=pc.getX()
self.yc=pc.getY()
self.r = r
self.krCircle(Point(self.xc,self.yc),r))
self.kr.setFill(color)
self.kr.draw(win)
Офлайн
ну собственно для примера вот http://pythonicway.com/python-games/python-arcade/18-python-snake
по крайней мере оттуда вы можете посмтреть как сделать класс змейки. для вашей задачи вам нужно будет немного переделатьи немного упростить, так как у вас размер гусеницы фиксирваный.
А вообще для вашего конкретного случая я бы сделал проще, поскольку движение змейки дискретное( моделируется добавлением кружка в головную часть и удалением кружка из хвостовой части), то создал бы сначала модель: матрицу и заполнил бы ее нулями(прозрачный блок) и единицами(непрозрачный блок) , сегменты гусеницы пускай будут востьмерки. Сама гусеница это список из 7-ми элементов котороые содержат координаты каждого сегмента. Голова гусеницы пускай будет последний элемент списка. пемещение осуществляеться удалением координат первого элемента, и дописыванием элемента с новыми координатами(с соовтетвующими записями в матрицу). Соответвенно если гусеница ползет слева направо, то сначала проверять пустой ли квадрат под головой гусеницы, потом перед, и потом над, и соответвенно, перемещаем в первый обнаруженый пустой квадрат.
Потом на основании этого к матрице прикрутить отрисовку картинки, заполнять канвас белум квадратом если 0, черным если 1, или черным кругом на белом фоне если 8, после начального заполнения канваса, у вас за тик будет обновляться по 2 квадрата…
[code python][/code]
Офлайн
Смахивает это на “Путника” из “Программирования для математиков”, только тут шлейф ещё. Там у него были определены предписания (методы).
Система предписаний в компактной форме:
1. начать работу
2. впереди/справа/слева свободно : да/нет
3. впереди/справа/слева занято : да/нет
4. сделать шаг
5. шагать до упора
6. повернуться направо/налево
7. повернуться на север/юг/запад/восток
8. кончить работу
"Путник"
Луноход, который находится в неизвестной местности.
Местность называется квадрантом, который по краю обнесён сплошной стеной. В квадранте могут находиться препятствия.
Система предписаний в компактной форме:
1. начать работу
2. впереди/справа/слева свободно : да/нет
3. впереди/справа/слева занято : да/нет
4. сделать шаг
5. шагать до упора
6. повернуться направо/налево
7. повернуться на север/юг/запад/восток
8. кончить работу
Дополнительные сведения:
1. начать работу
Путник оказывается в северо-западной клетке лицом на восток
4. сделать шаг
приводит к отказу, если впереди занято
5. шагать до упора
не приводит к отказу, если впереди занято
Отредактировано py.user.next (Май 20, 2017 01:37:11)
Офлайн