驴友花雕 发表于 2025-9-23 11:29:10

【花雕动手做】基于Kitronik可编程开发板之叮咚壁球游戏



Kitronik ARCADE 是一款由英国教育科技公司 Kitronik 精心打造的可编程游戏机开发板,专为编程教学与创客实践而设计。该设备原生支持微软的 MakeCode Arcade 平台,用户可通过图形化或 JavaScript 编程方式,轻松创建、下载并运行复古风格的街机游戏。

它集成了彩色 LCD 显示屏、方向控制键、功能按键、蜂鸣器和震动马达等交互组件,提供完整的游戏输入输出体验。无论是初学者进行编程启蒙,还是创客群体开发交互式作品,Kitronik ARCADE 都能作为理想的硬件载体,助力创意实现。

凭借其开源友好、易于上手、兼容性强等特点,该开发板广泛应用于中小学编程课程、创客工作坊、游戏开发教学以及个人项目原型设计,深受教育者与技术爱好者的喜爱。



驴友花雕 发表于 2025-9-23 11:32:15

【花雕动手做】基于Kitronik可编程开发板之叮咚壁球游戏

作为学习、练习与尝试,这里创建一个叮咚壁球的小游戏。
打开网页版:https://arcade.makecode.com/,设置项目名称:叮咚壁球

MicroPython实验代码

class ActionKind(Enum):
    Walking = 0
    Idle = 1
    Jumping = 2
    normalForehand = 3
@namespace
class SpriteKind:
    Ball = SpriteKind.create()
    Court = SpriteKind.create()
    Title = SpriteKind.create()
def keepPlayerInBounds():
    if raqueteer.x + raqueteer.y <= 88:
      if controller.left.is_pressed():
            raqueteer.set_position(raqueteer.x + 1, raqueteer.y + 1)
      else:
            raqueteer.set_position(raqueteer.x + 1, raqueteer.y - 0)
    if raqueteer.x - raqueteer.y >= 78:
      if controller.right.is_pressed():
            raqueteer.set_position(raqueteer.x - 1, raqueteer.y + 1)
      else:
            raqueteer.set_position(raqueteer.x - 1, raqueteer.y - 0)
    if raqueteer.bottom < 57:
      raqueteer.bottom = 57
    if raqueteer.bottom > 121:
      raqueteer.bottom = 121
    if raqueteer.right > 194:
      raqueteer.right = 194
    if raqueteer.left < -28:
      raqueteer.left = -28
def hitBall():
    global ballServed, numFloorBounces
    music.set_volume(10)
    music.play_tone(2000, music.beat(BeatFraction.SIXTEENTH))
    music.set_volume(100)
    theBall.set_image(img("""
      . . . . . . . .
      . . 4 2 2 4 . .
      . . 2 8 8 2 . .
      . . . 8 8 . . .
      . . 6 . . 6 . .
      9 . . 6 6 . . 9
      . 9 9 . . 9 9 .
      . . . 9 9 . . .
      """))
    ballShadow.set_velocity(randint(-40, 40), -1 * raqueteer.bottom + 20)
    ballZStats.vy = randint(-45, -60)
    if ballServed == False:
      ballServed = True
    else:
      numFloorBounces = 0
def letBallBounce():
    global overAmount, score, newXVelMult, numFloorBounces, ballHeight, oldHighScore
    if ballShadow.y > 122:
      overAmount = ballShadow.y - 122
      ballShadow.y = ballShadow.y - overAmount
      ballShadow.vy = backWallBounceDecay * (-1 * ballShadow.vy)
      music.play_tone(1, music.beat(BeatFraction.SIXTEENTH))
      scene.camera_shake(2, 100)
    if ballShadow.y < 53:
      overAmount = ballShadow.y - 53
      ballShadow.y = ballShadow.y - overAmount
      ballShadow.vy = bounceDecay * (-1 * ballShadow.vy)
      score = score + 1
      music.play_tone(1, music.beat(BeatFraction.SIXTEENTH))
      theBall.set_image(img("""
            8 8
            8 8
            """))
      music.stop_all_sounds()
    if ballShadow.vy < 0:
      newXVelMult = -1.125
    else:
      newXVelMult = -0.8888888
    if ballShadow.x + ballShadow.y <= 94:
      overAmount = ballShadow.x + ballShadow.y - 94
      ballShadow.x = ballShadow.x - overAmount
      ballShadow.vx = bounceDecay * (newXVelMult * ballShadow.vx)
    if ballShadow.x - ballShadow.y >= 65:
      overAmount = ballShadow.x - ballShadow.y - 65
      ballShadow.x = ballShadow.x - overAmount
      ballShadow.vx = bounceDecay * (newXVelMult * ballShadow.vx)
    if ballZStats.y > 127:
      overAmount = ballZStats.y - 127
      ballZStats.y = ballZStats.y - overAmount
      ballZStats.vy = bounceDecay * (-1 * ballZStats.vy)
      music.play_tone(1, music.beat(BeatFraction.SIXTEENTH))
      if ballServed == True:
            numFloorBounces += 1
      if numFloorBounces > 1:
            ballHeight = ballZStats.y - 127
            if score > oldHighScore:
                game.show_long_text("New High Score: " + ("" + convert_to_text(score) + ("      Previous High Score: " + convert_to_text(oldHighScore))),
                  DialogLayout.TOP)
                oldHighScore = score
            else:
                game.show_long_text("Score: " + ("" + convert_to_text(score) + ("                High Score: " + convert_to_text(oldHighScore))),
                  DialogLayout.TOP)
            score = 0
            raqueteer.set_image(img("""
                ..........eee...............
                .........eeeee..............
                .........eeeee..............
                .........eeeee..............
                ..........eee...............
                ..........444...............
                .......777444777............
                ......77777777777..bbb......
                ......77777777777..b1b......
                .....7777777777777.b.b......
                .....7777777777777.b1b......
                .....44.7777777.44.b.b......
                ....444.7777777.444b1b......
                ....44..7777777..444bb......
                ....444.7777777...44b.......
                .....44.7777777....44.......
                ........fffffff....44.......
                ........fffffff.....b.......
                ........fffffff.............
                ........fff.fff.............
                ........fff.fff.............
                ........fff.fff.............
                ........444.444.............
                ........444.444.............
                ........444.444.............
                ........444.444.............
                ........444.444.............
                ........444.444.............
                ........fff.fff.............
                ........fff.fff.............
                """))
            resetBall()
    ballHeight = ballZStats.y - 127
    theBall.set_position(ballShadow.x, ballShadow.y + ballHeight - 1)
    theBall.z = ballShadow.y
    ballShadow.z = ballShadow.y + 1

