Reds and Greens

Simon has crafted a nice game today, inspired by a video in which mathematician Katie Steckles shows several mathematical games. Simon wasn’t sure what the game was called so he named it “Reds and Greens”. The objective of the game is to accumulate a set of three cards sharing the same property (such as the same number of green dots or red dots, the same total number of reds and greens or a set in which all the three possible variants – one, two and three dots of the same color – would be present). Each player pulls a card from the stack (all the cards are lying face up) and the one who collects a set first wins. Simon has actually programmed the cards in Processing (Java) – quite a strenuous task. Below is the jpeg pic of what he made and his code in Processing.

Reds and Greens 10 Apr 2018

 

Reds and Greens Code 1 10 Apr 2018Reds and Greens Code 2 10 Apr 2018

Simon also explained how the game is very similar to Tic Tac Toe, look at the photo below and you’ll see why:

dsc_0935181490489.jpg

Advertisements

Tantrix Game in JavaScript

Simon talking about his Tantrix Game code and the math behind it. It has been Simon’s first community project, many thanks to everyone who has contributed hexagonal tiles for the game! The game isn’t finished yet, but the video gives a good insight into the work in progress. Simon will finish it at a later date he says. Feel free to try and finish it on your own and share your results! The code is on GitHub at: https://github.com/simon-tiger/tantrix

This is a separate link to see what Simon has got so far in action: https://simon-tiger.github.io/tantrix/tantrix/

 

Below is Simon’s original YouTube post summoning contributions:

Muredo in JavaScript

Simon programmed this game a couple of weeks ago but I have waited to publish the video as I hoped he would finish it and get in on GitHub. Unfortunately he got stuck and didn’t return to the project since then, this why I’m now publishing an unfinished game. The unfinished code is on Simon’s GitHub: https://github.com/simon-tiger/muredo

Link to the current version of the game (try playing it online): https://simon-tiger.github.io/muredo/muredo/

Simon writes: “The game board is ready, you can move the game pieces on to the board and roll the die. As the next step, I want to have a feature of highlighting the correct tile – how can I do that?

I also don’t have the following things yet: the multiplying feature, choosing one of multiple options and the winning condition.”

I love Simon’s color choice and the whole interface. Originally, it’s a Japanese game and I think he has made it look very much like spring in Japan.

The objective of the game is to fill in the little square making a 3×3 grid. A player throws the dice and puts one game piece on the corresponding place on the board. When she throws again, she can multiply the value on the die by the value of the place where she has her game piece (or game pieces) if the product of the hat multiplication sum can be found among the nine numbers on the 3×3 grid. If not, the player either puts another game piece on the board, to fill the value of the last throw, or misses a turn.

Flipping Coins

Simon created this coin flip simulation in the form of a game that runs until you get 10 heads in a row. In the video, he explains what the chance that you get 10 heads in a row is, and how he calculated the average number of flips it should take. We also actually play the game and get very lucky the first time and very unlucky the second time. Simon talks about the code he wrote in the second part of the video.

Simon also built another coin flip game in Processing: Coin Flip simulation that doubles the number of coins in the pot as long as you get consecutive heads and clears the pot once you throw tails. At one point, Simon got 12 heads in a row, which means that he had 2^12 coins in the pot (4096). What is the chance of getting that? (It’s actually 1 in 8192). How cool is that?

More images of the game:

Screen Shot 2018-02-19 at 15.53.40

Screen Shot 2018-02-19 at 17.20.57

Screen Shot 2018-02-19 at 17.22.31

Screen Shot 2018-02-19 at 19.31.58

The Snowball Throwing Game in Processing

Simon invented this fun game in Processing after he and his little sister had some proper winter fun outdoors in the fresh December snow (quite rare for the local climate and thus immensely cherished by the little people). The game is about throwing  snowballs in such a trajectory that they stick to one another, forming a super-snowball. After I finished filming this, the two snowball throwers had such a great time with the game that I dare say the giggling effect from of this 2D simulation overshadowed the real snowball fight that had originally inspired it. They did love playing in the real snow on the next day though, until it melted away.

 

This slideshow requires JavaScript.

Cannon Game in Processing

Simon shows the Cannon game he created in Processing (Java). He says he was inspired by the Stackoverflow forum, where he saw an example of the game and later wrote the code for a similar game himself. I saw him quickly write the code in a matter of perhaps two hours. Simon will post his code on GitHub once he has added a couple extra features.

Hero Game in Processing. Simon’s Own Code.

Hero Game 24 Jul 2017 High Score

