42 lines
1.4 KiB
Plaintext
42 lines
1.4 KiB
Plaintext
from WPFObjects import RectangleWPF, ObjectUnderPoint
|
||||
from WPFObjects import Colors, Window, OnMouseDown
|
||||
from PABCSystem import Random, Inc, Milliseconds
|
||||
|
||||
CountSquares = 10
|
||||
StatusRect: RectangleWPF
|
||||
CurrentDigit = 1
|
||||
Mistakes = 0
|
||||
|
||||
def DrawStatusText():
|
||||
if CurrentDigit <= CountSquares:
|
||||
StatusRect.Text = ('Удалено квадратов: ' + str(CurrentDigit-1)
|
||||
+ '\tОшибок: ' + str(Mistakes))
|
||||
else:
|
||||
StatusRect.Text = ('Игра окончена. Время: ' + str(Milliseconds // 1000)
|
||||
+ ' с.\tОшибок: ' + str(Mistakes))
|
||||
|
||||
|
||||
def MyMouseDown(x: float, y: float, mb: int):
|
||||
ob = ObjectUnderPoint(x, y)
|
||||
if ob is RectangleWPF and ob != StatusRect:
|
||||
if ob.Number == CurrentDigit:
|
||||
ob.Destroy()
|
||||
Inc(CurrentDigit)
|
||||
DrawStatusText()
|
||||
else:
|
||||
ob.Color = Colors.Red
|
||||
Inc(Mistakes)
|
||||
DrawStatusText()
|
||||
|
||||
|
||||
Window.Title = 'Игра: удали все квадраты по порядку'
|
||||
for i in range(1, CountSquares + 1):
|
||||
x = Random(Window.Width - 50)
|
||||
y = Random(Window.Height - 100)
|
||||
ob = new RectangleWPF(x, y, 50, 50, Colors.LightGreen, 1)
|
||||
ob.FontSize = 25
|
||||
ob.Number = i
|
||||
StatusRect = new RectangleWPF(0, Window.Height - 40,
|
||||
Window.Width, 40, Colors.LightBlue)
|
||||
DrawStatusText()
|
||||
OnMouseDown = MyMouseDown
|