def on_a_pressed():
    if ballHeight < -20:
      raqueteer.set_image(img("""
            ............eee..........bb...
            ...........eeeee........b1.b..
            ...........eeee4.......b1.1.b.
            ...........eee44......b1.1.1b.
            ............ee44......b.1.1b..
            ............444.......b1.1b...
            .........777444777....bbbb....
            ........77777777777.44........
            ........777777777774b4........
            .......77777777777774.........
            ........7777777777774.........
            ........447777777.44..........
            .........47777777.............
            ..........7777777.............
            ..........7777777.............
            ..........7777777.............
            ..........fffffff.............
            ..........fffffff.............
            ..........ffffffff............
            ..........fff.ffff............
            ..........fff..fff............
            ..........fff..fff............
            ..........444..444............
            .........444..444.............
            .........444..444.............
            ........444...444.............
            ........444...44..............
            ........44...fff..............
            .......fff...fff..............
            .......fff....................
            """))
    elif ballHeight < -10:
      raqueteer.set_image(img("""
            ............eee...............
            ...........eeeee..............
            ...........eeee4..............
            ...........eee44..............
            ............ee44..............
            ............444...............
            .........777444777............
            ........77777777777...........
            ........77777777777...........
            .......7777777777777..........
            ........777777777777..........
            ........447777777.44..........
            .........47777777.444...bbbbb.
            ..........7777777..444.b.1.1.b
            ..........7777777...4b4b1.1.1b
            ..........7777777....44b.1.1.b
            ..........fffffff......b1.1.1b
            ..........fffffff.......bbbbb.
            ..........ffffffff............
            ..........fff.ffff............
            ..........fff..fff............
            ..........fff..fff............
            ..........444..444............
            .........444..444.............
            .........444..444.............
            ........444...444.............
            ........444...44..............
            ........44...fff..............
            .......fff...fff..............
            .......fff....................
            """))
    else:
      raqueteer.set_image(img("""
            ............eee...............
            ...........eeeee..............
            ...........eeee4..............
            ...........eee44..............
            ............ee44..............
            ............444...............
            .........777444777............
            ........77777777777...........
            ........77777777777...........
            .......7777777777777..........
            ........777777777777..........
            ........447777777.44..........
            .........47777777.444.........
            ..........7777777..444........
            ..........7777777...4b4.......
            ..........7777777....44bbbb...
            ..........fffffff......b1.1b..
            ..........fffffff......b.1.1b.
            ..........ffffffff.....b1.1.1b
            ..........fff.ffff......b1.1.b
            ..........fff..fff.......b1.b.
            ..........fff..fff........bb..
            ..........444..444............
            .........444..444.............
            .........444..444.............
            ........444...444.............
            ........444...44..............
            ........44...fff..............
            .......fff...fff..............
            .......fff....................
            """))
    attemptHitForehand()
    animation.run_image_animation(raqueteer,
      [img("""
                ..........eee...............
                .......bbeeeee..............
                ......b.14eeee..............
                .....b.1.4eeee..............
                .....b1.14eee...............
                ......b1.1444...............
                .......b174447..............
                ........7777777.............
                .......77777777.............
                .......77777777.............
                .......77777777.............
                .......44777777.............
                ........4477777.............
                ........4477777.............
                .......44777777.............
                .......44777777.............
                .........ffffff.............
                .........ffffff.............
                .........ffffff.............
                .........ffffff.............
                .........ffffff.............
                .........fff444.............
                .........444444.............
                .........4444444............
                .........444.444............
                .........444.444............
                .........444..44............
                .........444..fff...........
                .........fff..fff...........
                .........fff................
                """),
            img("""
                ..........eee...............
                .........eeeee..............
                .........eeeee..............
                .........eeeee..............
                ..........eee...............
                ..........444...............
                .......777444777............
                ......77777777777...........
                ......77777777777...........
                .....7777777777777..........
                .....7777777777777..........
                .....44.7777777.44..........
                ....444.7777777.444.........
                ....44..7777777..44.........
                ....444.7777777.4b4.........
                .....44.7777777.44..........
                ........fffffffb............
                ........fffffff.............
                ........fffffff.............
                ........fff.fff.............
                ........fffbfff.............
                ........fff.fff.............
                ........444.444.............
                ........444.444.............
                ........444.444.............
                ........444.444.............
                ........444.444.............
                ........444.444.............
                ........fff.fff.............
                ........fff.fff.............
                """)],
      150,
      False)
controller.A.on_event(ControllerButtonEvent.PRESSED, on_a_pressed)

def attemptHitBackhand():
    global xPositionDifference
    if abs(raqueteer.bottom - ballShadow.bottom) < 9:
      xPositionDifference = ballShadow.x - raqueteer.x
      if xPositionDifference > -17 and xPositionDifference < 1 and ballHeight > -28:
            hitBall()

