(Sep 30, 2022)
Typing 'go blue' instead of something like 'go east' results in a runtime exception. I take exception to that. Let's fix it.
kotlin ]
(Sep 30, 2022)
Converting the enums to Kotlin's preferred rules. Published for the record, whatever that means. Probably means, scan or don't read at all. Nothing to see here, move on ...
kotlin ]
(Sep 29, 2022)
Just a bit more play with the Direction and Room enumerations and related code. Should I work out why 'e' doesn't work, or just make it impossible?
kotlin ]
(Sep 29, 2022)
I don't know quite what we'll do this morning. Something fun. Let's start by talking about good times.
kotlin ]
(Sep 28, 2022)
Often tiny changes can have very desirable effects. When that happens, it may be a sign that things are in decent shape.
kotlin ]
(Sep 28, 2022)
Feeling rather done with Gilded Rose, I take another look at the text game building code. There are issues.
kotlin ]
(Sep 27, 2022)
It seems to your faithful author that we've done nearly all we can with the Gilded Rose. We'll take a final look. Or maybe not final. Who knows?
(Sep 26, 2022)
I want to try another approach to the product-type lookup. I have to try it to see if I like it.
(Sep 26, 2022)
We'd like a better way of getting from an items name to its type. We'd like it to be bullet-proof, but not difficult to manage.
(Sep 25, 2022)
I was glancing at yesterday's article last night, and noticed some truly odd code that IDEA generated for me. We'll start there, and I have some improvements in mind.
(Sep 24, 2022)
We are supposed to implement a new feature in the Gilded Rose program. Let's do that ... and let's take a look at where we are ... and where we might go. (Final: We go somewhere rather nice!)
(Sep 23, 2022)
The point of a kata is that we do it again and again, practicing to get better. This isn't really a kata, but it's somewhat like one. (Outcome: Two points to GeePaw.) (UPDATE: Not a bug! Woot!)
(Sep 23, 2022)
I do some microtests. Didn't even take an hour, including writing.
(Sep 22, 2022)
Let's see if we can wring a bit more out of refactoring the Gilded Rose. (Some wiggling back and forth to slightly better code.)
(Sep 22, 2022)
Continuing the long refactoring from the previous article.
(Sep 21, 2022)
One course seems obviously better. I shall choose the other.
(Sep 21, 2022)
Articles 76 and 77 are a long, tiny-step refactoring. Here, we'll preview where we started and where we wind up.
(Sep 21, 2022)
Yesterday the FGNO / Zoom Ensemble played with the Gilded Rose. This morning we'll look at it here.
(Sep 20, 2022)
Mostly I plan to solve the water problem this morning. But I'm wondering about concision. When is enough too much?
kotlin ]
(Sep 19, 2022)
Two small changes for your amusement. UPDATE: No, three! Thanks Christian!
kotlin ]
(Sep 19, 2022)
Wrapping collections keeps the tricky stuff inside and offers nice clean easy stuff on the outside. That's why we do it, right there.
kotlin ]
(Sep 18, 2022)
This morning I plan to encapsulate my map of Item instances, and show why I think it's a good idea. In addition, I'll clarify what I mean by 'always' and 'never'.
kotlin ]
(Sep 17, 2022)
Let's keep banging away at the new Item. We'll make them a bit smarter.
kotlin ]
(Sep 17, 2022)
Yesterday's work on using the DSL turned up some issues. None of them surprise me—but that doesn't mean I know how to deal with them. Or ... do I? (And: I seem to be feeling whimsical.)
kotlin ]
(Sep 16, 2022)
Let's do some world-building, with tests. OK, I admit it: no tests yet. Barely made it work.
kotlin ]
(Sep 16, 2022)
Let's fix one of those 'lateinit' variables. They're definitely a code smell.
kotlin ]
(Sep 16, 2022)
Some things seem to me to be happening at the wrong time. One issue is the GameResponse. Another is in building the world. What ever shall I do? (I 'discover' TODO.)
kotlin ]
(Sep 15, 2022)
There's not really much left to do here, if my purpose is to build a DSL for Zork-like games. That's a big problem. Today: A nice refactoring in tiny steps.
kotlin ]
(Sep 15, 2022)
Some tidying, but I do need to find a smooth way to do it.
kotlin ]
(Sep 14, 2022)
A quick test of a simple idea seems good. I am pleased.
kotlin ]
(Sep 14, 2022)
Let's make some progress toward Room actions. Some fairly nice refactoring and feature addition in here. Includes: praise for IDEA and Kotlin.
kotlin ]
(Sep 13, 2022)
Let's see if we can untangle things a bit in and around Imperative, Phrase, and the like.
kotlin ]
(Sep 12, 2022)
Back to the Phrase-matching find. I'll grow it incrementally this time ... and it works! Life is good.
kotlin ]
(Sep 12, 2022)
OK, with that off my chest, we can do some code. Let's keep after Actions and the associated items. Things do not go as I expect.
kotlin ]
(Sep 11, 2022)
I think this morning's thinking was good enough to deserve a chance. Could my thinking be wrong? It has happened before.
kotlin ]
(Sep 11, 2022)
In which, our intrepid hero realizes that while thinking is good, clear thinking is better than muddy thinking.
kotlin ]
(Sep 10, 2022)
A really nifty idea collapses. Yet, I ain't bovvered! Come read and find out why.
kotlin ]
(Sep 9, 2022)
Let's do a bit more on the SmartMap, and then try to get it in play. (Spoiler: It works nicely! I am pleased.
kotlin ]
(Sep 8, 2022)
I have what I think is a very nice idea. Let's talk about it and then start working toward it. Is this BUFD?
kotlin ]
(Sep 7, 2022)
Now I'll try adding something to my actions collection, first in regular code, then tomorrow I'll try to add the capability to the DSL.
kotlin ]
(Sep 7, 2022)
Let's look at the Actions in the new Imperative. Advice from my betters suggests I could do, well, better.
kotlin ]
(Sep 7, 2022)
Report and confession on last night and some behind the scenes grunt work.
kotlin ]
(Sep 6, 2022)
Let's make the Actions in the Lexicon do their job. There are some issues ... do we resolve them? We do and it's great! A big lesson is relearned.
kotlin ]
(Sep 4, 2022)
This time around, I'll plug the Imperative into the game, or know the reason why I couldn't. I'm hoping for the former. (Spoiler: works!)
kotlin ]
(Sep 4, 2022)
Let's find more small steps toward replacing the old Command idea with Imperative. I have in mind providing a Lexicon in the existing structure.
kotlin ]
(Sep 3, 2022)
I want to move the testing bits for Imperative back down to the test branch, segment, section, whatever it's called. IDEA impresses me.
kotlin ]
(Sep 3, 2022)
Let's put this in context. No, I'm not explaining. We're going to put all this into Context. Includes Shiny Squirrel pattern.
kotlin ]
(Sep 3, 2022)
This morning, I want to try a different way of mating the new Imperative to the existing scheme. First, I'll have to figure out what that scheme is, and whether there's anything in it to like. I suspect there is.
kotlin ]
(Sep 2, 2022)
Let's see about converting the `when` to a table. Sounds easy enough.
kotlin ]
(Sep 2, 2022)
A bit more work with the new Imperative. In reviewing the code, I'm not sure what else it needs to do the job. After a bit of testing and enhancing the tables, I'll think about whether and how to use it.
kotlin ]
(Sep 1, 2022)
This morning I plan to share some early thoughts and perhaps turn them into code. (To enjoy this article, please set your expectations to 'I wonder how Ron might go from a vague dreamy idea to something that might actually be useful'.)
kotlin ]
(Aug 31, 2022)
I think I'll experiment a bit with a Command object and its context. I'm not sure where this will lead. Perhaps to the bit bucket.
kotlin ]
(Aug 31, 2022)
Some interesting insights from last night's Zoom inspire me to morph my design. A lot of thinking, a little coding. A decent direction, I think.
kotlin ]
(Aug 30, 2022)
Today's plan: plug in the new parser. We'll need to refine it just a bit, but I'd like to get it in play this morning. Best laid plans ...
kotlin ]
(Aug 30, 2022)
A fix for the warnings, but do I like it?
kotlin ]
(Aug 29, 2022)
Let's see about cleaning up that `expand` method.
kotlin ]
(Aug 29, 2022)
It's 0525. I want to begin to try something before actually starting my day. This may go somewhere interesting, or crumble to sand in my hands. (Spoiler: I think it went rather well.)
kotlin ]
(Aug 28, 2022)
Refactoring in the direction of what we think we might prefer. Beck said: Make the change easy, then make the easy change.
kotlin ]
(Aug 28, 2022)
I get good advice from my betters. In the face of that, I forge ahead.
kotlin ]
(Aug 27, 2022)
Let's do some very simple parsing.
kotlin ]
(Aug 27, 2022)
A little refinement, and then let's press forward on Picov Andropov objects.
kotlin ]
(Aug 26, 2022)
At a more civilized hour, I have an improvement in mind. And it's really time to start doing something about inventory. And, curiously enough, I am rather successful.
kotlin ]
(Aug 26, 2022)
It's 0415 and I'm awake, with what seems to be a good idea. Is it a good idea to program at 0415? That remains to be seen.
kotlin ]
(Aug 25, 2022)
Let's push the Spike in a little deeper. I've got some ideas for how it could be quite nice. Good ideas? We'll find out.
kotlin ]
(Aug 25, 2022)
Yesterday, in an astounding flurry, I made a magic word open a lock. I also made a bit of a mess, which is partly good but probably mostly bad. Today, I set out to improve the code—and the feature. (As usual, that's not what happens.)
kotlin ]
(Aug 24, 2022)
I want to set up a test world where you have to say a magic word to open a door, or something like that.
kotlin ]
(Aug 24, 2022)
Still working toward the View displaying our new 'say' text. Might make it this morning.
kotlin ]
(Aug 23, 2022)
I think the next thing I need is for a message to come out in response to a command. We need an extension to GameResponse. (For once, reverting would have been the wrong thing to do ... probably.)
kotlin ]
(Aug 23, 2022)
I have some design thinking to report, but my hope for today is to have an operating grate somewhere in the world. I manage a good first small step.
kotlin ]
(Aug 22, 2022)
I need smaller steps. The Game sends the command to the current rRoom. But the World knows the rooms, and neither the Game nor the Room do. Let's try passing the World to the Room.
kotlin ]
(Aug 22, 2022)
In order to find out what our DSL should be like, I propose to code up a few scenarios 'by hand'. I make some progress but not as much as I'd hoped for. Lost thread. Reverted. Good man!
kotlin ]
(Aug 21, 2022)
Now that the game can be played, more or less, it's time to think of some scenarios that we need our DSL to support.
kotlin ]
(Aug 20, 2022)
Inching forward. Pretty sure I can make a TextField work. Final Result: The Game is Playable!
kotlin ]
(Aug 20, 2022)
There must be text things in JavaFX/TornadoFX. Everyone has them. How hard can it be? Wow, I hate being ignorant. But I love learning!
kotlin ]
(Aug 19, 2022)
How bad is it when you actually EXPECT your own article to be boring? I'll do my best to say something interesting. Includes a very long sentence and a small but important win.
kotlin ]
(Aug 18, 2022)
Time for a little planning, and some worrying. How far can I go before making this thing somehow playable? How far should I go? Bonus: A devil duckling!
kotlin ]
(Aug 17, 2022)
I wonder what we can do about output without actually having a way to play the game ...
kotlin ]
(Aug 17, 2022)
I'm psyched after two consecutive sessions with some success and no big troubles. What could possibly go wrong?
kotlin ]
(Aug 16, 2022)
How about a bit of code improvement? That might be fun.
kotlin ]
(Aug 16, 2022)
Let's parse a bit more of the DSL (Dungeon Scripting Language?) and then see what happens. I have high hopes, tempered by decades of experience.
kotlin ]
(Aug 15, 2022)
Let's try something specific with the DSL builder idea. I have in mind a text game like ADVENTure or ZORK.
kotlin ]
(Aug 13, 2022)
In which your intrepid author suddenly realizes something, and decides to do something he rarely does.
kotlin ]
(Aug 11, 2022)
I want to understand DSLs and builders. First, I have to figure out how to make a new project with tests in it. I anticipate an onset of grumpiness as I learn new things.
kotlin ]
(Aug 10, 2022)
OK, I'm feeling like working on acceleration.
kotlin ]
(Aug 10, 2022)
I have tidying to do, and some stories to implement. At this writing (0815), no actual plan.
kotlin ]
(Aug 9, 2022)
So few lines, so many design questions. We'll work more on Ship motion. (I manage some whimsy. Must be getting more comfortable with IDEA/Kotlin.) P.S. Learned a thing.
kotlin ]
(Aug 8, 2022)
OK, let's see if we can code up an operator in this baby. Overall Result: Much more comfort.
kotlin ]
(Aug 8, 2022)
Let's plug away, learning IDEA, Kotlin, and whatever, while also seeing how much TDD we can do on an essentially graphics-oriented game.
kotlin ]
(Aug 7, 2022)
First some grumbling, then an idea for something useful that I've not done before.
kotlin ]
(Aug 5, 2022)
I'm inching forward in my learning of Kotlin and TornadoFX. Progress is happening, but so slowly that I can't write as I usually do.
kotlin ]
(Aug 3, 2022)
We've all agreed to fork the repo. I'm on my own, more or less, and already confused even though I haven't even started.
kotlin ]
(Aug 2, 2022)
After more than a little hassle, my colleagues and I have a Kotlin shell that we can pass around. Today, for fun, I'm going to try to write some tests and code.