(Sep 25, 2023)
I think there are very few things left to do with Invaders. One of them is scoring.
(Sep 24, 2023)
More waffles, about the tensions between design alternatives for the Flyers. What if we were to open the doors as widely as possible? I think this is my last waffle on this topic. I like the outcome. Today.
(Sep 23, 2023)
I gave abstract method a chance, for almost 24 hours. I hated changing all my classes to implement all those pass methods. Let's try a different dispatch. Waffles?
(Sep 22, 2023)
Now that we have this metaclass, and now that we have this decorator, what shall we do? The answer may surprise you.
(Sep 19, 2023)
We continue learning decorators using tests. Our simple decorator doesn't handle parameters in the wrapped function. Lets figure out how to do that.
(Sep 18, 2023)
Never heard of him. Let's learn about decorators, using tests.
(Sep 18, 2023)
The Python "decorator" is less bizarre than metaclasses and might be just the thing for our needs. Let's try one.
(Sep 17, 2023)
There are surely ways to provide my `ignore` feature without using metaclasses. I can think of one. Maybe it will help me think of another.
(Sep 16, 2023)
Having found a way that I think will work, I'll try again today to install the 'ignore' capability. Hamsters. And success!
(Sep 15, 2023)
Today, I plan to install the new metaclass with the `ignore` feature. Result: Bears discovered deep in the bag of tricks. They bite. Later: I know what caused it.
(Sep 13, 2023)
Today, in the spirit of meta, I work on a metaclass for ignoring methods. I start on Wednesday and finish on Thursday. It's scary weird.
(Sep 13, 2023)
What shall we do today, Brain? The same thing we do every day, Ron. Find something interesting to do. Things get very meta ...
(Sep 12, 2023)
The Invaders team has encountered a troubling issue, and have been making some troubling decisions. We need to explore this and deal with it at its root. Spoiler: It's not the programmers. People over process.
(Sep 10, 2023)
Let's do ReservePlayer. It has essentially no behavior. We'll TDD it anyway, and will be glad we did.
(Sep 9, 2023)
Thinking about how we'll replace a destroyed player has led me to a strange idea. Perhaps too strange, yet fascinating.
(Sep 8, 2023)
The words "time capsule" popped into my head last night. Have I told you my favorite thing about this program's design?
(Sep 7, 2023)
Bill Wake's comment suggests more use of the new Masker. Looks useful.
(Sep 6, 2023)
In which, a small object helps improve our code.
(Sep 5, 2023)
Part two, following P-247. Another idea. And we still have more opportunities to improve! Wait, SQUIRREL! Two of them!
(Sep 5, 2023)
In my quest to spend way too much time on ImageMasher, I have another idea. I should also mention why this exercise is a good one: changing code is our job.
(Sep 4, 2023)
Let's take a look at the ImageMasher. We'll see how far toward perfection (or lily-gilding) we can push it. We go a long way—and at the end I think I see still more that we can do.
(Sep 4, 2023)
It's oh-dark-thirty but I think I've got the answer.
(Sep 3, 2023)
An early idea got me up, to get it down, as it were. Too interesting for me to go back to sleep. Yes, I am strange.
(Sep 2, 2023)
I didn't see it on my drawing, I didn't see it in my code, but then I saw it in the code in my mind. The lessons today, oddly, are about dozing, and estimation.
(Sep 1, 2023)
I believe I'm close to understanding masks well enough to build a little object. Another test or two and then I hope to try something. Chaos may or may not ensue.
(Aug 31, 2023)
Before I try to improve the way the Shield adjusts its image and mask, I feel that I need a better understanding of how things work. We'll use tests to learn and record.
(Aug 31, 2023)
Some reflection, and an exchange with Rickard, makes me think that my lovely little Tasks object isn't as great as I initially thought it was. Let's think, code, think, and learn.
(Aug 29, 2023)
Let's do some tasks, now that we have the Tasks object. We'll see how we like it.
(Aug 29, 2023)
Not my ideas, mind you. Two good ideas from Tomas set me on a course for last evening and this morning. Are there rats in here?
(Aug 28, 2023)
Let's see if we can add lightness to our reminder facility.
(Aug 28, 2023)
My timing defects have caused some thinking, some of it mine. There might be a better way. (This is long, because there's a lot of design thinking. Then some rather interesting doing.)
(Aug 27, 2023)
There's a second "timing" defect in Invaders. This one is harder to forgive. Mea culpa. Plus: At least one other defect. And I allowed myself some fun writing this one, too. Same as it ever was.
(Aug 26, 2023)
Let's clean up the shields code and improve the damage. I've found a missing piece, the explosion part. A rather nice refactoring sequence ensues.
(Aug 26, 2023)
Let's clean up the shields code and improve the damage. I've found a missing piece, the explosion part.
(Aug 25, 2023)
It's 3 AM. The power's out, the phones are down. Of course I'm going to program a bit.
(Aug 24, 2023)
I have the facts. Let's draw four shields. Then shoot them a bit.
(Aug 24, 2023)
The Invaders game has shields, four of them. They take damage from invader shots, but are not destroyed in one go. This will be interesting. What do we need and what are some small steps?
(Aug 23, 2023)
Let's start transitioning away from inherited `interact` methods, making them abstract as originally intended. I'll try to devise a sensible way of proceeding,
(Aug 23, 2023)
Let's explore last night's matrix idea. There's got to be a pony lesson in here somewhere.
(Aug 23, 2023)
Last night, some topics came up that I'd like to consider a bit this very early morning.
(Aug 21, 2023)
If I'm right, which assumes facts not in evidence, this next step is going to be surprisingly easy. This often happens. There may be a reason.
(Aug 20, 2023)
I had an interesting realization about the shot patterns. And we have a hanging commit, some broken tests, and more to do before we are done.Things go well. Thoughts on small steps.
(Aug 19, 2023)
Let's find another small step toward invader shots. Maybe even more than one. Very long, I'm not sure why. And no commit at the end. Afternoon distractions. Not delight, just distractions.
(Aug 19, 2023)
Invader shots emanate from invader columns, according to a pattern. How are we going to do that?
(Aug 18, 2023)
Everyone needs them. Let's make that happen. Then, let's explode some invaders.
(Aug 18, 2023)
I think first I'll have the invader and player shots destroy each other if they collide. I had hoped for more. This caused enough trouble. Mostly resolved, I think.
(Aug 17, 2023)
I think today I get to start on the invader shots. How much of the original game's pattern must I follow? Probably it's too soon to ask. Squiggles!
(Aug 16, 2023)
There's reason to believe that there's an object in here. Let's bring it out. I feel I picked a poor path. How could I know?
(Aug 15, 2023)
At least two collision issues face me. One is how to stop the shot after it hits an invader. Another is that I see an object trying to be born.
(Aug 14, 2023)
Let's see about how to detect collision between the invaders and the player shots. I think we want to do actual bit overlap.
(Aug 14, 2023)
In response to a question from Bruce, I find myself looking askance at one of my darlings. Should I kill it?
(Aug 13, 2023)
We have a start at player shots. Let's get one on the screen .. and then off the screen.
(Aug 12, 2023)
I think I'd like to try the player shot. Names are becoming an issue. For once I do the right thing.
(Aug 12, 2023)
It's time to make the game look a bit more like a game. I'd like to think briefly about what to do and how to do it.
(Aug 11, 2023)
Having used the BitmapMaker in the game code, I envision a better way of using it.
(Aug 10, 2023)
I think the bitmaps are ready to be moved into the Asteroids-Invaders repo. I hope to actually use a couple of them in this session. Success! And an amusing mistake.
(Aug 9, 2023)
I've been pecking away at making the bitmaps for Space Invaders. Let's take a look at where we are. Gross ad-hocery and a lot of pasted data and bitmaps. Not very interesting, even for me.
(Aug 8, 2023)
There may be room for more refactoring in the fleet/group area. What even are those two objects? New CSS, consider clearing browser caches.
(Aug 7, 2023)
Let's continue to look at InvaderFleet and see whether some handy little objects might help us out.
(Aug 7, 2023)
It seems to me that InvaderFleet may be asking for some refactoring. Let's start with some thoughts on TDD, and a look at the tests and code.
(Aug 7, 2023)
I would really like to move this game along a bit. But there's a matter of scale that needs attention: the reversal points. And that fills the morning.
(Aug 5, 2023)
Let's continue with moving the invaders. We have some issues to deal with, and for at least one, I have no solution in mind. Lots of thinking tells me there's something funky in here.
(Aug 5, 2023)
I believe that I've made a mistake. This will not be my first, nor, I fondly hope, my last. CW: Contains brief Jira abuse.
(Aug 3, 2023)
It's time for a README file. Well past time, to be clear. And I have an ulterior motive, which will become apparent in due time.
(Aug 1, 2023)
Let's take the next steps to, um taking the next steps.
(Aug 1, 2023)
Bruce gave me a very nice idea: Bumpers! I think I'll try it.
(Jul 31, 2023)
I've decided to extend the Asteroids program to include Space Invaders in addition to Asteroids. I expect this to be—well—not easy but not too difficult.
(Jul 30, 2023)
We've managed to import some bitmaps and display them. It's time to start sketching and executing a plan. Then I ask myself a hard question, leading to a complete change of direction!
(Jul 29, 2023)
We do a quick bitmap experiment, and then create some alien surfaces from the original Space Invaders arcade source code.
(Jul 28, 2023)
Further setup for the record. PyCharm pleases me.
(Jul 28, 2023)
Today I plan to set up a new Python project. This one will be a Space Invaders replica. I'll say a bit about the idea, but this is mostly just a record of how setup went.
(Oct 28, 2020)
Today, some code review. No big plans. We'll see what we see. I expect to mention Beck's Four Rules.
(Oct 27, 2020)
We'll look at using invader count as a flag to start a new rack. I don't promise to change it.
(Oct 26, 2020)
I don't feel very bright this morning. Let's see if I can prove it.
(Oct 23, 2020)
I have an idea and I can't wait to try it out. Niagara Falls.
(Oct 23, 2020)
Today's plan: Code review, and targets of opportunity. Short morning, just one new class.
(Oct 22, 2020)
Displaying two player score. Beyond that, we'll see.
(Oct 21, 2020)
Attract mode needs to be turned back on. Maybe we should show both players' scores. What about those buttons?
(Oct 20, 2020)
Let's do more on the two-player game mode. We're probably getting to the hard part.
(Oct 19, 2020)
It's time to start on the two-player option. I have ideas but not precisely a plan.
(Oct 18, 2020)
A lesson from history, a surprise refactoring, and, apparently, a sermon.
(Oct 16, 2020)
Not really, but the saucer is looking to score.
(Oct 9, 2020)
Users observe the need for more racks of invaders. That's going to get ... interesting. Also Game Over if they reach bottom.
(Oct 8, 2020)
I've convinced myself that a global would be a better way to handle constants than the singleton. Kill your darlings.
(Oct 7, 2020)
Users have detected a problem. Users, do you hear me? Users!
(Oct 6, 2020)
Improving zombie behavior. Sound adjustments. Maybe more. Maybe less.
(Oct 5, 2020)
Let's take a look at a simple attract mode. Zombies!
(Oct 4, 2020)
More with Singletons. And distractions. And no singletons.
(Oct 3, 2020)
Improving our Singleton and using the idea elsewhere.
(Oct 2, 2020)
There's no reason to think that I'm smarter today than I was yesterday, but I am a bit more experienced.
(Oct 1, 2020)
Touch to Start has me thinking that attract mode might be within reach. Things go Very Wrong.
(Sep 30, 2020)
Saucer Scoring, then whatever makes sense to me at the time.
(Sep 28, 2020)
Another day of improv. Let's see what looks worth doing. (Wow, a factory object!)
(Sep 26, 2020)
What shall we do today? I honestly don't know.
(Sep 26, 2020)
Remarks on a Twitter comment from Jez Higgins.
(Sep 25, 2020)
Another defect. I'm starting to feel ... afraid. That's not a good sign.
(Sep 23, 2020)
Things we might do. And I'm thinking about conditionals. The next trick may surprise you.
(Sep 22, 2020)
I have an idea. Let's find out if it's a good idea.
(Sep 21, 2020)
Maybe some tuning. Do we need more start-up settings? Should the test results disappear? What about a FireControl object?
(Sep 19, 2020)
The world is burning, and I'm really just trying to ignore reality, but in addition, I've made a mistake. Another mistake, that is.
(Sep 18, 2020)
If nothing else, you have to admire me for getting over 100 articles out of ancient video games. Let's do another today.
(Sep 17, 2020)
Better scaling, then more with the saucer, I guess. Plus whatever opportunities we spot.
(Sep 16, 2020)
More with the saucer, that's my plan.
(Sep 15, 2020)
I know the voices in my head aren't real, but they're sure ticked off at me for the past few days of messing up.
(Sep 14, 2020)
Well this goes entirely not as planned. Double Arrgh.
(Sep 12, 2020)
No, not space pirates all of a sudden. I released a fatal defect yesterday. What's up with that?
(Sep 11, 2020)
A couple of small changes to CodeaUnit and my CUBase template. Then let's see what we can improve about Space Invaders. (Saturday: Arrgh, a defect!)
(Sep 10, 2020)
More to do with bombs, especially targeted ones. We need some refactoring as well. The results may surprise me.
(Sep 9, 2020)
I think today we'll work on the bomb timing, and targeting the rolling bomb. Often, what I think will happen is what actually happens.
(Sep 8, 2020)
Let's continue the bomb dropping logic. Our current design can't do what's required.
(Sep 7, 2020)
Speed indicator; Bomb dropping order; Free player, maybe.
(Sep 5, 2020)
Some recovery from repo problems, some work with the clock, whatever else seems right.
(Sep 4, 2020)
The web site with sounds came back, so I'm scarfing them down and starting to install them. Should be mostly straightforward, he said. Except when my repo locked up.
(Sep 3, 2020)
If you're like me, you're wondering what space invaders eat. The answer will surprise you.
(Sep 2, 2020)
Let's damage shields from below, and try to continue small steps toward 'better', whatever we mean by that.
(Sep 1, 2020)
Let's make missiles explode, and continue improving this design.
(Aug 31, 2020)
I want to figure out why this program makes me feel bad. Then do something about it.
(Aug 27, 2020)
Some improvements. But first, a word about less technical matters, the book `x + y`, by Dr Eugenia Cheng.
(Aug 27, 2020)
A bit of planning, a bit of action.
(Aug 26, 2020)
Let's get a start on scoring. This should be easy enough. But--when is too much way too much?
(Aug 26, 2020)
I woke up this morning certain that some of my bitmap calculations were STILL off. Something has to be done.
(Aug 25, 2020)
A bit more exploding. I'm going to continue to let things get messy.
(Aug 24, 2020)
Let's do some damage
(Aug 21, 2020)
It's my ball and if I want to play with it you're not the boss of me.
(Aug 20, 2020)
One of these two things is not like the other ...
(Aug 19, 2020)
If the world isn't flat, how come these invaders keep falling off the edge?
(Aug 18, 2020)
Today we'll try to fix the collision logic to accommodate our origin changes, and to make the invaders explode.
(Aug 16, 2020)
I've moved the good iPad into the TV room and while waiting for our Sunday festivities to start, I'll set up the project's bitmap assets.
(Aug 14, 2020)
Having decided to move to CORNER mode from CENTER, we've got some work to do. I'm hoping this one isn't interesting.
(Aug 13, 2020)
Is it worse luck when Friday the 13th comes a day early? Or a near miss? Time to dig further into bombs failing to miss shields. (Added Friday: It was worse luck.)
(Aug 12, 2020)
I had no plan. Now I have a plan. Check code clarity, then work on shields. Things go ... oddly
(Aug 11, 2020)
Maybe make the invader bombs do some damage? Or what?
(Aug 10, 2020)
My plan for the day is to retrain myself by reading this code that I've not touched for two whole days, and then to see about moving things forward. My guess: invader missiles.
(Aug 7, 2020)
I think today I'll work on making the invaders march back and forth. Right now they just march forth and forth and forth ...
(Aug 5, 2020)
It's 6 bloody AM and I'm programming. What's up with that?
(Aug 4, 2020)
Let's see about extending our square invaders game-like thing to be a bit more like a game.
(Aug 3, 2020)
Twelve articles and no product. What's up with that?
(Jul 22, 2020)
In the real game, the invaders' missiles eat away at the shields. How can we duplicate this effect?
(Jul 21, 2020)
An experiment and some planning. Then even some doing.
(Jul 20, 2020)
Learnings from the ancient scrolls. What shall we do about them?
(Jul 18, 2020)
This one is mostly for the record, if it goes as planned. I'm just going to import some more bitmaps. I recommend against reading this.
(Jul 17, 2020)
Let's see what happens if we try to refactor our little spike into something reasonable.
(Jul 16, 2020)
A bit of an idea about marching, and thoughts about spikes.
(Jul 15, 2020)
I need an idea. Representation is important.
(Jul 14, 2020)
I'm wondering how to move these invaders. Let's do an experiment.
(Jul 13, 2020)
Dave1707 from the Codea forum shows a much better approach to converting the bitmaps.
(Jul 11, 2020)
Importing Invaders. How hard could this be?
(Jul 10, 2020)
I'm having so much fun with Asteroids that I thought I'd look at the old Space Invaders game. I'm sure I'll learn something.