Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/30: Рейтинг темы: голосов - 30, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 14.12.2014
Сообщений: 27

Сделать игру-кликалку по появляющимся в рандомном месте фигурам

12.03.2016, 22:12. Показов 6997. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет , я новичок в питоне делаю игру , принцип игры такой, появляется объект на экране к примеру круг или квадрат и через 1 секунду он должен появиться уже в другом месте и так далее человек должен кликать на этот объект , за это он получает 1 очко сверху будет надпись Score и сколько очков на данный момент заработал так же идет таймер до окончания игры за 30 секунд к примеру он должен максимально сколько сможет кликнуть на объект который появляется в разных точках , после окончания таймера игра заканчивается и выходит окно начать заново игру или выйти из игры.
Код не много написан сделал меню . во 2 окне только оформление не знаю с чего начать и как написать буду рад если поможете

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
from tkinter import *
import math 
from tkinter.messagebox import *
import math
import random 
 
 
def playd():
    win.destroy()
    win2=Tk()
 
  
    canva2=Canvas(win2,width=400,height=400,bg="Green") # fon okna
    canva2.pack(expand=YES,fill=BOTH)
   
    c=Canvas(win2,width=50,height=50) #razmer
    c.pack(expand=YES,fill=BOTH)
    img=PhotoImage(file='blue.png')        #objekt
    c.create_image(0, 0, image=img, anchor=NW)
    c.place(x=200,y=500)
    
    cz=Canvas(win2,width=50,height=50) #razmer
    cz.pack(expand=YES,fill=BOTH)
    imgz=PhotoImage(file='yellow.png')        #objekt
    cz.create_image(0, 0, image=imgz, anchor=NW)
    cz.place(x=600,y=100)
 
 
 
 
 
 
 
 
 
 
    
    labb=Label(win2,
          text="Score: \n",
          font="Arrial 17",
          bg="Green"
          )
    labb.place(x=350,y=10)
    
    
    
 
    win2.title("Catch a square")
    win2.resizable(width=FALSE,height=FALSE)
    win2.minsize(width=800,height=600)
 
       
  
    
    win2.mainloop()
    
def close():
    if askyesno("Exit","Are you sure?"):
       win.destroy()
    
win=Tk()
win.title("Start Menu")
canva=Canvas(win,width=400,height=400,bg="Light Blue")
canva.pack(expand=YES,fill=BOTH)
win.minsize(width=400,height=400)
win.resizable(width=FALSE,height=FALSE)
 
    
 
    
 
 
but=Button(win,
           text="Начать игру"
           ,width=25,height=5,
           bg="green", 
           command=playd)
but.place(x=100,y=100)
but2=Button(win,
           text="Выйти из игры"
           ,width=25,height=5,
           bg="green",
           command=close)
           
 
but2.place(x=100,y=200)
lab=Label(win,
          text="Catch a square \n",
          font="Arrial 17",
          bg="Light Blue"
          )
lab.place(x=120,y=20)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.03.2016, 22:12
Ответы с готовыми решениями:

Вывести все треугольники в рандомном порядке, рандомном месте и с рандомной ориентацией (Glut в С++)
#include <windows.h> #include <glut.h> //Подключение библиотеки glut.h #include <gl/GL.h> void MyDisplay() { int i = 0; ...

Как сделать так, чтобы монета появлялась в рандомном месте на карте
Плиз сделайте так чтобы монета появлялась в рандомном месте на карте (кроме поля на котором ходит игрок). Вот код: #coding utf8 ...

В рандомном месте прекращается анимация
На любом рандомном шаге анимация, tween застревает на половине и не доходит до конца. В чем может быть проблема?

