Train is animated and chugging along on the bottom of the screen!

RegEx Express

"Choo choo!"

All aboard the RegEx Express, where we be learnin' things and parsin' strings! Using curses and verses we'll be mixing humor and rhyme with good-ol'-fashioned ascii graphics.

So join us back on the track -- the choo choo track -- and it's full steam ahead on this string bling fling!


Best Educational Game
Presented by saluk

"Most Awards Given" Award
Presented by pymike

*Star Quality* award
Presented by scav

"Curses! That's a train!" Award
Presented by pymike

Teal BLOCK award for my friend needs an exe copy.
Presented by eugman

Mental Copulation - Make An Unfun Concept Fun
Presented by ZeroByte

Give this entry an award


Ratings (show detail)

Overall: 3.5
Fun: 3.1
Production: 3.3
Innovation: 4.0

Respondents: 38


File Uploader Date
Regex Express V1.3 Final
HanClinto 2008/09/13 23:59
Horray, we got in another revision!
HanClinto 2008/09/13 23:54
Regex Express V1.1 Final
steveth45 2008/09/13 22:05
Regex Express v1.0 Final
steveth45 2008/09/13 21:15
steveth45 2008/09/13 20:30
Train is animated and chugging along on the bottom of the screen!
HanClinto 2008/09/13 17:44
Here it's loading a tutorial from a data file, and presenting it as an interactive exercise for the user. If the user succeeds, they are greeted with a success message and taken back to the tutorial screen.
HanClinto 2008/09/12 05:13
Here's the tutorial selection screen. Arrow keys control the selection, and press enter to make your choice.
HanClinto 2008/09/12 05:12
One piece of smoke was staying still and bugging me. Yes I'm being OCD. Anyways, here's the (very slightly) modified animation.
HanClinto 2008/09/11 18:35
Here's a test animation of our title train. I think it turned out reasonably well -- I can't wait to get this in the game.
HanClinto 2008/09/11 18:25
Regex live-search is better now -- it now hilights in bold the particular portions of the strings that match. As you type, it dynamically updates the screen to give you a very interactive feel for how the regex is matching.
HanClinto 2008/09/11 14:00
Live find is working. Here you can see a partial match, where it correctly matches only some, and falsely matches others.
HanClinto 2008/09/11 05:28
First screenshot of our curses-based UI
HanClinto 2008/09/10 19:14

Diary Entries

Pulling out of the station...

Well we've got a game idea, a look-and-feel, and a name for our game.

I've spent more time than I probably should have learning Curses to do the ascii graphics, but overall it's working well. Sadly, Curses doesn't work on Windows. So even though my teammate and I are both developing on non-Windows systems (OSX and GNU/Linux respectively) and can run Curses natively, we are targeting the largest demographic of Pyweek developers and players, which is Windows. So in order to keep using curses, we've borrowed and are modifying the Pygame-based Curses emulator that Alya wrote for Isle of the Cursed Phoenix. It's a thin but fantastic piece of code, and it's been great to learn how to use curses while expanding the emulator that Alya started.

Spent too much time doing ascii artwork and animation for our RegEx Express train, but we're pretty excited about the theme and throwback to the old "Conjunction Junction" style rhymes, puns and whatnot.

All aboard!


And the train says, "woot woot!"

Thanks to ZeroByte for the cheesy pun in the title. :)

We're letting loose a lot of our features -- sortof like disconnecting some heavy cargo cars from the end of the line because they'll cause you to roll into the station too late. "Better light than late", I says.

Our stack-based UI is working well, making it really easy to navigate within the game and add new sections to it. I think I want to write this up as a template structure for making a generic object-oriented game -- it's a wheel that I've reinvented so many times, I'd really like to template-ize this thing to speed up future development. Not that I want to make this a code library -- more just like pictures and rough class interfaces to help with partitioning / organization of projects, regardless of genre, platform or language.