def on_b_pressed():
    if ballHeight < -20:
      raqueteer.set_image(img("""
            ..bb.....eee..................
            .b.1b...eeeee.................
            b.1.1b..4eeee.................
            b1.1.1b.44eee.................
            .b1.1.b.44ee..................
            ..b1.1b..444..................
            ...bbbb.744777................
            ......777777777...............
            ......777777777...............
            ......777777777...............
            .....7777777777...............
            .....447777777................
            ......44777777................
            ......44777777................
            .....444777777................
            .....447777777................
            .......fffffff................
            .......fffffff................
            ......ffffffff................
            ......ffff.fff................
            ......fff..fff................
            ......fff..fff................
            ......444..444................
            .......444..444...............
            .......444..444...............
            .......444...444..............
            ........44...444..............
            ........fff...44..............
            ........fff...fff.............
            ..............fff.............
            """))
    elif ballHeight < -10:
      raqueteer.set_image(img("""
            .........eee..................
            ........eeeee.................
            ........4eeee.................
            ........44eee.................
            ........44ee..................
            .........444..................
            ........744777................
            ......777777777...............
            ......777777777...............
            .....7777777777...............
            .bbbb7777777777...............
            b.1.1447777777................
            b1.1.144777777................
            b.1.1.44777777................
            b1.1.44.777777................
            .bbbb44.777777................
            .......fffffff................
            .......fffffff................
            ......ffffffff................
            ......ffff.fff................
            ......fff..fff................
            ......fff..fff................
            ......444..444................
            .......444..444...............
            .......444..444...............
            .......444...444..............
            ........44...444..............
            ........fff...44..............
            ........fff...fff.............
            ..............fff.............
            """))
    else:
      raqueteer.set_image(img("""
            .........eee..................
            ........eeeee.................
            ........4eeee.................
            ........44eee.................
            ........44ee..................
            .........444..................
            ........744777................
            ......777777777...............
            ......777777777...............
            ......777777777...............
            .....7777777777...............
            .....447777777................
            ......44777777................
            ......44777777................
            .....444777777................
            .....447777777................
            ...bbbbfffffff................
            ..b1.1bfffffff................
            .b1.1.bfffffff................
            b1.1.1ffff.fff................
            b.1.1bfff..fff................
            .b.1b.fff..fff................
            ..bb..444..444................
            .......444..444...............
            .......444..444...............
            .......444...444..............
            ........44...444..............
            ........fff...44..............
            ........fff...fff.............
            ..............fff.............
            """))
    attemptHitBackhand()
    animation.run_image_animation(raqueteer,
      [img("""
                ............eee...............
                ...........eeeee.......bb.....
                ...........eeee4......b1.b....
                ...........eeee4.....b1.1.b...
                ............ee44....b1.1.1b...
                ............444.....b.1.1b....
                .........777444777..bb.1b.....
                ........77777777777.bbbb......
                ........77777777777b..........
                .......7777777777774..........
                .......7777777777774..........
                .......44.7777777.44..........
                ......444.7777777.............
                ......44..7777777.............
                ......444.7777777.............
                .......44.7777777.............
                ..........fffffff.............
                ..........fffffff.............
                ..........ffffffff............
                ..........fff.ffff............
                ..........fff..fff............
                ..........fff..444............
                ..........444..444............
                .........444...444............
                .........444...444............
                ........444....444............
                ........444....fff............
                ........44.....fff............
                .......fff....................
                .......fff....................
                """),
            img("""
                ..........eee...............
                .........eeeee..............
                .........eeeee..............
                .........eeeee..............
                ..........eee...............
                ..........444...............
                .......777444777............
                ......77777777777..bbb......
                ......77777777777..b1b......
                .....7777777777777.b.b......
                .....7777777777777.b1b......
                .....44.7777777.44.b.b......
                ....444.7777777.444b1b......
                ....44..7777777..444bb......
                ....444.7777777...44b.......
                .....44.7777777....44.......
                ........fffffff....44.......
                ........fffffff.....b.......
                ........fffffff.............
                ........fff.fff.............
                ........fff.fff.............
                ........fff.fff.............
                ........444.444.............
                ........444.444.............
                ........444.444.............
                ........444.444.............
                ........444.444.............
                ........444.444.............
                ........fff.fff.............
                ........fff.fff.............
                """),
            img("""
                ..........eee...............
                .........eeeee..............
                .........eeeee..............
                .........eeeee..............
                ..........eee...............
                ..........444...............
                .......777444777............
                ......77777777777...........
                ......77777777777...........
                .....7777777777777..........
                .....7777777777777..........
                .....44.7777777.44..........
                ....444.7777777.444.........
                ....44..7777777..44.........
                ....444.7777777.4b4.........
                .....44.7777777.44..........
                ........fffffffb............
                ........fffffff.............
                ........fffffff.............
                ........fff.fff.............
                ........fffbfff.............
                ........fff.fff.............
                ........444.444.............
                ........444.444.............
                ........444.444.............
                ........444.444.............
                ........444.444.............
                ........444.444.............
                ........fff.fff.............
                ........fff.fff.............
                """)],
      150,
      False)
controller.B.on_event(ControllerButtonEvent.PRESSED, on_b_pressed)

