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