Sokoban Part 8: Instructions

Hi all, this is the 8th part of this series on coding Sokoban in c++ with ncurses. In this part, I added an interaction state for the main menu. I also corrected a mistake by making the render function const. Hope you enjoy! Project repository: https://github.com/bi3mer/sokoban ...

July 1, 2025 · 1 min

Sokoban Part 7: Instructions

Hi all, this is the 7th part of this series on coding Sokoban in c++. In this part, I did a few things: I fixed the problem with menu highlighting that I had at the end of the last video. I changed the game to use inheritance to implement a basic state machine. I updated the game to drop the UI code and made it part of each state. I added an option to the main menu for players to exit, rather than making them ctrl-c to quit. I added support for arrow keys to the game, so players no longer have to use WASD. Hope you enjoy! ...

June 29, 2025 · 1 min

Sokoban Part 6: Menu Interaction

Hi all, this is the 6th part of this series on coding Sokoban in c++. In this part, I added an interactive main menu to the game. Hope you enjoy! Project repository: https://github.com/bi3mer/sokoban

June 25, 2025 · 1 min

Sokoban Part 5: Restarting

Hi all, this is the fifth part of this series on coding Sokoban in c++. In this part, I added the ability for the player to restart. I also show a version that is a bit more inefficient and discuss why it is “bad.” Hope you enjoy! ...

June 24, 2025 · 1 min

Sokoban Part 4: Colors and Main Menu

Hi all, this is the fourth part of this series on coding Sokoban in c++. In this part, I added colors to the game rendering, fix some naming, and work on the beginnings of a main menu. Hope you enjoy! Project repository: https://github.com/bi3mer/sokoban

June 20, 2025 · 1 min

Sokoban Part 3: Organization

In my previous video, I updated the code to use ncurses. In this one, I take a break from implementing new functionality and instead reorganize the code to prepare for the next part of the project. I also made a GitHub repository for the project: https://github.com/bi3mer/sokoban Hope you enjoy! ...

June 19, 2025 · 1 min

Sokoban Part 2: ncurses

In my previous video, I implemented Sokoban in C++ using bitboards, but the experience of playing the game was somewhat dull. So, I figured that it may be fun to improve the experience by making use of ncurses. It’s a lot shorter this time. Hope you enjoy.

June 18, 2025 · 1 min

Sokoban Part 1: Bitboards

As part of my job as a teaching assistant, I was asked to create a video on a topic related to C++. It could have been one of my own projects or someone else’s, but I thought that live coding would be more useful. So, here is a not-so-short video of me coding Sokoban using bitboards. ...

June 17, 2025 · 1 min

Block Randomization

Last month I ran an online study with 250 participants. There were 5 possible conditions, and assignment was random. You would expect there to be ~50 participants per condition. In my case, though, one condition had 36 participants, creating an unideal skew in the dataset in terms of participants per condition. The problem was random assignment. What I should have used instead was block randomization. Block Randomization Block randomization is super simple to implement, but it comes with a major downside when compared to random assignment. Random assignment is great when you’re running an online study because it does not require a server. Every client can call select a random condition on its own. Block randomization needs a server. ...

April 30, 2025 · 6 min

Logging for Recformer

One of my regrets is not actively writing about Recformer1 as I implemented it. I realized this while writing my last blog post, and this post is me trying to rectify that mistake. So, in this post I am going to discuss logging for Recformer. Why Does Recformer Need Logging? Great question! Recformer is part of the work I’m doing for my dissertation. The work I have done up and to this point has shown that the method I created for dynamic difficulty adjustment via procedural level assembly works when tested with agents, but I have not shown that it has any effect when player’s (i.e., actual human beings) interact with it. To address this, I am running several studies with real player’s to see how the system works. And while I will be asking the user to fill out a survey to learn more about the player’s experience, I also want quantitative data (e.g, levels completed, time played, etc.), and this is why Recformer needs logging. ...

March 27, 2025 · 10 min