Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 28.11.2022
Сообщений: 4

Лабиринт некорректно работает

29.03.2023, 20:04. Показов 939. Ответов 1

Студворк — интернет-сервис помощи студентам
Добрый вечер!

У меня возникла одна проблема в коде в игре Лабиринт. Нам задали дополнить код в играх я решила взять из игр на питоне Maze, а там надо его дополнить:

1. Ведите счет, считая краны.
2. Сделать лабиринт сложнее.
3. Создайте один и тот же лабиринт дважды.

Я его сделала, но когда я его проверяю то у меня возникает неприятная вещь, а именно у меня когда я кликаю на место куда я хочу чтобы была линия и за это дается очко место линий появляются точки точки и я не знаю как решить эту проблему можете пожалуйста помочь с этим.

Вот код Лабиринта который я сделала:

Python
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
from random import random
from turtle import *
from freegames import line
 
# Set the score
score = 0
score_display = Turtle(visible=False)
score_display.penup()
score_display.goto(-200, 200)
 
# Define the function to update the score
def update_score():
    global score
    score += 1
    score_turtle.clear()
    score_turtle.write("Score: {}".format(score), align="left", font=("Arial", 16, "normal"))
 
# Draw the maze
def draw_maze():
    """Draw the maze."""
    color('black')
    width(5)
 
    for x in range(-200, 200, 40):
        for y in range(-200, 200, 40):
            if random() > 0.6: # Change the probability to make the maze harder
                line(x, y, x + 40, y + 40)
            else:
                line(x, y + 40, x + 40, y)
 
    update()
 
# Generate the same maze twice
def generate_maze():
    """Generate the same maze twice."""
    clear() # Clear the previous maze
    penup()
    goto(-200, -200)
    pendown()
    draw_maze()
    show_start() # Show the start position
 
# Show where the game starts
def show_start():
    """Show where the game starts."""
    color('green')
    width(5)
    penup()
    goto(-180, -180)
    pendown()
    goto(-160, -160)
    penup()
 
# Define the function to handle mouse clicks
def handle_click(x, y):
    update_score()
    width(2)
    color('red')
    goto(x, y)
    dot(4)
    if abs(x) > 198 or abs(y) > 198:
        penup()
        goto(0, 0)
        write("You Lose", align="center", font=("Arial", 32, "normal"))
        onscreenclick(None) # Disable mouse clicks
    else:
        width(5)
        color('black')
 
# Set up the screen
setup(420, 420, 370, 0)
hideturtle()
tracer(False)
draw_maze()
 
# Set up the turtle for drawing the score
score_turtle = Turtle()
score_turtle.hideturtle()
score_turtle.penup()
score_turtle.goto(-200, 200)
score_turtle.write("Score: {}".format(score), align="left", font=("Arial", 16, "normal"))
 
# Set up the mouse click listener
onscreenclick(handle_click)
 
# Generate a new maze when the user presses the spacebar
onkeypress(generate_maze, "space")
listen()
 
# Show where the game starts
show_start()
 
# Generate the same maze twice
generate_maze()
 
# Start the main loop
done()
За ранее огромное спасибо за помощь
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.03.2023, 20:04
Ответы с готовыми решениями:

Какова вероятность того, что мышь выбрала первый лабиринт, второй лабиринт
Мышь может выбрать наугад один из 5 лабиринтов. Известно, что вероятность ее выхода из различных лабиринтов за три минуты равна...

Не работает игра Лабиринт на WPF
Здравствуйте! Преподаватель попросил чтобы в моей игре было 5 уровней лабиринта. Я создал новый проект, туда запихнул свой код лабиринта,...

Игра лабиринт. ИИ в лабиринте. Как задать лабиринт
У меня есть следующее задание: Дано: - робот - лабиринт Задание: - Нужно реализовать искусственный интеллект для робота,...

1
88 / 32 / 14
Регистрация: 25.03.2023
Сообщений: 69
29.03.2023, 22:21
Лучший ответ Сообщение было отмечено Ritanasan как решение

Решение

Проблема в функции def handle_click(x, y). При обработке клика мыши вызывается функция dot(4), которая рисует точку диаметром 4 пикселя, вместо линии. Вам нужно это убрать и добавить pendown() - чтобы рисовать линии вместо точек

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def handle_click(x, y):
    update_score()
    width(2)
    color('red')
    pendown() # добавить эту строку
    goto(x, y)
    # dot(4) # удалить эту строку
    if abs(x) > 198 or abs(y) > 198:
        penup()
        goto(0, 0)
        write("You Lose", align="center", font=("Arial", 32, "normal"))
        onscreenclick(None)  # Disable mouse clicks
    else:
        width(5)
        color('black')
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.03.2023, 22:21
Помогаю со студенческими работами здесь

Некорректно работает чат ( или не работает)
Доброго времени суток! Хотел чат поставить на сайт. И как-то криво получилось. Захожу в него, во-первых на всю страницу получился, хотя...

Некорректно работает aero (при запуске obs, говорит, что aero не работает)
Добрый день. У меня проблема с отключение aero в obs. Сама система говорит что оно включено и отлично работает, но при запуске obs, уже он...

Do while работает некорректно
Не могу понять почему после умножения 2ух переменных я не могу ввести хочу ли я продолжить или нет. #define _CRT_SECURE_NO_WARNINGS ...

Некорректно работает if
Здравствуйте. У меня проблема. Если я указываю такое условие: if ( (i != k) && (j != l) ) то if срабатывает не всегда, но если...

Некорректно работает
Здравствуйте помогите пож-та с задачкой: Сформировать вещественный массив X1(N), N≤20, элементами которого являются случайные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru