Kanban on GitHub

I’ve started to use the kanban board on GitHub and it’s pretty useful!

So far I’ve laid out the tasks I need to complete to get the game logic into a better state for my cutesy version of the royal game of UR.

As I come up with new issues with the game that need to be tackled, I put them on the ToDo list on the left.

As I start a task I drag it to the midddle.

When it’s done, it goes to done. Seems simple, right? Well the visual list of tasks helps to motivate me to complete them, and it’s a format I’m familiar with working on at work. Usually an agile swim lane is used in web development circles but that’s pretty similar, with a column for QA added and maybe some others depending on your needs.

I think I’ll keep using this. It’s worth noting that this feature already existed as a part of GitLab. I run my own instances, but I haven’t used that feature up until now.

Gravity / Bead Sort Demo

So I was bored and watching videos, and I discovered these wonderful videos about the sounds of sorting.

I was intrigued by how fast the Gravity sort seemed to be, and others in the comments were as well. It seems to be one of the fastest in the video at about 11 seconds.

Most of the other sorts take 20 seconds or more.

So I wanted to try to implement the sort in C# to see what it can do. The fruits of that labour are here:

https://github.com/eanbowman/GravityBeadSortDemo/

Not as pretty as the colour circle or the other visualizations in the sound of sorting project, but it does the trick.

Maybe some day in the distant future I’ll add visualizations, or you can fork the code and make some for yourself!

The relevant sort code is as follows:

public static void BeadSort(ref int[] data)
	{
		int i, j, max, sum;
		byte[] beads;

		for (i = 1, max = data[0]; i < data.Length; ++i) if (data[i] > max)
			max = data[i];

		beads = new byte[max * data.Length];

		for (i = 0; i < data.Length; ++i)
			for (j = 0; j < data[i]; ++j)
				beads[i * max + j] = 1;

		for (j = 0; j < max; ++j)
		{
			for (sum = i = 0; i < data.Length; ++i)
			{
				sum += beads[i * max + j];
				beads[i * max + j] = 0;
			}

			for (i = data.Length - sum; i < data.Length; ++i)
				beads[i * max + j] = 1;
		}

		for (i = 0; i < data.Length; ++i)
		{
			for (j = 0; j < max && Convert.ToBoolean(beads[i * max + j]); ++j);
			data[i] = j;
		}
	}

Don’t Disable Nav Mesh Agent

So I’ve been working on the game logic to my little Raccoon Run experiment for a few months now in spurts of an hour here or a minute or two there.

I’ve been racking my brain as to why it was not functioning properly.

I made the mistake of building out most of the logic I thought was needed before really testing incrementally.

I couldn’t figure out why my raccoon game pieces were not moving forward after making their initial move.

It turns out that I was disabling the Nav Mesh Agent component on the raccoon game pieces.

This made it impossible for the game pieces to move after their initial move. Turning the component on again does not work, for whatever reason. It must be something to do with how it’s implemented. Regardless, you need to set isStopped to true instead.

Oops!

Live and learn!

Long Hiatus / New Project

Hi there! I’ve taken a long hiatus from posting here, but I’ve been working on the Ur clone game on and off for the past several months.

Recently Victoria helped me set up a pommodoro whiteboard so I can keep track of my progress. It’s worked somewhat, but September has a lot of social obligations and I haven’t kept up with it as much as I’d like.

I have also coded myself into a corner with the game logic. I’ve realized that it makes sense at this point to refactor a lot of the game logic code.

So when I do get time to do a pommodoro of work, I’ve been trying to clean up and finish that part.

I’m still missing some graphics and the menus and UI could use a lot of love, but I’m still working on it.

In the interim I’ve also bought myself a 3D printer. It’s the TronXY 100. A cheap and cheerful acrylic frame printer. You receive the parts for it flat-packed like Ikea furniture and assemble it yourself.

I’ve been quite liking it. At first it was pretty wonky. The screws for the Z axis (augers?) were too tight in the z-axis gear that meshes with them to carry the z-axis up and down. It was so tight that when I received it, the printer didn’t really work. I had to grease them with automotive grease to get it to even move.

Since then I’ve actually done tiny mods to increase the amount of printable space on the y-axis. I can print slightly larger things and the prints are more accurate now that I’ve tightened things down.

What remains is to maybe build a much sturdier box frame for it instead of the free sanding tower. The tower has some give and I think that manifests as waves in my prints.

All said, I’m as busy as I always am. Maybe I should take time more often to write down my thoughts here, as reading through them again really helps solidify my plans.

That’s all for now. Have a wonderful day!