from tkinter import *
import random
import time
class Ball:
def __init__(self, canvas, paddle, color):
self.canvas = canvas
self.paddle = paddle
self.id = canvas.create_oval(10, 10, 25, 25, fill=color)
self.canvas.move(self.id, 245, 100)
starts = [-3, -2, -1, 1, 2, 3]
random.shuffle(starts)
self.x = starts[0]
self.y = -3
self.canvas_height = self.canvas.winfo_height()
self.canvas_width = self.canvas.winfo_width()
self.hit_bottom = False
self.hit_count = 0
self.hit_counter = canvas.create_text((50, 50), text='Лох')
def hit_paddle(self, pos):
paddle_pos = self.canvas.coords(self.paddle.id)
if pos[2] >= paddle_pos[0] and pos[0] <= paddle_pos[2]:
if pos[3] >= paddle_pos[1] and pos[3] <= paddle_pos[3]:
self.x += self.paddle.x
return True
return False
def draw(self):
self.canvas.move(self.id, self.x, self.y)
pos = self.canvas.coords(self.id)
if pos[1] <= 0:
self.y = 3
if pos[3] >= self.canvas_height:
self.hit_bottom = True
if self.hit_paddle(pos) == True:
self.y = -3
self.hit_count += 1
text = f'Есть отбитие №{self.hit_count}' # text = 'Есть отбитие №%d' % self.hit_count
canvas.itemconfig(self.hit_counter, text=text)
if pos[0] <= 0:
self.x = 3
if pos[2] >=self.canvas_width:
self.x = -3
class Paddle:
def __init__(self, canvas, color):
self.canvas = canvas
self.id = canvas.create_rectangle(0, 0, 110, 10, fill=color)
self.canvas.move(self.id, 200, 300)
self.x = 0
self.started = False
self.canvas_width = self.canvas.winfo_width()
self.canvas.bind_all('<KeyPress-Left>', self.turn_left)
self.canvas.bind_all('<KeyPress-Right>', self.turn_right)
self.canvas.bind_all('<Button-1>', self.start_game)
def turn_left(self, evt):
self.x = -2
def turn_right(self, evt):
self.x = 2
def start_game(self, evt):
self.started = True
def draw(self):
self.canvas.move(self.id, self.x, 0)
pos = self.canvas.coords(self.id)
if pos[0] <= 0:
self.x = 0
elif pos[2] >= self.canvas_width:
self.x = 0
tk = Tk()
tk.title('Игра')
tk.resizable(0, 0)
tk.wm_attributes('-topmost', 1)
canvas
= Canvas(tk, width
=500, height
=400, bd
=0, highlightthickness
=0)canvas.pack()
tk.update()
paddle = Paddle(canvas, 'blue')
ball = Ball(canvas, paddle, 'red')
game_over_text = canvas.create_text(250, 200, text='Game Over', state='hidden')
while 1:
if ball.hit_bottom == False and paddle.started == True:
ball.draw()
paddle.draw()
if ball.hit_bottom == True:
time.sleep(1)
canvas.itemconfig(game_over_text, state='normal')
tk.update_idletasks()
tk.update()
time.sleep(0.01)
ZnJvbSB0a2ludGVyIGltcG9ydCAqCmltcG9ydCByYW5kb20KaW1wb3J0IHRpbWUKCmNsYXNzIEJhbGw6CiAgICBkZWYgX19pbml0X18oc2VsZiwgY2FudmFzLCBwYWRkbGUsIGNvbG9yKToKICAgICAgICBzZWxmLmNhbnZhcyA9IGNhbnZhcwogICAgICAgIHNlbGYucGFkZGxlID0gcGFkZGxlCiAgICAgICAgc2VsZi5pZCA9IGNhbnZhcy5jcmVhdGVfb3ZhbCgxMCwgMTAsIDI1LCAyNSwgZmlsbD1jb2xvcikKICAgICAgICBzZWxmLmNhbnZhcy5tb3ZlKHNlbGYuaWQsIDI0NSwgMTAwKQogICAgICAgIHN0YXJ0cyA9IFstMywgLTIsIC0xLCAxLCAyLCAzXQogICAgICAgIHJhbmRvbS5zaHVmZmxlKHN0YXJ0cykKICAgICAgICBzZWxmLnggPSBzdGFydHNbMF0KICAgICAgICBzZWxmLnkgPSAtMwogICAgICAgIHNlbGYuY2FudmFzX2hlaWdodCA9IHNlbGYuY2FudmFzLndpbmZvX2hlaWdodCgpCiAgICAgICAgc2VsZi5jYW52YXNfd2lkdGggPSBzZWxmLmNhbnZhcy53aW5mb193aWR0aCgpCiAgICAgICAgc2VsZi5oaXRfYm90dG9tID0gRmFsc2UKICAgICAgICBzZWxmLmhpdF9jb3VudCA9IDAKICAgICAgICBzZWxmLmhpdF9jb3VudGVyID0gY2FudmFzLmNyZWF0ZV90ZXh0KCg1MCwgNTApLCB0ZXh0PSfQm9C+0YUnKQogICAgZGVmIGhpdF9wYWRkbGUoc2VsZiwgcG9zKToKICAgICAgICBwYWRkbGVfcG9zID0gc2VsZi5jYW52YXMuY29vcmRzKHNlbGYucGFkZGxlLmlkKQogICAgICAgIGlmIHBvc1syXSA+PSBwYWRkbGVfcG9zWzBdIGFuZCBwb3NbMF0gPD0gcGFkZGxlX3Bvc1syXToKICAgICAgICAgICAgaWYgcG9zWzNdID49IHBhZGRsZV9wb3NbMV0gYW5kIHBvc1szXSA8PSBwYWRkbGVfcG9zWzNdOgogICAgICAgICAgICAgICAgc2VsZi54ICs9IHNlbGYucGFkZGxlLngKICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAgICAgcmV0dXJuIEZhbHNlCiAgICBkZWYgZHJhdyhzZWxmKToKICAgICAgICBzZWxmLmNhbnZhcy5tb3ZlKHNlbGYuaWQsIHNlbGYueCwgc2VsZi55KQogICAgICAgIHBvcyA9IHNlbGYuY2FudmFzLmNvb3JkcyhzZWxmLmlkKQogICAgICAgIGlmIHBvc1sxXSA8PSAwOgogICAgICAgICAgICBzZWxmLnkgPSAzCiAgICAgICAgaWYgcG9zWzNdID49IHNlbGYuY2FudmFzX2hlaWdodDoKICAgICAgICAgICAgc2VsZi5oaXRfYm90dG9tID0gVHJ1ZQogICAgICAgIGlmIHNlbGYuaGl0X3BhZGRsZShwb3MpID09IFRydWU6CiAgICAgICAgICAgIHNlbGYueSA9IC0zCiAgICAgICAgICAgIHNlbGYuaGl0X2NvdW50ICs9IDEKICAgICAgICAgICAgdGV4dCA9IGYn0JXRgdGC0Ywg0L7RgtCx0LjRgtC40LUg4oSWe3NlbGYuaGl0X2NvdW50fScgICMgdGV4dCA9ICfQldGB0YLRjCDQvtGC0LHQuNGC0LjQtSDihJYlZCcgJSBzZWxmLmhpdF9jb3VudAogICAgICAgICAgICBjYW52YXMuaXRlbWNvbmZpZyhzZWxmLmhpdF9jb3VudGVyLCB0ZXh0PXRleHQpCgogICAgICAgIGlmIHBvc1swXSA8PSAwOgogICAgICAgICAgICBzZWxmLnggPSAzCiAgICAgICAgaWYgcG9zWzJdID49c2VsZi5jYW52YXNfd2lkdGg6CiAgICAgICAgICAgIHNlbGYueCA9IC0zCmNsYXNzIFBhZGRsZToKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjYW52YXMsIGNvbG9yKToKICAgICAgICBzZWxmLmNhbnZhcyA9IGNhbnZhcwogICAgICAgIHNlbGYuaWQgPSBjYW52YXMuY3JlYXRlX3JlY3RhbmdsZSgwLCAwLCAxMTAsIDEwLCBmaWxsPWNvbG9yKQogICAgICAgIHNlbGYuY2FudmFzLm1vdmUoc2VsZi5pZCwgMjAwLCAzMDApCiAgICAgICAgc2VsZi54ID0gMAogICAgICAgIHNlbGYuc3RhcnRlZCA9IEZhbHNlCiAgICAgICAgc2VsZi5jYW52YXNfd2lkdGggPSBzZWxmLmNhbnZhcy53aW5mb193aWR0aCgpCiAgICAgICAgc2VsZi5jYW52YXMuYmluZF9hbGwoJzxLZXlQcmVzcy1MZWZ0PicsIHNlbGYudHVybl9sZWZ0KQogICAgICAgIHNlbGYuY2FudmFzLmJpbmRfYWxsKCc8S2V5UHJlc3MtUmlnaHQ+Jywgc2VsZi50dXJuX3JpZ2h0KQogICAgICAgIHNlbGYuY2FudmFzLmJpbmRfYWxsKCc8QnV0dG9uLTE+Jywgc2VsZi5zdGFydF9nYW1lKQogICAgZGVmIHR1cm5fbGVmdChzZWxmLCBldnQpOgogICAgICAgIHNlbGYueCA9IC0yCiAgICBkZWYgdHVybl9yaWdodChzZWxmLCBldnQpOgogICAgICAgIHNlbGYueCA9IDIKICAgIGRlZiBzdGFydF9nYW1lKHNlbGYsIGV2dCk6CiAgICAgICAgc2VsZi5zdGFydGVkID0gVHJ1ZQoKICAgIGRlZiBkcmF3KHNlbGYpOgogICAgICAgIHNlbGYuY2FudmFzLm1vdmUoc2VsZi5pZCwgc2VsZi54LCAwKQogICAgICAgIHBvcyA9IHNlbGYuY2FudmFzLmNvb3JkcyhzZWxmLmlkKQogICAgICAgIGlmIHBvc1swXSA8PSAwOgogICAgICAgICAgICBzZWxmLnggPSAwCiAgICAgICAgZWxpZiBwb3NbMl0gPj0gc2VsZi5jYW52YXNfd2lkdGg6CiAgICAgICAgICAgIHNlbGYueCA9IDAKCnRrID0gVGsoKQp0ay50aXRsZSgn0JjQs9GA0LAnKQp0ay5yZXNpemFibGUoMCwgMCkKdGsud21fYXR0cmlidXRlcygnLXRvcG1vc3QnLCAxKQpjYW52YXMgPSBDYW52YXModGssIHdpZHRoPTUwMCwgaGVpZ2h0PTQwMCwgYmQ9MCwgaGlnaGxpZ2h0dGhpY2tuZXNzPTApCmNhbnZhcy5wYWNrKCkKdGsudXBkYXRlKCkKCnBhZGRsZSA9IFBhZGRsZShjYW52YXMsICdibHVlJykKYmFsbCA9IEJhbGwoY2FudmFzLCBwYWRkbGUsICdyZWQnKQpnYW1lX292ZXJfdGV4dCA9IGNhbnZhcy5jcmVhdGVfdGV4dCgyNTAsIDIwMCwgdGV4dD0nR2FtZSBPdmVyJywgc3RhdGU9J2hpZGRlbicpCgp3aGlsZSAxOgogICAgaWYgYmFsbC5oaXRfYm90dG9tID09IEZhbHNlIGFuZCBwYWRkbGUuc3RhcnRlZCA9PSBUcnVlOgogICAgICAgIGJhbGwuZHJhdygpCiAgICAgICAgcGFkZGxlLmRyYXcoKQogICAgaWYgYmFsbC5oaXRfYm90dG9tID09IFRydWU6CiAgICAgICAgdGltZS5zbGVlcCgxKQogICAgICAgIGNhbnZhcy5pdGVtY29uZmlnKGdhbWVfb3Zlcl90ZXh0LCBzdGF0ZT0nbm9ybWFsJykKICAgIHRrLnVwZGF0ZV9pZGxldGFza3MoKQogICAgdGsudXBkYXRlKCkKICAgIHRpbWUuc2xlZXAoMC4wMSk=
Main.java:1: error: class, interface, or enum expected
from tkinter import *
^
Main.java:1: error: <identifier> expected
from tkinter import *
^
Main.java:1: error: ';' expected
from tkinter import *
^
Main.java:2: error: '.' expected
import random
^
Main.java:3: error: '.' expected
import time
^
Main.java:5: error: '{' expected
class Ball:
^
Main.java:19: error: unclosed character literal
self.hit_counter = canvas.create_text((50, 50), text='???')
^
Main.java:19: error: unclosed character literal
self.hit_counter = canvas.create_text((50, 50), text='???')
^
Main.java:37: error: unclosed character literal
text = f'???? ??????? ?{self.hit_count}' # text = '???? ??????? ?%d' % self.hit_count
^
Main.java:37: error: illegal character: '\u2116'
text = f'???? ??????? ?{self.hit_count}' # text = '???? ??????? ?%d' % self.hit_count
^
Main.java:37: error: <identifier> expected
text = f'???? ??????? ?{self.hit_count}' # text = '???? ??????? ?%d' % self.hit_count
^
Main.java:37: error: unclosed character literal
text = f'???? ??????? ?{self.hit_count}' # text = '???? ??????? ?%d' % self.hit_count
^
Main.java:37: error: illegal character: '#'
text = f'???? ??????? ?{self.hit_count}' # text = '???? ??????? ?%d' % self.hit_count
^
Main.java:37: error: class, interface, or enum expected
text = f'???? ??????? ?{self.hit_count}' # text = '???? ??????? ?%d' % self.hit_count
^
Main.java:37: error: unclosed character literal
text = f'???? ??????? ?{self.hit_count}' # text = '???? ??????? ?%d' % self.hit_count
^
Main.java:37: error: illegal character: '\u2116'
text = f'???? ??????? ?{self.hit_count}' # text = '???? ??????? ?%d' % self.hit_count
^
Main.java:37: error: unclosed character literal
text = f'???? ??????? ?{self.hit_count}' # text = '???? ??????? ?%d' % self.hit_count
^
Main.java:44: error: '{' expected
class Paddle:
^
Main.java:52: error: unclosed character literal
self.canvas.bind_all('<KeyPress-Left>', self.turn_left)
^
Main.java:52: error: unclosed character literal
self.canvas.bind_all('<KeyPress-Left>', self.turn_left)
^
Main.java:53: error: unclosed character literal
self.canvas.bind_all('<KeyPress-Right>', self.turn_right)
^
Main.java:53: error: unclosed character literal
self.canvas.bind_all('<KeyPress-Right>', self.turn_right)
^
Main.java:54: error: unclosed character literal
self.canvas.bind_all('<Button-1>', self.start_game)
^
Main.java:54: error: unclosed character literal
self.canvas.bind_all('<Button-1>', self.start_game)
^
Main.java:71: error: unclosed character literal
tk.title('????')
^
Main.java:71: error: unclosed character literal
tk.title('????')
^
Main.java:73: error: unclosed character literal
tk.wm_attributes('-topmost', 1)
^
Main.java:73: error: unclosed character literal
tk.wm_attributes('-topmost', 1)
^
Main.java:78: error: unclosed character literal
paddle = Paddle(canvas, 'blue')
^
Main.java:78: error: unclosed character literal
paddle = Paddle(canvas, 'blue')
^
Main.java:79: error: unclosed character literal
ball = Ball(canvas, paddle, 'red')
^
Main.java:79: error: unclosed character literal
ball = Ball(canvas, paddle, 'red')
^
Main.java:80: error: unclosed character literal
game_over_text = canvas.create_text(250, 200, text='Game Over', state='hidden')
^
Main.java:80: error: unclosed character literal
game_over_text = canvas.create_text(250, 200, text='Game Over', state='hidden')
^
Main.java:80: error: unclosed character literal
game_over_text = canvas.create_text(250, 200, text='Game Over', state='hidden')
^
Main.java:80: error: unclosed character literal
game_over_text = canvas.create_text(250, 200, text='Game Over', state='hidden')
^
Main.java:88: error: unclosed character literal
canvas.itemconfig(game_over_text, state='normal')
^
Main.java:88: error: unclosed character literal
canvas.itemconfig(game_over_text, state='normal')
^
Main.java:91: error: reached end of file while parsing
time.sleep(0.01)
^
39 errors