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. def hit_paddle(self, pos):
  20. paddle_pos = self.canvas.coords(self.paddle.id)
  21. if pos[2] >= paddle_pos[0] and pos[0] <= paddle_pos[2]:
  22. if pos[3] >= paddle_pos[1] and pos[3] <= paddle_pos[3]:
  23. self.x += self.paddle.x
  24. return True
  25. return False
  26. def draw(self):
  27. self.canvas.move(self.id, self.x, self.y)
  28. pos = self.canvas.coords(self.id)
  29. if pos[1] <= 0:
  30. self.y = 3
  31. if pos[3] >= self.canvas_height:
  32. self.hit_bottom = True
  33. if self.hit_paddle(pos) == True:
  34. self.y = -3
  35. self.hit_count += 1
  36. print('Есть отбитие №', self.hit_count)
  37.  
  38. if pos[0] <= 0:
  39. self.x = 3
  40. if pos[2] >=self.canvas_width:
  41. self.x = -3
  42. class Paddle:
  43. def __init__(self, canvas, color):
  44. self.canvas = canvas
  45. self.id = canvas.create_rectangle(0, 0, 110, 10, fill=color)
  46. self.canvas.move(self.id, 200, 300)
  47. self.x = 0
  48. self.started = False
  49. self.canvas_width = self.canvas.winfo_width()
  50. self.canvas.bind_all('<KeyPress-Left>', self.turn_left)
  51. self.canvas.bind_all('<KeyPress-Right>', self.turn_right)
  52. self.canvas.bind_all('<Button-1>', self.start_game)
  53. def turn_left(self, evt):
  54. self.x = -2
  55. def turn_right(self, evt):
  56. self.x = 2
  57. def start_game(self, evt):
  58. self.started = True
  59.  
  60. def draw(self):
  61. self.canvas.move(self.id, self.x, 0)
  62. pos = self.canvas.coords(self.id)
  63. if pos[0] <= 0:
  64. self.x = 0
  65. elif pos[2] >= self.canvas_width:
  66. self.x = 0
  67.  
  68. tk = Tk()
  69. tk.title('Игра')
  70. tk.resizable(0, 0)
  71. tk.wm_attributes('-topmost', 1)
  72. canvas = Canvas(tk, width=500, height=400, bd=0, highlightthickness=0)
  73. canvas.pack()
  74. tk.update()
  75.  
  76. paddle = Paddle(canvas, 'blue')
  77. ball = Ball(canvas, paddle, 'red')
  78. game_over_text = canvas.create_text(250, 200, text='Game Over', state='hidden')
  79.  
  80. while 1:
  81. if ball.hit_bottom == False and paddle.started == True:
  82. ball.draw()
  83. paddle.draw()
  84. if ball.hit_bottom == True:
  85. time.sleep(1)
  86. canvas.itemconfig(game_over_text, state='normal')
  87. tk.update_idletasks()
  88. tk.update()
  89. 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:36: error: unclosed character literal
            print('???? ??????? ?', self.hit_count)
                  ^
Main.java:36: error: illegal character: '\u2116'
            print('???? ??????? ?', self.hit_count)
                                ^
Main.java:36: error: unclosed character literal
            print('???? ??????? ?', self.hit_count)
                                 ^
Main.java:42: error: '{' expected
class Paddle:
            ^
Main.java:50: error: unclosed character literal
        self.canvas.bind_all('<KeyPress-Left>', self.turn_left)
                             ^
Main.java:50: error: unclosed character literal
        self.canvas.bind_all('<KeyPress-Left>', self.turn_left)
                                             ^
Main.java:51: error: unclosed character literal
        self.canvas.bind_all('<KeyPress-Right>', self.turn_right)
                             ^
Main.java:51: error: unclosed character literal
        self.canvas.bind_all('<KeyPress-Right>', self.turn_right)
                                              ^
Main.java:52: error: unclosed character literal
        self.canvas.bind_all('<Button-1>', self.start_game)
                             ^
Main.java:52: error: unclosed character literal
        self.canvas.bind_all('<Button-1>', self.start_game)
                                        ^
Main.java:69: error: unclosed character literal
tk.title('????')
         ^
Main.java:69: error: unclosed character literal
tk.title('????')
              ^
Main.java:71: error: unclosed character literal
tk.wm_attributes('-topmost', 1)
                 ^
Main.java:71: error: unclosed character literal
tk.wm_attributes('-topmost', 1)
                          ^
Main.java:76: error: unclosed character literal
paddle = Paddle(canvas, 'blue')
                        ^
Main.java:76: error: unclosed character literal
paddle = Paddle(canvas, 'blue')
                             ^
Main.java:77: error: unclosed character literal
ball = Ball(canvas, paddle, 'red')
                            ^
Main.java:77: error: unclosed character literal
ball = Ball(canvas, paddle, 'red')
                                ^
Main.java:78: error: unclosed character literal
game_over_text = canvas.create_text(250, 200, text='Game Over', state='hidden')
                                                   ^
Main.java:78: error: unclosed character literal
game_over_text = canvas.create_text(250, 200, text='Game Over', state='hidden')
                                                             ^
Main.java:78: error: unclosed character literal
game_over_text = canvas.create_text(250, 200, text='Game Over', state='hidden')
                                                                      ^
Main.java:78: error: unclosed character literal
game_over_text = canvas.create_text(250, 200, text='Game Over', state='hidden')
                                                                             ^
Main.java:86: error: unclosed character literal
        canvas.itemconfig(game_over_text, state='normal')
                                                ^
Main.java:86: error: unclosed character literal
        canvas.itemconfig(game_over_text, state='normal')
                                                       ^
Main.java:89: error: reached end of file while parsing
    time.sleep(0.01)
                    ^
31 errors
stdout
Standard output is empty