The best VPN 2024

The Best VPS 2024

The Best C# Book

Teach coding to your kids with this maze game [VBA

Spread the love

Mail (will not be published) (required)

Currently working on Battleships (Excel Edition with RPG elements) while learning how to code VBA properly ?

Yep, games for Excel VBA are awesome, if you ask me))) Great job!

Go ahead and download the game workbook here. Examine the code to learn more. Ask your kids to play for some fun. The workbook contains 3 mazes. Feel free to add more.

Sorry, your blog cannot share posts by email.

maze game demo

new: If newx 1 Or newy 16 Or newy 16 Then

Here is the version 1.0 of Snowman & Hot Chocolate Maze game:

Notify me of follow-up comments by email.

16 Or newy

Near Gareths suggested edit is a typo. The message box says vbCritical + vbOKonlym. That should have been vbOKOnly.

There can be any number of mazes, one per spreadsheet.

Check the first character of the code.

This maze game is inspired from theAngry Birds coding gameat

If so, display an error and end macro

Add special point cells to the grid. When snowman passes thru these cells, score goes up.

Add a special power cell. If snowman reaches this cell, he gains the ability break obstacles.

o Then cell.ClearContents Next cell grid.Cells(settings.Cells(1, 1), settings.Cells(1, 2)) = settings.Cells(1, 3) grid.Cells(settings.Cells(2, 1), settings.Cells(2, 2)) = settings.Cells(2, 3) Set grid = Nothing Set settings = Nothing Set code = Nothing End With End Sub

Lets roll, the snowman is thirsty.

maze game ui blank

Notify me of when new comments are posted via e-mail

conditional formatting obstacles

We set up two buttons on the worksheet (using rounded rectangle shapes), one for setup and other for running.

You can find more such emojis. Just go to Insert Symbol and switch the font to Segoe UI Emoji font.

If the new position leads in to an obstacle

We can use the Segoe UI Emoji font. This font is part of all modern versions of Windows. This has a fine collection of various emojis that you see everywhere nowadays. The Emoji hex codes are,

Const doneSymbol = &H2603 Const speed = 900 change this to speedup / slowdown the game Function getNumber(ByVal fromThis As Variant) As Integer extract the number after first character return 1 incase of error getNumber = 1 On Error Resume Next getNumber = CInt(Mid(fromThis, 2)) End Function Sub killTime() Dim i As Long For i = 1 To speed DoEvents Next i End Sub Function hasObstacles(thisRange As Range) As Boolean Dim cell As Range For Each cell In thisRange hasObstacles = hasObstacles Or cell.Value = o If hasObstacles Then Exit Function Next cell End Function

To keep the code clean, I have created two functions and one sub. They are here.

We will create sheet specific named ranges for,

Print snow man with snow flakes. End macro

Note:download Segoe UI Emoji fontif you dont have it.

Private Sub setupGameSheet(name As String) set up game sheet given by name Dim grid As Range, settings As Range, code As Range, cell As Range With Sheets(name) Set grid = Range(grid) Set settings = Range(settings) Set code = Range(code.start) For Each cell In grid If cell.Value2

In this post, lets understand how to build such a game using Excel VBA.

orig: If newx 0 Or newy 16 Or newy 16 Then

Copyright © 2018 -Our policies&Contact Details

Each maze can have a different design, different starting & ending positions.

0 And Not done) oldx = newx oldy = newy steps = getNumber(code.Value2) Select Case UCase(Left(code, 1)) Case L newx = newx – steps Case R newx = newx + steps Case U newy = newy – steps Case D newy = newy + steps Case Else End Select check the boundary If newx

You (ie the parent) can writeoin any cell inside the maze to build an obstacle there. So once a new maze is cloned (ie a new worksheet is copy pasted), simply create a maze layout by typingointo various cells.

Not just kids, anyone can benefit by learning how to program. So if you are new to coding,check out our five part tutorial on VBA.

How to visualize multiple variables over several years? [Contest]

If snow man reaches ending position

Play sounds for jumps, points and breaks.