def doPlayerMovement():
    global backAndForthValue
    raqueteer.z = raqueteer.bottom
    if not (controller.A.is_pressed() or controller.B.is_pressed()):
      if controller.left.is_pressed() or controller.right.is_pressed():
            if game.runtime() / 150 % 2 < 0.5:
                raqueteer.set_image(img("""
                  ............................
                  ..........eee...............
                  .........eeeee..............
                  .........eeeee..............
                  .........eeeee..............
                  ..........eee...............
                  ..........444...............
                  .......777444777............
                  ......77777777777...........
                  ......77777777777...........
                  .....7777777777777..........
                  .....7777777777777..........
                  .....44.7777777.44..........
                  ....444.7777777.444.........
                  ....44..7777777..44.........
                  ....444.7777777.4b4.........
                  .....44.7777777.44..........
                  ........fffffffb............
                  ........fffffff.............
                  ........fffffff.............
                  ........fff.fff.............
                  .......ffffbffff............
                  .......fff...fff............
                  .......444...444............
                  .......444...444............
                  .......444...444............
                  ......444.....444...........
                  ......444.....444...........
                  ......fff.....fff...........
                  ......fff.....fff...........
                  """))
            else:
                raqueteer.set_image(img("""
                  ..........eee...............
                  .........eeeee..............
                  .........eeeee..............
                  .........eeeee..............
                  ..........eee...............
                  ..........444...............
                  .......777444777............
                  ......77777777777...........
                  ......77777777777...........
                  .....7777777777777..........
                  .....7777777777777..........
                  .....44.7777777.44..........
                  ....444.7777777.444.........
                  ....44..7777777..44.........
                  ....444.7777777.4b4.........
                  .....44.7777777.44..........
                  ........fffffffb............
                  ........fffffff.............
                  ........fffffff.............
                  ........fff.fff.............
                  ........fffbfff.............
                  ........fff.fff.............
                  ........444.444.............
                  ........444.444.............
                  ........444.444.............
                  ........444.444.............
                  ........444.444.............
                  ........444.444.............
                  ........fff.fff.............
                  ........fff.fff.............
                  """))
      else:
            if controller.up.is_pressed() or controller.down.is_pressed():
                backAndForthValue = game.runtime() / 150 % 2
                if backAndForthValue < 0.5:
                  raqueteer.set_image(img("""
                        ..........eee...............
                        .........eeeee..............
                        .........eeeee..............
                        .........eeeee..............
                        ..........eee...............
                        ..........444...............
                        .......777444777............
                        ......77777777777...........
                        ......77777777777...........
                        .....7777777777777..........
                        .....7777777777777..........
                        .....44.7777777.44..........
                        ....444.7777777.444.........
                        ....44..7777777..44.........
                        ....444.7777777.4b4.........
                        .....44.7777777.44..........
                        ........fffffffb............
                        ........fffffff.............
                        ........fffffff.............
                        ........fff.fff.............
                        ........fffbfff.............
                        ........fff.fff.............
                        ........444.444.............
                        ........444.444.............
                        ........444.444.............
                        ........444.444.............
                        ........444.444.............
                        ........444.fff.............
                        ........444.fff.............
                        ........fff.................
                        ........fff.................
                        """))
                elif backAndForthValue < 1.5:
                  raqueteer.set_image(img("""
                        ..........eee...............
                        .........eeeee..............
                        .........eeeee..............
                        .........eeeee..............
                        ..........eee...............
                        ..........444...............
                        .......777444777............
                        ......77777777777...........
                        ......77777777777...........
                        .....7777777777777..........
                        .....7777777777777..........
                        .....44.7777777.44..........
                        ....444.7777777.444.........
                        ....44..7777777..44.........
                        ....444.7777777.4b4.........
                        .....44.7777777.44..........
                        ........fffffffb............
                        ........fffffff.............
                        ........fffffff.............
                        ........fff.fff.............
                        ........fffbfff.............
                        ........fff.fff.............
                        ........444.444.............
                        ........444.444.............
                        ........444.444.............
                        ........444.444.............
                        ........444.444.............
                        ........fff.444.............
                        ........fff.444.............
                        ............fff.............
                        ............fff.............
                        """))
def resetBall():
    global bounceDecay, backWallBounceDecay, numFloorBounces, ballServed
    mySprite2.z = -1
    theBall.z = 2
    ballShadow.vx = 0
    ballShadow.vy = 0
    ballShadow.set_position(80, 78)
    ballZStats.ay = 160
    ballZStats.vy = 20
    ballZStats.y = 105
    bounceDecay = 0.9
    backWallBounceDecay = 0.5
    numFloorBounces = 0
    ballServed = False
def attemptHitForehand():
    global xPositionDifference
    if abs(raqueteer.bottom - ballShadow.bottom) < 9:
      xPositionDifference = ballShadow.x - raqueteer.x
      if xPositionDifference < 17 and xPositionDifference > -5 and ballHeight > -35:
            hitBall()
