A Journey to the Western Islands of Scotland

August 8, 2012

To paraphrase Samuel Johnson:

I had desired to visit the Hebrides, or Western Islands of Scotland, so long, that I scarcely remember how the wish was originally excited; and was in the Autumn of the year 1773 induced to undertake the journey, by finding in Mr. Morris a companion, whose acuteness would help my inquiry, and whose gaiety of conversation and civility of manners are sufficient to counteract the inconveniences of travel, in countries less hospitable than we have passed. On the eighth of August we left Edinburgh, a city too well known to admit description, and directed our course northward.

Read the rest of this entry »

Dominion AI: Update 6 (with added thief)

June 18, 2012

Righteo, here’s the new version.

If somebody could be as kind as to play it and keep an eye out for bugs, let me know.

Please note: the AI is sometimes slow. For some reason, it finds weighing up the pros and cons of playing a thief card quite difficult. I’ll try and fix this in the next update.



Dominion AI: Update 5

June 6, 2012

Short update: while there isn’t a new version to play, I have made a lot of progress now that our mini-heatwave has passed. Specifically, the “max random buy” algorithm now plays action cards in sensible way, and can string cards together into combos. And I’ve managed to avoid hard coding any card priority lists, etc. Instead, it randomly simulates the effects of playing different cards and picks the one which has the best pay-off at the end of it’s turn. This has a few weaknesses:

  • the AI wouldn’t know what to do with attack cards, as it doesn’t place any value on making the other players pick up curses
  • it would never play a chapel, as there’s no immediate pay-off that turn.
  • now and then, it plays a smithy instead of a village (it should always play village first)

I’m currently in the process of implementing the thief card, which

  • makes the Big Money strategy less effective.
  • forces me to think about how I’m organising my code, as thethiefcard is more complicated
  • means I can also add the moat card, which is a nice and simple card. And also cheap!

Hopefully i can get the new version up sometime later this week.



Developing Dominion: Day 4

May 26, 2012

(well, it’s really day 5, but post 4).

Anyway, a few small updates. Hopefully you can play it here.

  • The AI is still stupid. And it never takes advantage of any bonus actions.
  • I’ve implemented most of the “simple” core cards. If I’ve missed anything obvious, let me know.
  • I’ve started adding in some flexibility to my code so I can implement cards with “small print.” So far, the only one that I’ve added is the witch.

Plans for the next update mainly involve creating some simple algorithms that will allow the AI to play its current hand sensibly.
ie, instead of picking an action card from its hand at random, it should first play cards such as village which grant it addition actions. It should also aim to maximise the amount of money it will have in the buy phase. This is a pretty simple heuristic, although it doesn’t place any value on making other players pick up curses, or gaining the ability to buy more than one card.

Day 3 of my Dominion AI project

May 24, 2012

Ok, a few bugs have been fixed and I think the implementation is now playable. If you can find a bug, please let me know. Or any other suggestions![I have a sneaking suspicion that the player decks aren’t working properly, but I’m not sure… will do some digging].

So, assuming I don’t find any more bugs, I’ll soon by able to start work on coding some AI algorithms 🙂 I’ll start with a few baseline dumb algorithms.

  • random1: play actions randomly, and buy cards randomly (although I’ll tell the AI to never buy curse cards.
  • random2: as above, but it will always try and buy the most expensive card it can afford.
  • big money: a common, simple and effective strategy. The algorithm only buys silver, gold or provinces.

I’ll also have to write some code to save game results for future analysis. 🙂



Day 2 of my Dominion AI project

May 23, 2012

Ok, no progress on the AI last night, but my code now supports human intelligence! (Ie, you can play against the AI. Which is useful for checking that the game has actually been implemented properly!)

Will I haven’t quite finished implementing the game rules, you can have a peak here if you like.

Known bugs:

  • the game currently doesn’t let you pass.
  • related to the above, if you play a card that grants extra actions, but have action cards to play, then you’re stuck
  • I need to give better feedback on what the AI is doing.

I’ll hopefully fix some of these tonight. If you spot any other bugs, please let me know. And also bear in mind that the AI is just playing randomly… it’s as likely to buy a curse card as anything else. Once I get the interface working a little smoother, I’ll start implementing some simple, and not so simple, heuristics.



A Little Coding Project: Dominion AI

May 22, 2012


as part of my ongoing paranoia about future employment prospects, I’ve decided to work a bit on my coding skills, and building something that shows off some of my machine learning knowledge. I’m going to start with building an AI for the card game Dominion. The game itself is pretty simple (the Wikipedia article explains the rules, so I won’t explain it here), with two main decisions to make each turn:

Read the rest of this entry »

Edinburgh Festivals 2011 : Jazz & Blues

September 12, 2011

Hello world. I thought I’d share my thoughts on the gigs I saw during the Jazz & Blues Festival. In general, I think the festival suffers from being too close to the almighty Fringe and International Festival. Tickets aren’t cheap, and while there are some good names, the line-up is never stunning (and by stunning, I mean something like the North Sea Jazz Festival… how did I miss that?!?).

Read the rest of this entry »

A week off work: Lots of things to do.

August 22, 2011

Well, my week off hasn’t started that well… spent the morning in work as I had a list of things that needed done. And now I’m home, and it looks like the week’s going to be pretty busy. On the to-do list we have:

  • Record Warr guitar parts for the next track on the Invisible Helpers EP. This will probably take longer than I’d like, but will be good for my technique… I’ll find out just cleanly I can play all those arpeggios.
  • Make some noticeable progress on some of the tracks for my collab EP.
  • Take my old fretted Warwick bass to Red Dog. The instrument’s action is all wrong (loads of fretbuzz) and I’m also wondering if I should get it re-varnished.
  • Start learning how to play lead-guitar style parts on the Warr. In particular, find where all the interesting notes are. I can find the obvious notes, and the wrong notes. Although I have a hunch that the problem isn’t with the notes at all: it’s how I play them
  • Play my ‘cello a bit. As the poor thing has been sitting in it’s case for too long
  • Read a few journal papers. Preferably over coffee.
  • Work out the best way to attach my pedals to my pedal board.

And finally, I’m also off to see the adaptation of the Wind Up Bird Chronicles in the Internation Festival, and Shooglenifty in the Fringe.

Lets see how much of that I get done.

One less excuse for not making good music

June 30, 2011

I finally gave in and took advantage of the 3 for 2 offer on Boss effect pedals. So I know reckon my effects board is complete…. tuner, volume pedal, compressor/sustainer, blues driver, chorus ensemble, fender deluxe, super octaver, and gigadelay.

Now I just need to get better at playing the Warr.