19
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
12.03.2016, 23:38
Цитата Сообщение от nubriuska Посмотреть сообщение
Всем привет , я новичок в питоне делаю игру
Для игр больше подходит библиотека pygame, а не как не tkinter.
0
0 / 0 / 0
Регистрация: 14.12.2014
Сообщений: 27
13.03.2016, 11:37  [ТС]
а без него никак? или лучше с ним?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
13.03.2016, 12:06
Цитата Сообщение от nubriuska Посмотреть сообщение
или лучше с ним?
Лучше с ним, он под этого заточен
0
0 / 0 / 0
Регистрация: 14.12.2014
Сообщений: 27
13.03.2016, 12:12  [ТС]
как установить его на питон 3.5.1 ? есть только для 3.2 версии это библеотека
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
13.03.2016, 12:31
http://www.lfd.uci.edu/~gohlke/pythonlibs/ вот отсюда бери и ставь через pip
0
0 / 0 / 0
Регистрация: 14.12.2014
Сообщений: 27
13.03.2016, 12:49  [ТС]
не разу не ставил библиотеку, как ее установить то?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
13.03.2016, 13:23
Code
1
pip install <file_name>.whl
0
0 / 0 / 0
Регистрация: 14.12.2014
Сообщений: 27
13.03.2016, 13:58  [ТС]
как проверить что работает? вроде установил но вписываю команду import pygame пишет: from pygame.base import *
ImportError: DLL load failed: Не найден указанный модуль.
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
13.03.2016, 14:06
nubriuska, установил библиотеку не той же разрядности, что и интерпретатор
0
0 / 0 / 0
Регистрация: 14.12.2014
Сообщений: 27
13.03.2016, 14:14  [ТС]
у меня 64 бит система там 32 или неважно это?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
13.03.2016, 14:31
Цитата Сообщение от nubriuska Посмотреть сообщение
у меня 64 бит система там 32 или неважно это?
Суть не в том какая у тебя система, а в том какой разрядности у тебя интерпретатор и какой разрядности ты ставишь библиотеку.
0
0 / 0 / 0
Регистрация: 14.12.2014
Сообщений: 27
13.03.2016, 14:41  [ТС]
скачал pygame-1.9.2a0-cp35-none-win32.whl эту библиотку
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
13.03.2016, 14:43
nubriuska, а интерпретатор какой? Покажи скрин из "установки удаления программ"
0
0 / 0 / 0
Регистрация: 14.12.2014
Сообщений: 27
13.03.2016, 14:51  [ТС]
вот какая ошибка
Миниатюры
Сделать игру-кликалку по появляющимся в рандомном месте фигурам  
0
0 / 0 / 0
Регистрация: 14.12.2014
Сообщений: 27
13.03.2016, 15:37  [ТС]
Вообщем , помогите как ни будь с написанием хотя бы не в модуле paygame а в другом.
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
13.03.2016, 18:10
nubriuska, для того, что ты хочешь используется pygame, а проблемы, которые ты испытываешь, это проблемы винды и возможно, ты не правильно ставишь бибилотеку. Разбирайся с установкой библиотек.
0
0 / 0 / 0
Регистрация: 02.03.2016
Сообщений: 8
13.03.2016, 20:07
Для установки библиотеки нужно указать путь к файлу whl
Миниатюры
Сделать игру-кликалку по появляющимся в рандомном месте фигурам  
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
13.03.2016, 20:23
Цитата Сообщение от Oberberg Посмотреть сообщение
Для установки библиотеки нужно указать путь к файлу whl
Если файл лежит в рабочей директории, то не надо
0
0 / 0 / 0
Регистрация: 14.12.2014
Сообщений: 27
14.03.2016, 18:27  [ТС]
времени не так много на работу поэтому я пока что без paygame, почти сделал только я не понимаю ошибку когда я нажимаю начать игру вылезает куча окон но обьект двигается помогите исправить!


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
from tkinter import *
import math 
import time
from tkinter.messagebox import *
from random import randrange as rnd
 
 
 
 
 
 
 
 
 
x = 0
y = 0
r = 0
points = 0
 
 
 
 
  
def new_ball():
     win2=Tk()
     canva2 = Canvas(win2,width=800,height=550,bg='lightblue')
     canva2.pack()
     global x, y, r, res
     canva2.delete(ALL)
     res = canva2.create_text(300,20,text="Score: " + str(points))
     x = rnd(100,700)
     y = rnd(100,500)
     r = rnd(20,50)
     target = canva2.create_oval(x-r,y-r,x+r,y+r,fill = "yellow" , width=0)
     win2.after(rnd(100, 1000),new_ball)
     
    
def click(event):
    global points, miss, zero, res
    
    if abs(x-event.x) < r and abs(y-event.y)<r:
        points += 1
        canva2.delete(ALL)
        res = canva2.create_text(300,20,text="Score: "  + str(points ))
        win2.after(100,new_ball)
        canva2.bind('<Button-1>',click)
        
 
def close():
    if askyesno("Exit","Are you sure?"):
       win2.destroy()
 
 
 
       
win2=Tk()
win2.title("Start Menu")
canva=Canvas(win2,width=400,height=400,bg="Light Blue")
canva.pack(expand=YES,fill=BOTH)
win2.minsize(width=400,height=400)
win2.resizable(width=FALSE,height=FALSE)
 
but=Button(win2,
           text="Начать игру"
           ,width=25,height=5,
           bg="green", 
           command=new_ball)