backAndForthValue = 0
xPositionDifference = 0
ballHeight = 0
newXVelMult = 0
bounceDecay = 0
backWallBounceDecay = 0
overAmount = 0
numFloorBounces = 0
ballServed = False
score = 0
oldHighScore = 0
mySprite2: Sprite = None
ballShadow: Sprite = None
ballZStats: Sprite = None
theBall: Sprite = None
raqueteer: Sprite = None
courts = [img("""
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111
      11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f1111
      1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111
      11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f1111111
      1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111
      11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f1111111111
      1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111
      11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f1111111111111
      1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111111111111
      fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111ddd
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111ddd111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111dddd111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f11ddd1111111111
      ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfdd1111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfdddddddd1111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111111ddddddd
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfd11111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f1dd111111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111dd1111111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111dd11111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f1111111dd111111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111dd1111
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111111111dd11
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f1111111111111dd
      111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      1111111111111111111111111111eeee1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      111111111111111111111111111eeeee1111111111111111111111111111111111111111111111111111111111111111111111111111141111111111111111111111111111111111f111111111111111
      111111111111111111111111111ee444111111111bbb1111111111111111111111111111111111111111111111111111111199999914411444111111111111111111111111111111f111111111111111
      111111111111111111111111111ee44411111111b1d1b111111111111111111111111111111111111111111119991999999911199999144122441111111111111111111111111111f111111111111111
      111111111111111111111111111e44441111111b1d1d1b11111111111111111111111111111111999919999911111119999999911111111111241111111111111111111111111111f111111111111111
      11111111111111111111111111144441111111b1d1d1db11111111111111111111191919919991111111119919999999111555555551118881241111111111111111111111111111f111111111111111
      11111111111111111111111177744111111111bd1d1d1b11111111111111199199919111911199991999991111155555555155555551118881241111111111111111111111111111f111111111111111
      11111111111111111111117777777111111111b1d1d1b111111111111111919919111199199919111199199999991111155555551111118881241111111111111111111111111111f111111111111111
      11111111111111111111147777777711111111bd1d1b1111111111111111111111919919991199111111111111119999999999115555111111241111111111111111111111111111f111111111111111
      11111111111111111111444777777771111111bbbbb11111111111111111111111111111111111919999919991111111111111999991141122441111111111111111111111111111f111111111111111
      1111111111111111111144777777777711144b1111111111111111111111111111111111111111111111111119999919999991111114114444111111111111111111111111111111f111111111111111
      111111111111111111111777777177741144411111111111111111111111111111111111111111111111111111111111111119999991441111111111111111111111111111111111f111111111111111
      11111111111111111111777777411744444b411111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111
      fffffffffffffffffffff7777444fff444fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff111111111111111
      ddddddddddddddddddfffff77dd4dddd4dddddddddddd2dddddddddddddddddd2ddddddddddddddd2ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf11111111111111
      dddddddddddddddddfffffffffdddddddddddddddddd2ddddddddddddddddddd222222222222222222ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf1111111111111
      ddddddddddddddddfffffffffffddddddddddddddddd2ddddddddddddddddddd2dddddddddddddddd2dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf111111111111
      ddddddddddddddddfffffdffffffdddddddddddddddddddddddddddddddddddd222222222222222222ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf11111111111
      dddddddddddddddd4fffdddffff4dddddddddddddddd2ddddddddddddddddddd2ddddddddddddddddd2ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf1111111111
      ddddddddddddddd444fddddddf444dddddddddddddd2dddddddddddddddddddd2ddddddddddddddddd2dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf111111111
      dddddddddddddd444ddddddddd444ddddddddddddddddddddddddddddddddddd2ddddddddddddddddd2ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf11111111
      ddddddddddddd444ddddddddd444ddddddddddddddd2dddddddddddddddddddd2dddddddddddddddddd2ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf1111111
      dddddddddddd444ddddddddd444ddddddddddddddddddddddddddddddddddddd2dddddddddddddddddd2dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf111111
      dddddddddddf44ddddddddd444dddddddddddddddd2ddddddddddddddddddddd2dddddddddddddddddd2ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf11111
      ddddddddddfffddddddddd444ddddddddddddddddddddddddddddddddddddddd2ddddddddddddddddddd2ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf1111
      dddddddddddfffdddddddfffffdddddddddddddddd2ddddddddddddddddddddd2ddddddddddddddddddd2dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf111
      ddddddddddddffdddddddfffffdddddddddddddddddddddddddddddddddddddd2ddddddddddddddddddd2dddddddddddddddddddddddddbbbddddddddddddddddddddddddddddddddddddddddddddf11
      ddddddddddddddddddddddddddddddddddddddddd2dddddddddddddddddddddd2dddddddddddddddddddd2ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf1
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd2dddddddddddddddddddd2dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf
      ddddddddddddddddddddddddddddddddddddddddd2dddddddddddddddddddddd2dddddddddddddddddddd2dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd2ddddddddddddddddddddd2ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddd2ddddddddddddddddddddddd2ddddddddddddddddddddd2ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd2ddddddddddddddddddddd2ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddd2ddddddddddddddddddddddd2dddddddddddddddddddddd2dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd2dddddddddddddddddddddd2dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      ddddddddddddddddddddddddddddddddddddddd2dddddddddddddddddddddddd2dddddddddddddddddddddd2dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd2ddddddddddddddddddddddd2ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      ddddddddddddddddddddddddddddddddddddddd2dddddddddddddddddddddddd2ddddddddddddddddddddddd2ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      ddddddddddddddddddddddddddddddddddddddd2dddddddddddddddddddddddd2ddddddddddddddddddddddd2ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddd2ddddddddddddddddddddddddd2222222222222222222222222ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddd2ddddddddddddddddddddddddd2dddddddddddddddddddddddd2dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddd2ddddddddddddddddddddddddd2dddddddddddddddddddddddd2dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      ddddddddddddddddddddddddddddddddddddd2dddddddddddddddddddddddddd2dddddddddddddddddddddddd2dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      ddddddddddddddddddddddddddddddddddddd2dddddddddddddddddddddddddd222222222222222222222222222ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      ddddddddddddddddddddddddddddddddddddd2dddddddddddddddddddddddddd2ddddddddddddddddddddddddd2ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      """),
    img("""
      11111111111111111111111111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111111111111111111111111111111111111
      11111111111111111111111111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111111111111111111111111111111111111
      11111111111111111111111111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111111111111111111111111111111111111
      11111111111111111111111111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111111111111111111111111111111111111
      11111111111111111111111111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111111111111111111111111111111111111
      1111111111111111111111111111111111111dfddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfd1111111111111111111111111111111111111
      11111111111111111111111111111111111dd1f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f1dd11111111111111111111111111111111111
      111111111111111111111111111111111dd111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f111dd111111111111111111111111111111111
      111111111111111111111111111111ddd11111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111ddd111111111111111111111111111111
      1111111111111111111111111111dd11111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111111dd1111111111111111111111111111
      1111111111111111111111111ddd1111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f1111111111ddd1111111111111111111111111
      1111111111111111111111ddd1111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f1111111111111ddd1111111111111111111111
      11111111111111111111dd1111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f1111111111111111dd11111111111111111111
      11111111111111111ddd111111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111111ddd11111111111111111
      111111111111111dd111111111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111111111dd111111111111111
      111111111111ddd11111111111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111111111111111111111ddd111111111111
      1111111111dd11111111111111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111111111111111111111111dd1111111111
      1111111ddd1111111111111111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f1111111111111111111111111111ddd1111111
      1111ddd1111111111111111111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f1111111111111111111111111111111ddd1111
      11dd1111111111111111111111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f1111111111111111111111111111111111dd11
      dd111111111111111111111111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111111111111111111111111dd
      11111111111111111111111111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111111111111111111111111111111111111
      1111111111111111111111111111111111111dfddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfdd111111111111111111111111111111111111
      11111111111111111111111111111111111dd1f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f1dd11111111111111111111111111111111111
      111111111111111111111111111111111dd111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f111dd111111111111111111111111111111111
      11111111111111111111111111111111d11111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111d11111111111111111111111111111111
      111111111111111111111111111111dd111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111dd111111111111111111111111111111
      11111111111111111111111111111d11111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111111d11111111111111111111111111111
      111111111111111111111111111dd111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111dd111111111111111111111111111
      1111111111111111111111111dd11111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111111111dd1111111111111111111111111
      111111111111111111111111d1111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f1111111111111d111111111111111111111111
      1111111111111111111111dd11111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111111111111dd1111111111111111111111
      111111111111111111111d1111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f1111111111111111d111111111111111111111
      1111111111111111111dd11111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111111111111111dd1111111111111111111
      11111111111111111dd1111111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f1111111111111111111dd11111111111111111
      1111111111111111d111111111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111111111d1111111111111111
      11111111111111dd1111111111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f1111111111111111111111dd11111111111111
      1111111111111d111111111111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111111111111d1111111111111
      11111111111dd1111111111111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f1111111111111111111111111dd11111111111
      111111111dd111111111111111111111111111fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf111111111111111111111111111dd111111111
      11111111d1111111111111111111111111111df1111111111111111111111111111111111111111111111111111111111111111111111111111111111fd1111111111111111111111111111d11111111
      111111dd111111111111111111111111111dd1f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f1dd111111111111111111111111111dd111111
      11111d1111111111111111111111111111d111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f111d1111111111111111111111111111d11111
      111dd1111111111111111111111111111d1111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f1111d1111111111111111111111111111dd111
      1dd11111111111111111111111111111d11111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111d11111111111111111111111111111dd1
      d111111111111111111111111111111d111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111d111111111111111111111111111111d
      11111111111111111111111111111dd1111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f1111111dd11111111111111111111111111111
      1111111111111111111111111111d111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111d1111111111111111111111111111
      111111111111111111111111111d1111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f1111111111d111111111111111111111111111
      11111111111111111111111111d11111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111111111d11111111111111111111111111
      111111111111111111111111dd111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111dd111111111111111111111111
      11111111111111111111111d11111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111111111111d11111111111111111111111
      1111111111111111111111d111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111d1111111111111111111111
      111111111111111111111d1111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f1111111111111111d111111111111111111111
      11111111111111111111d11111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f11111111111111111d11111111111111111111
      111111111111111111dd111111111111111111f1111111111111111111111111111111111111111111111111111111111111111111111111111111111f111111111111111111dd111111111111111111
      11111111111111111d11111111111111111111ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff11111111111111111111d11111111111111111
      1111111111111111d11111111111111111111fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf11111111111111111111d1111111111111111
      111111111111111d11111111111111111111fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf11111111111111111111d111111111111111
      1111111111111dd11111111111111111111fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf11111111111111111111dd1111111111111
      111111111111d111111111111111111111fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf111111111111111111111d111111111111
      11111111111d111111111111111111111fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf111111111111111111111d11111111111
      1111111111d111111111111111111111fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf111111111111111111111d1111111111
      11111111dd111111111111111111111fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf111111111111111111111dd11111111
      1111111d1111111111111111111111fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf1111111111111111111111d1111111
      111111d1111111111111111111111fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf1111111111111111111111d111111
      11111d1111111111111111111111fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf1111111111111111111111d11111
      1111d1111111111111111111111fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf1111111111111111111111d1111
      11dd1111111111111111111111fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf1111111111111111111111dd11
      1d11111111111111111111111fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf11111111111111111111111d1
      d11111111111111111111111fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf11111111111111111111111d
      11111111111111111111111fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf11111111111111111111111
      1111111111111111111111fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf1111111111111111111111
      111111111111111111111f22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222f111111111111111111111
      11111111111111111111fdddddd2dddddd2dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd2dddddd2ddddddf11111111111111111111
      1111111111111111111fdddddd2dddddd2dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd2dddddd2ddddddf1111111111111111111
      111111111111111111fdddddd2dddddd2dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd2dddddd2ddddddf111111111111111111
      11111111111111111fdddddd2dddddd2dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd2dddddd2ddddddf11111111111111111
      1111111111111111fdddddd2ddddddd2dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd2ddddddd2ddddddf1111111111111111
      111111111111111fddddddd2dddddd2dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd2ddddddd2ddddddf111111111111111
      11111111111111fddddddd2dddddd2dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd2dddddd2dddddddf11111111111111
      1111111111111fddddddd2ddddddd2dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd2ddddddd2dddddddf1111111111111
      111111111111fddddddd2ddddddd2dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd2ddddddd2dddddddf111111111111
      11111111111fddddddd2ddddddd2dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd2ddddddd2dddddddf11111111111
      1111111111fddddddd2ddddddd2dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd2ddddddd2dddddddf1111111111
      111111111f22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222f111111111
      11111111fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf11111111
      1111111fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf1111111
      111111fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf111111
      11111fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf11111
      1111fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf1111
      111fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf111
      11fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf11
      1fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf1
      fddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddf
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      22222222ddd2222ddd2222ddd2222ddd2222ddd2222ddd2222ddd2222ddd2222ddd2222ddd2222dddd2222ddd2222ddd2222ddd2222ddd2222ddd2222ddd2222ddd2222ddd2222ddd2222ddd22222222
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      """)]
scene.set_background_image(courts)
gameTitle = sprites.create(img("""
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      .....................888888....................................................................888.....888......................888....888......................
      .....................8888888...................................................................888.....888......................8888...888......................
      ....................88888888...................................................................888.....888.......................888....888.....................
      ....................888888888...................................................................888....888.......................888....888.....................
      ....................888888888...................................................................888....888........................888...888.....................
      ...................8888888888...................................................................888....8888.......................888....888....................
      ...................8888888888...................................................................888.....888.......................888....888....................
      ...................8888888888...................................................................888.....888........................888...888....................
      ..................88888888888...................................................................888.....888........................888....888...................
      ..................8888888888....................................................................888.....888........................888....888...................
      ..................8888888888....................................................................888.....888........................8888...888...................
      .................8888..88888....................................................................8888....888.........................888...8888..................
      .................8888...8888......888...........888..........888.......................888......8888....8888.88..........8888.......888....888..................
      .................888....888......88888.........88888........88888......888...888......88888...888888888..888.888.........88888......888....888..................
      ................8888....888.....888888........888888.......888888......888...888......888888..888888888..888..888.......8888888......888...8888.................
      ................8888...8888....88888888......8888888.......8888888.....888...888.....8888888..888888888..888..8888......8888888......888....888.................
      ................888....8888....88888888......88888888.....88888888.....888...888.....88888888.888888888..888..8888......88888888.....888....888.................
      ...............8888....888....888888888.....888888888.....88888888.....888...888.....88888888.888888888..888..88888....8888888888....8888...8888................
      ...............8888...8888....888888888.....888888888....888888888.....888...888....888888888..88888888..888..88888....8888888888.....888....888................
      ...............888..88888....8888888888....8888888888....8888888888....888...888....8888888888...8888....8888.888888...8888888888.....888....888................
      ..............8888..88888....8888888888....8888888888....8888888888....888...888....8888..8888...8888....8888..88888...88888888888....888....8888...............
      ..............8888..88888...88888888888....8888888888...88888888888....888...888....8888...888...8888.....888..88888...88888888888....8888....888...............
      ..............888..88888....88888888888...88888.88888...88888.88888....888...888....888....888...8888.....888..888888..888888888888....888....888...............
      .............8888..8888.....8888..88888...8888...8888...8888...8888....888...888....888....8888..8888.....888....8888..888888..8888....888....8888..............
      .............8888..8888....8888...8888....8888..........8888...8888....888...888...8888....8888..8888.....888.....888...8888....888....8888....888..............
      .............8888.8888.....8888....888....888...........888....8888....888...888...8888..888888..8888.....888.....8888..8888....8888....888....888..............
      ............8888..8888.....888....8888...8888..........8888....8888....888...888...8888..888888...888.....8888....8888..8888....8888....888....8888.............
      ............8888..8888....8888....8888...8888..........8888....8888...8888...888...8888..888888...888.....8888....8888..8888.....888....8888...8888.............
      ............8888..8888....8888....8888...8888..........8888....8888...8888...888...8888..888888...888.....8888....8888..8888.....8888...8888...8888.............
      ...........8888..88888....888.....8888...8888...8888...8888....8888...8888...888...8888...........8888....8888....8888...8888....8888....888....8888............
      ...........8888..8888....8888.....888....8888...8888...8888....8888...8888...888...8888...........8888....88888...88888..8888.....888....888....8888............
      ...........8888..8888....8888.....888...88888...8888...8888....8888...8888...888...88888..........88888....8888...88888..8888.....888....8888....888............
      ..........8888...8888....88888...8888...88888...8888...88888...8888...8888...888...88888..........888888...88888.888888...8888....8888...8888....8888...........
      ..........8888...8888....888888..8888...888888.88888...888888..8888...88888.8888...88888...........88888...888888888888...888888..8888....888....8888...........
      ..........8888..88888....888888..8888...88888888888....888888..8888...8888888888....88888..........88888....88888888888...8888888.8888....8888....888...........
      .........8888...88888....888888..888....88888888888....888888..888....8888888888....88888888.......88888....88888888888....888888..888....8888....8888..........
      .........8888...88888....888888.8888....88888888888....888888..888.....888888888.....8888888.......88888....88888888888....888888..8888....888....8888..........
      .........8888...88888....88888..8888....8888888888.....888888..888.....888888888.....8888888........88888....8888888888.....88888..8888....8888....888..........
      ........88888..888888....88888..8888....8888888888.....888888..888.....88888888......88888888.......88888....8888888888.....888888.8888....8888....8888.........
      ........8888...88888.....88888..888......88888888.......88888.8888.....88888888.......8888888........8888.....888888888......88888..888....8888....8888.........
      ........8888...88888.....88888.8888......88888888.......88888.8888.....88888888.......88888888.......8888.....88888888.......88888..8888....8888...88888........
      .......88888...88888.....8888..8888......8888888........8888..8888......888888.........888888.........888......8888888........8888..8888....8888....8888........
      .......8888....88888......888..8888.......88888..........888..8888......888888.........888888..........88.......88888..........8888.8888....8888....8888........
      ........88......888........88...88.........888............88..8888.......8888...........8888............8........8888...........888..888.....88......88.........
      ..............................................................8888..............................................................................................
      ......8888888888888888888888888888888888888888888888888888888.8888.88888888888888888888888888888888888888888888888888888888888888888888888888888888888888.......
      .....88888888888888888888888888888888888888888888888888888888.8888.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888......
      .....88888888888888888888888888888888888888888888888888888888.8888.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888......
      ....888888888888888888888888888888888888888888888888888888888.8888.8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888.....
      ....888888888888888888888888888888888888888888888888888888888.8888.8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888.....
      .....88888888888888888888888888888888888888888888888888888888.8888.888888888888888888888888888888888888888888888888888888888888888888888888888888888888888......
      ..............................................................8888..............................................................................................
      ...............................................................8888.............................................................................................
      ...............................................................8888.............................................................................................
      ...............................................................8888.............................................................................................
      ...............................................................8888.............................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      ................................................................................................................................................................
      """),
    SpriteKind.Title)
