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.
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.
Notify me of when new comments are posted via e-mail
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.
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,
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.