So to recap, we now we have our curses-based UI, a class to hold our puzzles and load them from files, context-sensitive help, and our dynamic as-you-type regex puzzle interface.

Next stop, randomly generating puzzles, getting the animated ascii train into the main menu, and last but not least, scoring -- which will, incidentally, be heavily influenced by the length of your string. If we have time, we'll add in user testing, revise the tutorials, and possibly add a new game mode or two.

Keep up the great work, everyone -- I'm looking forward to seeing everyone's entries! The number of physics games this year is exciting. :)

Add a comment

Regexy Fun

Wow, thanks for the strange awards, everybody. I hope you enjoyed the mental exercise. Part of the reason we wanted to do a regex learning game is that we are sort of amateurs at the subject. Well, I suck, at least. So, this was as much of a learning experience for me as for anyone else.

We wanted multiplayer, but alas, time did not allow. Hanclinto did a fantastic job with the curses interface. I really enjoyed working with him, so here's props to the Hanclinto!

If we learned anything, it's that a good division of labor, source control, and small enough scope is a good recipe for getting a game finished, even without much time to work on it.

Add a comment

Py2exe'ing Games

RegExExpress 1.3 3.45mb

Thanks to Eugman for the encouragement, we've now made an EXE package of our game. Part of the reason why it took so long is because we were having trouble getting our data to package correctly in the that was being created with some of the other py2exe scripts floating around. So with reluctance, I dug out my old Skellington py2exe script, and surprisingly, it worked like a champ on the first try! If you're having trouble packaging up your game, please give this a shot and download my Skellington-specific py2exe script. Just put the unzipped files (the .py and .ico files) directly into your gamelib directory and then run it -- it will walk you through the rest. 2.1k

I'm interested in feedback if this works for people -- if we have enough success with it, we might want to consider putting this as a into the next revision of the Skellington -- though if we're going to do that, I'd perhaps like to expand for py2app as well.




Ratings progress

w00t! 54 games played and rated, 1 game marked as DNW (never got Allephant to work on OSX).

I'm sure my wife will be happy that my evenings won't be quite as consumed with Pyweek now. :)

How is everyone else coming? Anyone able to run and rate all 55 games?

Edit: Aww nuts, just noticed it was only 53 games successfully played -- pw7_trobadour was a DNW for me as well.


Porting to Flash...

Rarely do I get the motivation to continue working on a speedgame after the contest is over. And so RegEx Express is a bit of an anomaly for me, in that I'm still working on it.

However, I'm not working on it in Python -- I've ported the Curses emulation library to ActionScript, and have started porting over RegEx Express into the world of browser-based games.

When working on RegEx Express, I created the UI class structure in such a way that it could apply to any game, in any language. I've been tentatively calling this structure HUGS (Han's Universal Game Structure) -- basically, I'm trying to distill my experience with speed-gaming down to a collection of "best practices" that will help solve the perennial wheel-inventing that goes on with trying to create a UI structure, managing a game clock, how do you switch screens, do cut scenes, etc etc etc. I've been planning this for a while, and the first successful use of HUGS was on RegEx Express. Afterwards, I used it on my Pyday entry (though took advantage of precious little of its capabilities), and now I've got a working HUGS implementation in Actionscript as well.

So because I made a fairly straight-shootin' port of the Curses library, and I've got a HUGS game structure in both languages, it's a fairly copy-paste-port of the game. It's honestly not much more than copying the code, changing a few constants ("self" to "this"), and syntax changes (semicolons, curly braces, etc).

I'll definitely keep y'all posted with the progress in this front -- my goal is to port the game to Flash and get it up on some online edu-tainment portals, and perhaps even get it fun-enough to go on a place like Kongregate.

Thanks for reading, and I really genuinely appreciate everyone's voting feedback. We're working hard to implement many of those changes in the new version, and I hope that many of you will be willing to test and give feedback for future Flash versions.