game.set_dialog_frame(img("""
    . . . . . . . . . . . . . . .
    . . . . . . . . . . . . . . .
    . . . . . . . . . . . . . . .
    . . . . . . . . . . . . . . .
    . . . . . . . . . . . . . . .
    . . . . . . . . . . . . . . .
    . . . . . . . . . . . . . . .
    . . . . . . . . . . . . . . .
    . . . . . . . . . . . . . . .
    . . . . . . . . . . . . . . .
    . . . . . . . . . . . . . . .
    . . . . . . . . . . . . . . .
    . . . . . . . . . . . . . . .
    . . . . . . . . . . . . . . .
    . . . . . . . . . . . . . . .
    """))
game.show_long_text("", DialogLayout.BOTTOM)
gameTitle.destroy()
game.set_dialog_frame(img("""
    . . . . . . . . . . . . . . .
    . f f f f f f f f f f f f f .
    f f f f f f f f f f f f f f f
    f f f b b b b b b b b b f f f
    f f b b d d d d d d d b b f f
    f f b d 1 1 1 1 1 1 1 d b f f
    f f b d 1 1 1 1 1 1 1 d b f f
    f f b d 1 1 1 1 1 1 1 d b f f
    f f b d 1 1 1 1 1 1 1 d b f f
    f f b d 1 1 1 1 1 1 1 d b f f
    f f b d 1 1 1 1 1 1 1 d b f f
    f f b b d d d d d d d b b f f
    f f f b b b b b b b b b f f f
    f f f f f f f f f f f f f f f
    . f f f f f f f f f f f f f .
    """))