nishanth playing maze game

Email check failed, please try again

by the number of steps indicated after first letter.

What is the sum of values excluding items on stop list? [home work]

Simplified algorithm for this goes like,

maze game ui

The code to check if the box has been left should be changed as below. Currently if you move out of the box 1 row above or one column to the left, there is no error.

Pro tip:Just select the maze layout you want with CTRL+Select option and the typeoin any cell and press CTRL+Enter to getoin all cells.

If at end of all code, the snow man still not at ending point

Making new mazes should be easy. You can copy a worksheet, paste it, change the settings and all the code should work just the same.

All the搜索引擎优化s will be displayed as walls thruconditional formatting.

I hope you enjoyed this article. VisitExcel for BeginnerorAdvanced Excelpages to learn more or join myonline video class to master Excel.

My twins (Nishanth & Nakshtra) are now almost 7.They are super keen to learn how computers work. So the other day, I showed where there are several coding exercises disguised as games. They loved those games So that got me thinking why not make a game in Excel that teaches kids simple programming concepts.

16 Then MsgBox Dont leave the box!, vbCritical + vbOKonlym, Hold it there tiger… done = True check for obstacles ElseIf hasObstacles(Range(grid.Cells(oldy, oldx), grid.Cells(newy, newx))) Then MsgBox Cant move there!, vbCritical + vbOKOnly, Oo ooh! The snow man hit an obstacle done = True Else Range(grid.Cells(oldy, oldx), grid.Cells(newy, newx)) = symbol If newx = endx And newy = endy Then done = True grid.Cells(newy, newx) = ChrW(doneSymbol) End If End If killTime Set code = code.Offset(1) Wend If Not done Then MsgBox Your snowman is thirsty, fetch him the hot chocolate, vbCritical + vbOKOnly, Try Again End If Set grid = Nothing Set settings = Nothing Set code = Nothing End Sub

Post was not sent – check your email addresses!

The idea is simple. We create a 1616 grid in Excel. We position a snowman at a certain point in the grid. We place a cup of hot chocolate at another point. The goal is to make snowman reach hot chocolate with a series of commands. Of course there will be obstacles (walls).

Since kids will be playing this, we need considerable variety of mazes. So lets assume that,

My name is Chandoo. Thanks for dropping by. My mission is to make you awesome in Excel & your work. I live in Wellington, New Zealand. When I am not F9ing my formulas, I cycle, cook or play lego with my kids. Know moreabout me.

Typical Blank Maze with Snowman & Hot Chocolate loaded.

My kids loved the idea. At the same time, they dont want to play more than 2 puzzles at a time. I think they are attracted toOggy and the cockroachesmore than programming for now.

Each maze can also have its own images (ie Rabbit & carrot in one maze, Kid and ice cream in another etc.)

There are two parts to our VBA code.

Thanks for the game, and Gareth, thanks for the code edit.

We write two simple macros and assign them to the buttons.

Written by ChandooTags:advanced excel,downloads,excel games,macros,Microsoft Excel Conditional Formatting,VBA? Doubt:Ask an Excel Question

If the new position falls outside grid

Here are few ways to extend the game.

Now that our UI & Code are ready, lets link them up.

What about you? Do you find such games useful to teach programming and a love of computers to your kids. Let me know your experience once trying this.

Here is the basic layout of our maze front end.

Private Sub runCode(name As String) runs the code in sheet given by name setup Dim code As Range, settings As Range, grid As Range, steps As Integer Dim newx As Integer, newy As Integer, symbol As String, done As Boolean Dim endx As Integer, endy As Integer, oldx As Integer, oldy As Integer Set grid = Sheets(name).Range(grid) Set settings = Sheets(name).Range(settings) Set code = Sheets(name).Range(code.start) newx = settings.Cells(1, 2) newy = settings.Cells(1, 1) symbol = settings.Cells(1, 3) done = False endx = settings.Cells(2, 2) endy = settings.Cells(2, 1) While (Len(code)

There are two components in this game.

Leave a Comment