Micro:bit Commando Jump Using MakeCode
Written by Sue Gee   
Monday, 09 April 2018
Article Index
Micro:bit Commando Jump Using MakeCode
Programming with MakeCode
playGame
Conclusion and Listing

Conclusion

There are plenty of opportunities for improving the game - put the play code inside another loop so that the player can have multiple goes, add some sound, add a scoring system that take time into account, and so on.

All of these improvements are possible, but without subroutines or functions the size of the block program gets bigger and bigger and eventually so big it is unwieldy. 

What does this game implementation tell us about the MakeCode Block Editor? The verdict has to be that it is really only suitable for smallish programs. The problem is that the code that it produces is Microsoft's TypeScript, which isn't quite JavaScript and clearly has a Microsoft bias. There is also the problem that the code isn't the simplest you can imagine for presenting to a beginner. Comparing it with microPython you have to admit that it might not be much harder to introduce the beginner to this Python dialect. It is surprising that, after so much time, we are still presenting teaching languages to complete beginners that are not easy to use.

The Listing

Rather than give a complete block form of the program, it seems more useful to give the JavaScript version. If you want to you can copy and paste this into the JavaScript editor and switch to block view to see a complete block representation.

The complete program is:

let run = false
let t = 0
let man: game.LedSprite = null
let wall: game.LedSprite = null
let press = 0
let index = 0
function startGame() {
    countDown()
    drawPlayArea()
}
function countDown() {
    for (let index2 = 0; index2 <= 4; index2++) {
        basic.showNumber(5 - index2)
    }
    basic.showString("!")
    basic.pause(1000)
    basic.showString(" ")
}
function drawPlayArea() {
    for (let index3 = 0; index3 <= 4; index3++) {
        wall = game.createSprite(2, index3 + 1)
    }
}
function playGame() {
    press = 0
    man = game.createSprite(4, 4)
    t = input.runningTime()
    run = true
    while (input.runningTime() - t < 20000 && run) {
        moveMan()
        if (man.get(LedSpriteProperty.Y) == 0) {
            run = false
        }
    }
}
function moveMan() {
    if (press > 20) {
        man.change(LedSpriteProperty.Y, -1)
        press = 0
    }
}
function endGame() {
    if (!(run)) {
        moveHorizontal()
        game.addScore(1)
    }
    moveVertical()
    game.gameOver()
}
function moveHorizontal() {
    for (let index = 0; index <= 4; index++) {
        basic.pause(400)
        man.change(LedSpriteProperty.X, -1)
    }
}
function moveVertical() {
    for (let index = 0; index <= 4; index++) {
        basic.pause(400)
        man.change(LedSpriteProperty.Y, 1)
    }
}
input.onButtonPressed(Button.A, () => {
    press += 1
})
startGame()
playGame()
endGame()

More Information

https://www.microbit.co.uk/

Related Articles

Commando Jump Game For The Micro:bit In Python

Micro:bit Commando Jump In The Microsoft Block Editor

Commando Jump Game For The Micro:bit In Touch Develop

Getting Started With C/C++ On The Micro:bit

Offline C/C++ Development With The Micro:bit

BBC Micro:Bit Finally Ships to 1 Million For Free    

BBC micro:bit Your Next Computer?       

BBC Giving Away 1 Million Microcomputers       

Teach Code In School - Before It's Too Late! 

UK Micros of the 1980s 

Four Generations - Video of BBC Micro 

 


SNTP Time Class

SNTP is a network protocol for obtaining an accurate time and it is an interesting exercise to build an SNTP client. In this article the language used is C# but it is easy enough to generalise to a la [ ... ]



The Minimum Spanning Tree - Prim's Algorithm In Python

Finding the minimum spanning tree is one of the fundamental algorithms and it is important in computer science and practical programming. We take a look at the theory and the practice and discover how [ ... ]


Other Projects


Two New Instances Of The Language Server Protocol
01/05/2025

The first is in relation to Github Copilot and the second
to PostgreSQL. They enable seamless integration with any tool that supports the protocol.



The Altair 8800 50 Years On
04/05/2025

The Altair 8800, the computer that brought computing into homes and small businesses was created by Ed Roberts in 1974 at a time when computers were the preserve of academia, the military and some big [ ... ]


More News

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

espbook

 

Comments




or email your comment to: comments@i-programmer.info



Last Updated ( Friday, 18 May 2018 )