1 / 1 / 0
Регистрация: 14.08.2012
Сообщений: 14

Ошибка при запуске программы, не могу понять в чем дело

14.08.2012, 20:12. Показов 2760. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ну что же, семпаи, прошу помочь и объяснить как обойти ошибку. Ниже приведу текст программы, программа должна запускать окно в котором появляются 5 кругов со случайным начальным положением, случайного размера и цвета, которые двигаются в случайном направлении и отбиваются от границ окна.
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
#!/usr/bin/env python
#coding=utf-8
 
import pygame
import sys
import random
 
class Circle:
    def __init__(self, screenSize):
        self.screenSize=screenSize
        self.radius = random.randint(20, screenSize[0]/6)
        self.y = random.randint(self.radius, screenSize[1])
        self.x = random.randint(self.radius, screenSize[0])
        self.circleColor = (random.randint(0,255),random.randint(0,10),random.randint(0,10))
        self.xSpeed=random.randint(-100,100)
        self.ySpeed=random.randint(-100,100)
    
    def contain(self, xx, yy):
        if self.x <= xx <= self.x + self.radius:
            if self.y<= yy <= self.y + self.radius:
                return True
        return False
    
    def move(self, sec):
        self.x+=sec*self.xSpeed
        self.y+=sec*self.ySpeed
        
        if self.x + self.radius > self.screenSize[0]:
            self.xSpeed=-self.xSpeed
            self.x=self.screenSize[0]-self.radius
        if self.x<0:
           self.xSpeed=-self.xSpeed
           self.x=0
        if self.y + self.radius > self.screenSize[1]:
           self.ySpeed=-self.ySpeed
           self.y=self.screenSize[1]-self.radius
        if self.y<0:
           self.ySpeed=-self.ySpeed
           self.y=0
 
    def draw(self,screen):
       pygame.draw.circle (screen, self.circleColor, (self.x,self.y), self.radius)
       
 
pygame.init()
timer = pygame.time.Clock()
 
screenSize = (800,600)
screenColor = (255,255,255)
screen = pygame.display.set_mode (screenSize)
 
n=5
 
circleList=[]
for i in range(n):
    circle = Circle(screenSize)
    circleList.append(circle)
 
while 1:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        if (event.type == pygame.KEYDOWN):
            if (event.key == pygame.K_ESCAPE):
                pygame.quit()
                sys.exit()            
        if event.type == pygame.MOUSEBUTTONDOWN:
            xx,yy = pygame.mouse.get_pos()
            for i in range(len(circleList)):
                if circleList[i].contain(xx,yy):
                    circleList[i]=Circle(screenSize)
 
 
    sec = timer.tick() / 1000.  
    for circle in circleList:
        circle.move(sec)
 
 
    screen.lock()
    pygame.draw.rect (screen, screenColor, pygame.Rect((0,0), screenSize))
    for circle in circleList:
        circle.draw(screen)
    screen.unlock()
    
    pygame.display.update()
при запуске программы выдает следующую ошибку:

Traceback (most recent call last):
File "E:\soft\Программировние\Python\Program\ day2Circle.py", line 83, in <module>
circle.draw(screen)
File "E:\soft\Программировние\Python\Program\ day2Circle.py", line 42, in draw
pygame.draw.circle (screen, self.circleColor, (self.x,self.y), self.radius)
TypeError: integer argument expected, got float

Я понимаю, что вместо ожидаемого целого функция получает аргумент вещественного типа. Но не понимаю откуда может взяться вещественный.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.08.2012, 20:12
Ответы с готовыми решениями:

Ошибка памяти при выполнении - не могу понять в чём дело
Добрый день. Есть следующий код: #include &lt;iostream&gt; using namespace std; class Matrix { private: int* arr_ptr; ...

Запуск программы *exe я в отчаянии) не могу понять в чём дело
В общем есть у меня программа (123D catch), которая работала у меня буквально позавчера и вот она вдруг перестала работать. Нажимаешь на...

Синтаксическая ошибка в .IF, не могу понять в чем дело
Заранее благодарен.

7
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
15.08.2012, 07:47
Python
1
2
3
4
5
    def draw(self, screen):
        pygame.draw.circle(screen,
                           self.circleColor,
                           (self.x, self.y),
                           self.radius)
запусти в таком виде
0
1 / 1 / 0
Регистрация: 14.08.2012
Сообщений: 14
15.08.2012, 15:13  [ТС]
Попробовал, не сработало. Да вроде и не должно было сработать, ведь мы ничего не изменили по сути.
0
104 / 94 / 14
Регистрация: 20.06.2010
Сообщений: 966
Записей в блоге: 16
15.08.2012, 18:33
каждая переменная на отдельной строке, так легче найти переменную, на которой происходит TypeError.
0
1 / 1 / 0
Регистрация: 14.08.2012
Сообщений: 14
15.08.2012, 20:21  [ТС]
Ок, переменную нашли