raqueteer = sprites.create(img("""
      ..........eee...............
      .........eeeee..............
      .........eeeee..............
      .........eeeee..............
      ..........eee...............
      ..........444...............
      .......777444777............
      ......77777777777..bbb......
      ......77777777777..b1b......
      .....7777777777777.b.b......
      .....7777777777777.b1b......
      .....44.7777777.44.b.b......
      ....444.7777777.444b1b......
      ....44..7777777..444bb......
      ....444.7777777...44b.......
      .....44.7777777....44.......
      ........fffffff....44.......
      ........fffffff.....b.......
      ........fffffff.............
      ........fff.fff.............
      ........fff.fff.............
      ........fff.fff.............
      ........444.444.............
      ........444.444.............
      ........444.444.............
      ........444.444.............
      ........444.444.............
      ........444.444.............
      ........fff.fff.............
      ........fff.fff.............
      """),
    SpriteKind.player)
raqueteer.set_position(31, 88)
controller.move_sprite(raqueteer, 80, 50)
sprite_list = sprites.all_of_kind(SpriteKind.player)
theBall = sprites.create(img("""
    8 8
    8 8
    """), SpriteKind.Ball)
ballZStats = sprites.create(img("""
    . .
    . .
    """), SpriteKind.Ball)
ballShadow = sprites.create(img("""
    b b
    b b
    """), SpriteKind.Ball)