but.place(x=100,y=100)
but2=Button(win2,
           text="Выйти из игры"
           ,width=25,height=5,
           bg="green",
           command=close)
but2.place(x=100,y=200)
lab=Label(win2,
          text="Catch a ball \n",
          font="Arrial 17",
          bg="Light Blue"
          )
lab.place(x=120,y=20)
 
 
 
            
mainloop()
Добавлено через 12 часов 39 минут
кто может помочь, почему окна постоянно вылезают

Добавлено через 1 час 57 минут
win2.after(rnd(100, 1000),new_ball)
из за него вылезает постоянные окна как я понял, но круг не двигается как решить проблему?

Добавлено через 4 часа 1 минуту
народ помогите соеденить 2 кода нужно при нажатии начать игру вышла игра со 2 кода и выйти из игры чтобы работало
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
from tkinter import *
from random import randrange as rnd
import time
 
def close():
    if askyesno("Exit","Are you sure?"):
       win.destroy()
 
 
 
 
       
win=Tk()
win.title("Start Menu")
canva=Canvas(win,width=400,height=400,bg="Light Blue")
canva.pack(expand=YES,fill=BOTH)
win.minsize(width=400,height=400)
win.resizable(width=FALSE,height=FALSE)
 
but=Button(win,
           text="Начать игру"
           ,width=25,height=5,
           bg="green", 
           )
but.place(x=100,y=100)
but2=Button(win,
           text="Выйти из игры"
           ,width=25,height=5,
           bg="green",
           command=close)
but2.place(x=100,y=200)
lab=Label(win,
          text="Catch a ball \n",
          font="Arrial 17",
          bg="Light Blue"
          )
lab.place(x=120,y=20)
вот 2 код

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
from tkinter import *
from random import randrange as rnd, choice 
import time
root = Tk()
root.geometry('800x600')
root.title("Поймай шарик!")
canv = Canvas(root,width=800,height=550,bg='lightblue')
canv.pack()
 
colors = ['lightyellow','lightgray','gray','pink','violet','brown','red','orange','yellow','green','cyan','blue','magenta','black','gray','lightgreen']
x = 0
y = 0
r = 0
points =0
miss = 0
zero = 0
def new_ball():
    global x, y, r, zero, res
    canv.delete(ALL)
    res = canv.create_text(300,20,text="заработал " + str(points)+ " очков"
                               +'/'+"промазал "+str(miss)+" раз"+'/'+
                               "проворонил "+str(zero)+" шаров", font = 'Arial 15')
    x = rnd(100,700)
    y = rnd(100,500)
    r = rnd(20,50)
    target = canv.create_oval(x-r,y-r,x+r,y+r,fill = choice(colors), width=0)
    root.after(rnd(500, 3000),new_ball)
    zero+=1
def click(event):
    global points, miss, zero, res
    if abs(x-event.x) < r/2 and abs(y-event.y)<r/2:
        points += 2
        zero-=1
    elif abs(x-event.x) < r and abs(y-event.y)<r:
        points += 1
        zero-=1
    else:
        miss += 1   
    canv.delete(ALL)
    res = canv.create_text(300,20,text="заработал " + str(points)+ " очков"
                               +'/'+"промазал "+str(miss)+"раз "+'/'+
                               "проворонил "+str(zero)+" шаров", font = 'Arial 15') 
 
root.after(1000,new_ball)        
canv.bind('<Button-1>',click)
mainloop()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.03.2016, 18:27
Помогаю со студенческими работами здесь

Всплывающея картинка в рандомном месте сайта
Подскажите пожалуйста может уже есть такой плагин (я не нашел). Нужно чтобы через определенный промежуток времени появлялась картинка на...

SDL: создать 10 кругов в рандомном месте, с рандомным радиусом
Программа должна создать 10 кругов в рандомном месте , с рандомным радиусом . И при нажатии на окружность она удаляется. Как мне...

Нарисовать звезду при клике мышки в рандомном месте
Здравствуйте, имеется код, нужно исправить ошибки: 1)Чтобы звезда рисовалась всегда, а не круг 2)Чтобы звезда рисовалась при левом...

Как сделать превью товара (картинку) ссылку на товар, а не отображение самой картинки в появляющимся окошке?
Как сделать превью товара (картинку) ссылку на товар, а не отображение самой картинки в появляющимся окошке?

Как сделать, чтобы при рандомном url выдавало 404?
Есть сайт. Который час не могу сделать redirect в 404 страницу. Например если пользователь введет любые символы, например...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru