Learn Julia by coding a game

Writing the same application in multiple languages is a great way to learn new ways to program.
52 readers like this.
woman on laptop sitting at the window

CC BY 3.0 US Mapbox Uncharted ERG

Most programming languages have certain things in common, such as:

  • Variables
  • Expressions
  • Statements

These concepts are the basis of most programming languages. Once you understand them, you can start figuring the rest out.

Programming languages usually share some similarities. Once you know one programming language, you can learn the basics of another by recognizing its differences.

A good tool for learning a new language is by practicing with a standard program. This allows you to focus on the language, not the program's logic. I'm doing that in this article series using a "guess the number" program, in which the computer picks a number between one and 100 and asks you to guess it. The program loops until you guess the number correctly.

This program exercises several concepts in programming languages:

  • Variables
  • Input
  • Output
  • Conditional evaluation
  • Loops

It's a great practical experiment to learn a new programming language.

Guess the number in Julia

According to Julia's website, the language "is dynamically typed, feels like a scripting language, and has good support for interactive use." It "was designed from the beginning for high performance. Julia programs compile to efficient native code for multiple platforms via LLVM."

You can explore Julia by writing a version of the "guess the number" game.

Here is my implementation: 

random = rand(1:100)

println("Guess a number between 1 and 100")

while true
    data = readline()
    if data == ""
        println("goodbye")
        break
    end
    guess = parse(Int64, data)
    if guess < random
        println("Too low")
    elseif guess > random
        println("Too high")
    else
        println("That's right!")
        break
end

To assign a value to a variable, list the variable's name followed by the = sign. For example, the statement random = 0 assigns a zero value to the random variable.

The first line of the script reads the result of the function rand() and assigns it to the variable called random. The function takes a single argument: a range. In this case, the range is 1:100, making the game just challenging enough.

You can also prompt the user to enter a value using the readline() function. If you write data = readline(), Julia waits for the user to enter some text, then stores that value in the guess variable.

The next step is to convert data to an integer type. In this case, use Int64, a 64-bit integer type. The result of the parse function is stored in a variable guess.

Julia supports conditional expressions and flow control like loops. In the "guess the number" game, Julia continues looping as long as the guess value is not equal to random.

If the guess is less than the random number, Julia prints Too low, and if the guess is greater than the number, Julia prints Too high.

Sample output

Now that you've written your Julia program, run it to play the "guess the number" game. Every time you run the program, Julia will pick a different random number, so you need to guess until you find the correct number:

$ julia guess.jl
Guess a number between 1 and 100
50
Too high
30
Too high
20
Too high
10
Too low
15
Too high
13
Too low
14
That's right!

This "guess the number" game is a great introductory program for learning a new programming language because it exercises several common programming concepts in a pretty straightforward way. By implementing this simple game in different programming languages, you can demonstrate some core concepts of the languages and compare their details.

Do you have a favorite programming language? How would you write the "guess the number" game in it? Follow this article series to see examples of other programming languages that might interest you!

What to read next
Tags
Moshe sitting down, head slightly to the side. His t-shirt has Guardians of the Galaxy silhoutes against a background of sound visualization bars.
Moshe has been involved in the Linux community since 1998, helping in Linux "installation parties". He has been programming Python since 1999, and has contributed to the core Python interpreter. Moshe has been a DevOps/SRE since before those terms existed, caring deeply about software reliability, build reproducibility and other such things.

Comments are closed.

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.