mySprite2 = sprites.create(courts, SpriteKind.Court)
resetBall()
oldHighScore = 0
score = 0
music.set_tempo(240)
game.show_long_text("After serving, ball can only bounce once on floor between hits.",
    DialogLayout.TOP)
me = sprites.create(img("""
      d 1 d d d 1 d d d 1 d d d 1 d d d d 1 1 d d 1 1 d d 1 d 1
      1 d 1 d 1 d 1 d 1 d 1 d 1 d 1 d d d 1 d 1 d 1 d 1 d 1 d 1
      d d 1 d 1 d 1 d d d 1 d 1 d 1 d d d 1 1 d d 1 d 1 d 1 1 1
      d 1 d d 1 d 1 d d 1 d d 1 d 1 d d d 1 d 1 d 1 d 1 d 1 d 1
      1 1 1 d d 1 d d 1 1 1 d d 1 d d d d 1 d 1 d 1 1 d d 1 d 1
      """),
    SpriteKind.player)
me.set_position(144, 116)
game.show_long_text("Forehand: A /    Backhand: B / ",
    DialogLayout.TOP)
me.destroy()

def on_on_update():
    letBallBounce()
    doPlayerMovement()
    keepPlayerInBounds()
game.on_update(on_on_update)

驴友花雕 发表于 2025-9-23 11:47:24

【花雕动手做】基于Kitronik可编程开发板之叮咚壁球游戏




驴友花雕 发表于 2025-9-23 11:51:28

【花雕动手做】基于Kitronik可编程开发板之叮咚壁球游戏

图形编程参考实验程序



通过模拟器,调试与模拟运行



实验场景记录










页: [1]
查看完整版本: 【花雕动手做】基于Kitronik可编程开发板之叮咚壁球游戏