Code Sketch
kojo
Category: Programming
// =====================================================
// ? TURTLE FUNNY DANGER PUZZLE PRO
// =====================================================
// ? BACKGROUND MUSIC
// ? FUNNY SOUND
// ? DANGER SOUND
// ? TIMER
// ? SCORE
// ? WINNER
// ? RESET
// ? START
// ? SAFE PATH
// ? DEAD END
// ? GOAL
// =====================================================
// =====================================================
// ?? BASIC SETTINGS
// =====================================================
val fdStep = 50
val fdStep2 = 10
val rtStep = 90
val rtStep2 = 10
val bgColor = black
clear()
clearOutput()
beamsOn()
val width = canvasBounds.width
val height = canvasBounds.height
setBackground(bgColor)
setSpeed(fast)
// =====================================================
// ? SOUND SYSTEM
// =====================================================
val soundDir =
"https://kojofiles.netlify.app/hunted7"
preloadMp3(
s"$soundDir/Cave.mp3"
)
preloadMp3(
s"$soundDir/DrumBeats.mp3"
)
// =====================================================
// ? BACKGROUND MUSIC
// =====================================================
playMp3Loop(
s"$soundDir/Cave.mp3"
)
// =====================================================
// ? GAME VARIABLES
// =====================================================
var moves = 0
var seconds = 0
var score = 1000
var started = false
var finished = false
var wrongMoves = 0
var checkpoints = 0
// =====================================================
// ? PUZZLE PATH
// =====================================================
val path = Seq(
"F","F","R","F","F","L",
"F","R","F","F","R","F",
"L","F","F","L","F","R",
"F","F","R","F","L","F",
"R","F","F","L","F","R",
"F","F","L","F"
)
// =====================================================
// ? FUNNY TALK
// =====================================================
def funnyStart() {
println("")
println("?: HELLOOO BOSS! ?")
println("?: Ready aahe ka?")
println("?: Puzzle easy samju nako! ?")
println("?: Chalaaaa!")
println("")
}
def funnyForward() {
println("")
println("?: FORWARD! FORWARD! ?")
println("?: Mi full speed madhe yetoy! ?")
println("")
}
def funnyRight() {
println("")
println("?: RIGHT TURN! ??")
println("?: Ohooo... kya style hai! ?")
println("")
}
def funnyLeft() {
println("")
println("?: LEFT TURN! ??")
println("?: Arey waah! ?")
println("")
}
def funnyDanger() {
println("")
println("??? DANGER! ???")
println("?: AREEEEE BOSS!!! ?")
println("?: Kuthe chalalas?!")
println("?: Parat ye! ?")
println("")
}
def funnyCheckpoint() {
println("")
println("? CHECKPOINT REACHED!")
println("?: WAHHH BOSS! ?")
println("?: Tu heavy player ahes!")
println("")
}
def funnyHurry() {
println("")
println("??? HURRY UP! ???")
println("?: ZALDI KAR BOSS!!! ?")
println("?: TIME PALTAT AAHE!")
println("")
}
def funnyWinner() {
println("")
println("")
println("****************************************")
println("* *")
println("* ? YOU ARE THE WINNER! ? *")
println("* *")
println("****************************************")
println("")
println("?: YEEEEEEEEEEEEESSSSS!!! ?")
println("?: BOSS NE PUZZLE PHODLA!!! ??")
println("?: KAY GAME KELAS!!! ?")
println("?: YOU ARE THE WINNER!!! ?")
println("")
}
// =====================================================
// ? FUNNY SOUND
// =====================================================
def funnySound() {
playMp3(
s"$soundDir/DrumBeats.mp3"
)
}
// =====================================================
// ? DANGER SOUND
// =====================================================
def dangerSound() {
playMp3(
s"$soundDir/DrumBeats.mp3"
)
funnyDanger()
}
// =====================================================
// ? CHECKPOINT SOUND
// =====================================================
def checkpointSound() {
playMp3(
s"$soundDir/DrumBeats.mp3"
)
funnyCheckpoint()
}
// =====================================================
// ? WINNER SOUND
// =====================================================
def winnerSound() {
playMp3(
s"$soundDir/DrumBeats.mp3"
)
funnyWinner()
}
// =====================================================
// ? SCORE SYSTEM
// =====================================================
def updateScore() {
score =
1000 -
(moves * 8) -
(seconds * 3) -
(wrongMoves * 50)
if (score < 0) {
score = 0
}
}
// =====================================================
// ? STATUS
// =====================================================
def showStatus() {
updateScore()
println(
"? MOVES = " +
moves +
" | ? TIME = " +
seconds +
" | ? SCORE = " +
score
)
}
// =====================================================
// ?? FORWARD
// =====================================================
def moveForward() {
if (!finished) {
if (!started) {
started = true
funnyStart()
playMp3Loop(
s"$soundDir/Cave.mp3"
)
}
forward(fdStep)
moves = moves + 1
funnySound()
funnyForward()
showStatus()
if (moves % 5 == 0) {
checkpoints =
checkpoints + 1
checkpointSound()
}
if (moves >= path.length) {
winGame()
}
}
}
// =====================================================
// ?? RIGHT
// =====================================================
def moveRight() {
if (!finished) {
if (!started) {
started = true
funnyStart()
playMp3Loop(
s"$soundDir/Cave.mp3"
)
}
right(rtStep)
moves = moves + 1
funnySound()
funnyRight()
showStatus()
if (moves % 5 == 0) {
checkpoints =
checkpoints + 1
checkpointSound()
}
if (moves >= path.length) {
winGame()
}
}
}
// =====================================================
// ?? LEFT
// =====================================================
def moveLeft() {
if (!finished) {
if (!started) {
started = true
funnyStart()
playMp3Loop(
s"$soundDir/Cave.mp3"
)
}
left(rtStep)
moves = moves + 1
funnySound()
funnyLeft()
showStatus()
if (moves % 5 == 0) {
checkpoints =
checkpoints + 1
checkpointSound()
}
if (moves >= path.length) {
winGame()
}
}
}
// =====================================================
// ? TIMER + DANGER
// =====================================================
timer(1000) {
if (started && !finished) {
seconds = seconds + 1
updateScore()
println(
"? TIME = " +
seconds +
" sec | " +
"? MOVES = " +
moves +
" | " +
"? SCORE = " +
score
)
// ? EVERY 10 SECONDS
if (seconds % 10 == 0) {
dangerSound()
}
// ? HURRY UP
if (seconds == 40) {
funnyHurry()
}
if (seconds == 50) {
funnyHurry()
}
if (seconds == 55) {
funnyHurry()
}
}
}
// =====================================================
// ? WIN GAME
// =====================================================
def winGame() {
if (!finished) {
finished = true
started = false
stopMp3()
updateScore()
winnerSound()
println("")
println("======================================")
println(" ? LEVEL COMPLETE!")
println("======================================")
println("")
println("? YOU ARE THE WINNER!")
println("")
println("? MOVES = " + moves)
println("? TIME = " + seconds + " sec")
println("? SCORE = " + score)
println("? CHECKPOINTS = " + checkpoints)
println("")
println("? AMAZING PERFORMANCE!")
println("======================================")
}
}
// =====================================================
// ? RESET GAME
// =====================================================
def resetGame() {
stopMp3()
clear()
clearOutput()
beamsOn()
setBackground(bgColor)
setSpeed(fast)
moves = 0
seconds = 0
score = 1000
started = false
finished = false
wrongMoves = 0
checkpoints = 0
drawPuzzle()
draw(panel)
playMp3Loop(
s"$soundDir/Cave.mp3"
)
println("")
println("======================================")
println(" ? PUZZLE RESET!")
println("======================================")
println("")
println("?: Back to START! ?")
println("?: Ata seriously khel!")
println("?: Ready BOSS? ??")
println("")
}
// =====================================================
// ? DRAW PUZZLE
// =====================================================
def drawPuzzle() {
// ? SAFE PATH
setPenColor(blue)
setPenThickness(8)
setPosition(-400, -250)
setHeading(0)
forward(100)
right(90)
forward(100)
left(90)
forward(100)
right(90)
forward(100)
forward(100)
left(90)
forward(100)
right(90)
forward(100)
forward(100)
right(90)
forward(100)
left(90)
forward(100)
forward(100)
left(90)
forward(100)
right(90)
forward(100)
forward(100)
right(90)
forward(100)
left(90)
forward(100)
right(90)
forward(100)
forward(100)
left(90)
forward(100)
// ? GOAL
setPenColor(red)
setPenThickness(18)
forward(40)
// ? START
setPenColor(green)
setPenThickness(18)
setPosition(-400, -250)
setHeading(0)
forward(40)
// ? DEAD END 1
setPenColor(gray)
setPenThickness(5)
setPosition(-300, -250)
setHeading(90)
forward(70)
// ? DEAD END 2
setPosition(-200, -150)
setHeading(270)
forward(70)
// ? DEAD END 3
setPosition(-50, -150)
setHeading(90)
forward(70)
// ? DEAD END 4
setPosition(100, -50)
setHeading(270)
forward(70)
// ? DEAD END 5
setPosition(200, 50)
setHeading(90)
forward(70)
// ? DEAD END 6
setPosition(300, 100)
setHeading(270)
forward(70)
// ? TURTLE START
setPenColor(purple)
setPenThickness(5)
setPosition(-400, -250)
setHeading(0)
}
// =====================================================
// ? BUTTONS
// =====================================================
val leftButton =
Picture.button("? LEFT ?") {
moveLeft()
}
val forwardButton =
Picture.button("? FORWARD ?") {
moveForward()
}
val rightButton =
Picture.button("RIGHT ? ?") {
moveRight()
}
val resetButton =
Picture.button("? RESET") {
resetGame()
}
// =====================================================
// ? CONTROL PANEL
// =====================================================
val panel =
trans(
-width / 2,
-height / 2
) *
scale(1.3) ->
VPics(
HPics(
leftButton,
forwardButton,
rightButton
),
HPics(
resetButton
)
)
// =====================================================
// ? INITIAL DRAW
// =====================================================
drawPuzzle()
draw(panel)
// =====================================================
// ? GAME INTRO
// =====================================================
println("")
println("==============================================")
println(" ? TURTLE FUNNY DANGER PUZZLE")
println("==============================================")
println("")
println("?: HELLO BOSS! ?")
println("?: Aaj puzzle solve karaycha!")
println("")
println("? GREEN = START")
println("? BLUE = SAFE PATH")
println("? GRAY = DEAD END")
println("? RED = GOAL")
println("")
println("? FORWARD = ????")
println("? LEFT = ???????")
println("? RIGHT = ???????")
println("")
println("? MUSIC = ON")
println("? FUNNY SOUND = ON")
println("? DANGER = ON")
println("? TIMER = ON")
println("? SCORE = ON")
println("? WINNER = ON")
println("")
println("?: Chala BOSS... PUZZLE PHODUYA! ??")
println("==============================================")