Simon has created a great new game in Processing: The Hero Game! It is somewhat like the good old Mario, except that Simon has no idea what Mario is and came up with the concept himself. The game is based upon Circle-Rectangle Intersection, something that he was studying for the past several days. It was impressive to see how quickly he wrote the program for the game, I think it took him something like an hour, while waiting for dinner. The game has a hero (Simon), represented by the yellow circle, obstacles (from below and above) and money that the hero collects to get points. The game stops once the hero hits an obstacle. Simon is planning to add extra random obstacles and maybe also create a winning score threshold (around 50 or 65, he says). His own highest score so far has been 35.

Below are the making-of videos, step by step:

 

 

 

 

 

Update: Simon added trees!

Hero Game 24 Jul 2017 Tree 2

Evolutionary Steering Behaviors Game

Note: See the update at the bottom of this post!

We’ve had quite a dramatic situation here for the past couple of days, after Simon turned Daniel Shiffman’s Evolutionary Steering Behaviors Coding Challenge into a game in Processing (Java) and then also in JavaScript (with p5). After completing the game in JavaScript, Simon wanted to add a new feature – a checkbox he programmed using the p5.js library. The checkbox would give the player the option to play with or without the timer, adjust the timer and also had a “New game” button. In the end it turned out that the checkbox didn’t really work. Simon was very upset and it took me hours to talk him into putting the game online even though the checkbox didn’t function (he wanted everything to be perfect) and ask for advice. “I have got a problem with a p5 element: In my setup function, I defined my checkbox. In my reset function, my checkbox is undefined. Why?” – Simon asked in the “Share Work” section of the Coding Train Slack channel, where he has the opportunity to communicate with experienced programmers. He received quite a lot of help and was enthusiastic about it at first, but for some reason, he hasn’t tried the solutions he was suggested. Perhaps it’s his gut feeling that the bind function suggested is still too difficult at the moment. I have decided not to push anymore and trust him on this one, although it’s always a dilemma for me whether I should sometimes “force” him into taking instructions from others or let him solely rely on his fantastic intrinsic autodidact mechanisms. The second seems to work better in terms of the learning process, but I do push him into sharing his work.

Evolutionary Steering Behaviors game. Asking help in Slack 10 Jul 2017 3Evolutionary Steering Behaviors game. Asking help in Slack 10 Jul 2017 4Evolutionary Steering Behaviors game. Asking help in Slack 10 Jul 2017 5Evolutionary Steering Behaviors game. Asking help in Slack 10 Jul 2017 6Evolutionary Steering Behaviors game. Asking help in Slack 10 Jul 2017 7Evolutionary Steering Behaviors game. Asking help in Slack 10 Jul 2017 8

Evolutionary Steering Behaviors game. Asking help in Slack 10 Jul 2017 2

Simon’s game is online at: https://simon-tiger.github.io/Game_SteeringBehaviorsEvolution/SteeringBehaviours_EvolutionGame_p5/

In the videos below Simon shows how he made the game. It’s an ecosystem type of genetic algorithm (with no generations), where the organisms (autonomous steering agents) clone themselves. The autonomous steering agents evolve the behavior of eating food (green dots) and avoiding poison (red dots). Simon added two invaders into the game, one giving food and the other randomly spreading poison. The player can control the “good” invader by moving him and making new food. The goal of the game is to make the agents survive for as long as possible.

The Processing (Java) version:

The thinking behind the game (Simon explains everything at the whiteboard):

The JavaScript version (now online):

In the last video, Simon talks about his problem with the p5 element.

 

Evolutionary Steering Behaviors game seek algorithm part 1. DESIRED equals TARGET minus POSITION:

Evolutionary Steering Behaviors game seek algorithm part 1. DESIRED equals TARGET minus POSITION 4 Jul 2017

Evolutionary Steering Behaviors game seek algorithm part 2. STEERING equals DESIRED minus VELOCITY:

Evolutionary Steering Behaviors game seek algorithm part 2. STEERING equals DESIRED minus VELOCITY 10 Jul 2017

UPDATE: When Simon saw Daniel Shiffman’s comment on Slack this morning (Daniel saying Simon did a fantastic job and that he might even include Simon’s game in the next Live Stream), he sat down and applied the bind function as suggested by his older peers above – without any incentive on my behalf! And it worked! I think we’ve hit a true milestone again. Simon has this growing feeling that he’s got friends out there, his tribe, who understand and who are ready to help.

One day later: Simon had another chat with his friends on Slack and got a lot of help with the last remaining small bug in his game (the New Game button didn’t start a new game if the player had chosen to play with no timer but jumped to Game Over instead). In the video below, Simon shows how that problem got solved:

Plinko game translated into Processing (Java) and Box2D

Simon translated Daniel Shiffman’s Plinko game coding challenge from JavaScript and Matter.JS into Processing (Java) and Box2D:

Simon adds that he didn’t actually do part 4 of the coding challenge, because part 3 is recorded after part 4.