Code Sketch
yadnesh and bhavesh
Category: Programming
// --- ARM WRESTLING BATTLE GAME (ERROR FIXED) ---
cleari()
originBottomLeft()
var playerPower = 50.0
var robotPower = 50.0
var gameEnded = false
var winMessage = ""
onMouseClick { (x, y) =>
if (!gameEnded) {
playerPower += 5.0
robotPower -= randomDouble(1.0, 3.0)
if (robotPower < 10) robotPower = 10.0
if (playerPower >= 90.0) {
gameEnded = true
winMessage = "? WINNER! YOU WON! ?"
}
} else {
playerPower = 50.0
robotPower = 50.0
gameEnded = false
winMessage = ""
}
}
def updateState() {
if (!gameEnded) {
robotPower += 0.2
if (robotPower >= 90.0) {
gameEnded = true
winMessage = "ROBOT WINS! TRY AGAIN!"
}
}
}
def viewState(canvas: CanvasDraw) {
canvas.fill(20, 20, 35, 50)
canvas.noStroke()
canvas.rect(0, 0, cwidth, cheight)
val centerX = cwidth / 2.0
val centerY = cheight / 2.0
canvas.stroke(139, 69, 19)
canvas.strokeWeight(8)
canvas.line(centerX - 150, centerY - 80, centerX + 150, centerY - 80)
// ???? ????
canvas.stroke(255, 255, 0)
canvas.strokeWeight(3)
canvas.line(centerX, centerY - 100, centerX, centerY - 30)
canvas.fill(255, 255, 0)
canvas.text("MIDDLE LINE", centerX - 40, centerY - 110)
// ???? ??? (??? ??????? ?????? ????: %% ?????? ???)
canvas.fill(50, 205, 50)
canvas.noStroke()
canvas.rect(50, cheight - 60, playerPower * 4.0, 25)
canvas.fill(255, 255, 255)
canvas.text(f"YOUR POWER: ${playerPower.toInt}%%", 50, cheight - 30)
canvas.fill(220, 20, 60)
canvas.rect(cwidth - 450, cheight - 60, robotPower * 4.0, 25)
canvas.fill(255, 255, 255)
canvas.text(f"ROBOT POWER: ${robotPower.toInt}%%", cwidth - 450, cheight - 30)
val handX = centerX + (playerPower - 50.0) * 2.5
// ????? ???
canvas.fill(30, 144, 255)
canvas.stroke(20, 100, 200)
canvas.strokeWeight(2)
canvas.rect(centerX - 120, centerY - 70, 60, 20)
canvas.ellipse(handX, centerY - 60, 25, 25)
// ??????? ???
canvas.fill(180, 180, 180)
canvas.stroke(100, 100, 100)
canvas.rect(centerX + 60, centerY - 70, 60, 20)
canvas.ellipse(handX + 15, centerY - 60, 25, 25)
canvas.fill(255, 215, 0)
canvas.ellipse(handX + 7, centerY - 60, 15, 15)
// ????? ???
canvas.fill(0, 150, 255)
canvas.stroke(255, 255, 255)
canvas.strokeWeight(2)
canvas.rect(centerX - 60, 50, 120, 45)
canvas.fill(255, 255, 255)
canvas.text("CLICK FAST!", centerX - 45, 72)
// ?????????? ?????? ???
if (gameEnded) {
canvas.fill(0, 0, 0, 200)
canvas.rect(0, 0, cwidth, cheight)
canvas.fill(255, 215, 0)
canvas.stroke(255, 255, 255)
canvas.strokeWeight(4)
canvas.rect(centerX - 180, centerY - 30, 360, 70)
canvas.fill(0, 0, 0)
canvas.text(winMessage, centerX - 150, centerY + 5)
canvas.fill(255, 255, 255)
canvas.text("Click anywhere to Play Again", centerX - 110, centerY - 60)
}
canvas.fill(255, 153, 51)
canvas.text("ARM WRESTLING: BEAT THE ROBOT", 30, cheight - 20)
}
animateWithCanvasDraw { canvas =>
updateState()
viewState(canvas)
}