fork download
  1. from tkinter import *
  2. import random
  3. import time
  4.  
  5. class Ball:
  6. def __init__(self, canvas, paddle, color):
  7. self.canvas = canvas
  8. self.paddle = paddle
  9. self.id = canvas.create_oval(10, 10, 25, 25, fill=color)
  10. self.canvas.move(self.id, 245, 100)
  11. starts = [-3, -2, -1, 1, 2, 3]
  12. random.shuffle(starts)
  13. self.x = starts[0]
  14. self.y = -3
  15. self.canvas_height = self.canvas.winfo_height()
  16. self.canvas_width = self.canvas.winfo_width()
  17. self.hit_bottom = False
  18. self.hit_count = 0
  19. self.hit_counter = canvas.create_text((50, 50), text='Лох')
  20. def hit_paddle(self, pos):
  21. paddle_pos = self.canvas.coords(self.paddle.id)
  22. if pos[2] >= paddle_pos[0] and pos[0] <= paddle_pos[2]:
  23. if pos[3] >= paddle_pos[1] and pos[3] <= paddle_pos[3]:
  24. self.x += self.paddle.x
  25. return True
  26. return False
  27. def draw(self):
  28. self.canvas.move(self.id, self.x, self.y)
  29. pos = self.canvas.coords(self.id)
  30. if pos[1] <= 0:
  31. self.y = 3
  32. if pos[3] >= self.canvas_height:
  33. self.hit_bottom = True
  34. if self.hit_paddle(pos) == True:
  35. self.y = -3
  36. self.hit_count += 1
  37. text = f'Есть отбитие №{self.hit_count}' # text = 'Есть отбитие №%d' % self.hit_count
  38. canvas.itemconfig(self.hit_counter, text=text)
  39.  
  40. if pos[0] <= 0:
  41. self.x = 3
  42. if pos[2] >=self.canvas_width:
  43. self.x = -3
  44. class Paddle:
  45. def __init__(self, canvas, color):
  46. self.canvas = canvas
  47. self.id = canvas.create_rectangle(0, 0, 110, 10, fill=color)
  48. self.canvas.move(self.id, 200, 300)
  49. self.x = 0
  50. self.started = False
  51. self.canvas_width = self.canvas.winfo_width()
  52. self.canvas.bind_all('<KeyPress-Left>', self.turn_left)
  53. self.canvas.bind_all('<KeyPress-Right>', self.turn_right)
  54. self.canvas.bind_all('<Button-1>', self.start_game)
  55. def turn_left(self, evt):
  56. self.x = -2
  57. def turn_right(self, evt):
  58. self.x = 2
  59. def start_game(self, evt):
  60. self.started = True
  61.  
  62. def draw(self):
  63. self.canvas.move(self.id, self.x, 0)
  64. pos = self.canvas.coords(self.id)
  65. if pos[0] <= 0:
  66. self.x = 0
  67. elif pos[2] >= self.canvas_width:
  68. self.x = 0
  69.  
  70. tk = Tk()
  71. tk.title('Игра')
  72. tk.resizable(0, 0)
  73. tk.wm_attributes('-topmost', 1)
  74. canvas = Canvas(tk, width=500, height=400, bd=0, highlightthickness=0)
  75. canvas.pack()
  76. tk.update()
  77.  
  78. paddle = Paddle(canvas, 'blue')
  79. ball = Ball(canvas, paddle, 'red')
  80. game_over_text = canvas.create_text(250, 200, text='Game Over', state='hidden')
  81.  
  82. while 1:
  83. if ball.hit_bottom == False and paddle.started == True:
  84. ball.draw()
  85. paddle.draw()
  86. if ball.hit_bottom == True:
  87. time.sleep(1)
  88. canvas.itemconfig(game_over_text, state='normal')
  89. tk.update_idletasks()
  90. tk.update()
  91. time.sleep(0.01)
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
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
stdout
Standard output is empty