File "E:\soft\Программировние\Python\Program\ day2Circle.py", line 87, in <module>
circle.draw(screen)
File "E:\soft\Программировние\Python\Program\ day2Circle.py", line 46, in draw
self.radius)
TypeError: integer argument expected, got float

Переменная задается в троке 12
Python
1
self.radius = random.randint(20, screenSize[0]/6)
Но даже, если записать так: self.radius = 20 всё равно ошибка выйдет та же
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
16.08.2012, 02:00
а int(self.radius) ?
1
1 / 1 / 0
Регистрация: 14.08.2012
Сообщений: 14
23.08.2012, 03:53  [ТС]
Цитата Сообщение от accept Посмотреть сообщение
а int(self.radius) ?
Спасибо, правда странно, что ругонь шла на радиус. Проблему решило приведение к типу координат центра:
pygame.draw.circle (screen, self.circleColor, (int(self.x), int(self.y)), self.radius)

Дело было в том что у меня скорости перемещения координат центров кругов были привязаны к таймеру, а количество секунд были указаны с точкой, получались дробные цифры отсюда
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
23.08.2012, 05:20
лучше приводить их там, где они становятся дробными
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.08.2012, 05:20
Помогаю со студенческими работами здесь

Ошибка в шаблоне.не могу понять в чем дело?
сайт уже пару месяцев...и не давно полетел шаблон на некоторых страницах вот одна из них...

ошибка в программе и не могу понять в чем дело
#include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;cstdlib&gt; int main( int a, char *b ) { char *s;...

Ошибка в коде T-SQL, не могу понять в чем дело...
Всем привет и всех мужчин с праздником! У меня такой вопрос, есть таблица в ней находятся двы столбца NAME и KURS, пишу вот такой...

Не могу понять в чем дело. Ошибки при загрузке Kali Linux
Доброго дня устанавливаю Kali Linux с USB все встает отлично мое железо НО После установки при попытке загрузки вот такое ...

Есть программа, но при при вызове одной функции из main Visual Studio показывает ошибку. Не могу понять в чём дело
#include&lt;iostream&gt; #include&lt;vector&gt; using namespace std; struct Basket { int made; int needed; int money;


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
Система статов в Unity
GameUnited 20.04.2025
Статы — фундаментальный элемент игрового дизайна, который определяет характеристики персонажей, предметов и других объектов в игровом мире. Будь то показатель силы в RPG, скорость передвижения в. . .
Статические свойства и методы в TypeScript
run.dev 20.04.2025
TypeScript прочно занял своё место в системе современной веб-разработки. Этот строго типизированный язык программирования не просто расширяет возможности JavaScript — он делает разработку более. . .
Batch Transform и Batch Gizmo Drawing API в Unity
GameUnited 20.04.2025
В мире разработки игр и приложений на Unity производительность всегда была критическим фактором успеха. Создатели игр постоянно балансируют между визуальной привлекательностью и плавностью работы. . .
Звук в Unity: Рандомизация с Audio Random Container
GameUnited 20.04.2025
В современных играх звуковое оформление часто становится элементом, который либо полностью погружает игрока в виртуальный мир, либо разрушает атмосферу за считанные минуты. Представьте: вы исследуете. . .
Максимальная производительность C#: Советы, тестирование и заключение
stackOverflow 20.04.2025
Погружение в мир микрооптимизаций C# открывает перед разработчиком целый арсенал мощных техник. Но как определить, где и когда их применять? Ответ начинается с точных измерений и профилирования. . . .
Максимальная производительность C#: Предсказание ветвлений
stackOverflow 20.04.2025
Третий ключевой аспект низкоуровневой оптимизации — предсказание ветвлений. Эта тема менее известна среди разработчиков, но её влияние на производительность может быть колоссальным. Чтобы понять. . .
Максимальная производительность C#: Векторизация (SIMD)
stackOverflow 20.04.2025
Помимо работы с кэшем, другим ключевым аспектом низкоуровневой оптимизации является векторизация вычислений. SIMD (Single Instruction, Multiple Data) позволяет обрабатывать несколько элементов данных. . .
Максимальная производительность C#: Процессорный кэш
stackOverflow 20.04.2025
Знакомство с внутренним устройством процессорного кэша — ключевой шаг в написании по-настоящему быстрого кода на C#. Этот слой архитектуры компьютера часто ускользает от внимания разработчиков, но. . .
Максимальная производительность C#: Введение в микрооптимизации
stackOverflow 20.04.2025
В мире разработки на C# многие привыкли полагаться на . NET Runtime, который "магическим образом" сам оптимизирует код. И часто это работает - современные JIT-компиляторы творят чудеса. Но когда речь. . .
MVC фреймворк в PHP
Jason-Webb 19.04.2025
Архитектурный паттерн Model-View-Controller (MVC) – это не просто модный термин из мира веб-разработки. Для PHP-программистов это фундаментальный подход к организации кода, который радикально меняет. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru