06 February, 2026

#034 - Bullseye: Never Tell Me the Odds



Release Date: July 1973

Platform: Mainframe (BASIC Type-In)

Genre: Sports

Developer(s): David H. Ahl

Publisher(s): Digital Equipment Corporation


We are staying in the sports arena this week. This time it's a slightly less-flashy and far less dangerous sport compared to bullfighting. Darts is... an odd sport to me, to say the least, but one that has a cult following (as far as I can tell,) particularly in the United Kingdom. While odd, I have come to appreciate it, through my research for this article, as a neat sport that combines a physical skill (throwing) with a mental skill (speed arithmetic) that also doesn't require you to have a perfectly sculpted athlete's body to be good at. My beanpole figure certainly appreciates that - it's the throwing that worries me.

This digital interpretation of the sport, written by David Ahl for 101 BASIC Computer Games, runs just a little bit differently to the Darts I think most readers would be familiar with. It's a heavily simplified take on the sport that omits several rules and mechanics seen in the real thing.

The original Bullseye page. I'm waiting for Porky Pig to pop out of the centre of that image.

It's like this: the dart board in Ahl's Bullseye (oddly similar name to Bull) only has zones of 10, 20, 30 and 40 points - and you can also miss for 0 points. The aim is to get to 200 points first, which is relevant for the multiplayer side of the game, which I'll get to in a moment. 

In professional Darts, the score counts down from 501 or 301, and has all the numbered sections from 1 - 20, double and treble (triple) sections, and the two-sectioned bullseye of 25 and 50 point zones. The winning throw in the standard 501/301 rules also must be a double. All of that is omitted in Bullseye. That being said, I still think that the spirit of the original game is somewhat present in Ahl's Bullseye, and isn't completely unrecogniseable.

Now, the multiplayer. It's very clear to me that Bullseye is designed around its multiplayer component. This game's taking some inspiration from PLATO, it seems, as Bullseye is a big multiplayer game. How many players can throw per game? 

20. Twenty

For an early 1970s text-based BASIC game, that's completely unheard of. The only other game I can think of that allows more than 2 players to compete is Horserace, which allows a measly 10 players to bet per race, in comparison to Bullseye's 20 shooters lining up to throw. I don't know if anyone ever tried this with 20 people, I can only imagine it taking a long time to get through everyone, especially with how slow the old mainframes were compared to modern computers.

1978 edition. That kind of dart would definitely be illegal.

While Bullseye takes a simplified approach to the scoring, how it manages how you throw the darts is a little more interesting. At the most basic level, it reminds me a lot of Dartmouth Championship Football or PDP-10 Timesharing Basketball's design. There are three different throws you can choose from: 

  1. Fast overarm.
  2. Controlled overarm.
  3. Underarm. (I have never seen anyone throw underarm before. Is this really a thing?)

And the results of your choices are... not random! Yes! Unlike those other two games, each throw has been coded with specific odds, so there's a real choice this time. In the most basic terms,

  1. Fast overarm has the highest odds of a bullseye, but also a 50% chance to miss.
  2. Controlled overarm is the most reliable and least likely to miss, but also least likely to get a bullseye.
  3. Underarm is slightly less consistent than Controlled Overarm - more likely to miss, but also more likely to score a bullseye.

However, I discovered, while preparing for the video, that there's in a fact a coding error present in Bullseye. Whilst the odds above are the intended design, there's a mistake that causes Fast Overarm and Underarm to have the same odds. I thought at first that this was a copyist's error, that whoever copied the code down for Vintage BASIC made a mistake, but no - it's actually printed in the book! Look at the above picture of the 1978 edition page. Line 190 is the offending line - it goes,

190 ON T GOTO 200, 210, 200

I've italicised the mistake. That second 200 is meant to be 220. That's the part of the code that tells the game you've selected throw 3, and to run the odds in the lines below. Selecting throw 3 incorrectly tells the game to go to throw 1's odds on line 200, instead of throw 3's on line 220. Oops. The good news is that this is a very easy fix, even if you don't know programming. You can open the file up in Notepad, and just change that incorrect 200 to 220, and everything will run as intended. Coding lessons with OGC!

[Disclaimer: I don't know how to code BASIC. I take no responsibility for errors made during my lessons.]

Bullseye's intro screen. Don't believe everything you read.

Anyway, now that that's dealt with, back to the game. Each throw presents a different level of risk & reward (with the code fixed,) which is especially great for multiplayer, as you could adjust your throwing strategy depending on how other players' throws went. Go big if you want to try and get ahead, or play it safe if you don't need a bullseye to win. 

Controlled Overarm will get you points - but not the big points.

In solo play though, it doesn't really matter that much. I'll provide the full odds table at the end of the article - to avoid spoilers - but I will say that there's no point in going for any throw other than the Fast Overarm. That's simply because it has the highest odds of a bullseye, at 35%. Yes, the in-game description does lie to you about that one - it's not perfectly 50-50, which I assume, based on the way the odds are designed, is for balance (see the table at the end.)

Go big or go home - way more fun.

If you want to get a "perfect" game - the equivalent of a real-life "9 dart finish," which in Bullseye is instead a "5 dart finish," (5 x 40 = 200) your odds are around 1.5% with the Fast Overarm. I've seen much worse odds in other games, so that doesn't bother me too much. Shiny Pokémon, anyone?

You'll see in the video at the top that I had a few goes at hitting the 2% 5 dart finish. How did I do? Well, watch and find out! I'm also trying something new with the videos in commentating them and doing some extra editing. I expect that not everyone who reads the blog watches the channel, and vice versa, so it might be good for the YouTube-only side to get some extra information on the games, provided they can tolerate my voice. Anyway, let me know what you think on that change.

The odds for the 5 dart finish are very low, but what about Bullseye's chances of getting a good score? Let's find out now.


Time Played: 25 minutes
Rounds are very short in solo play - 20-30 seconds - but I did play it quite a bit trying for a 5 dart finish.

Difficulty: 1 (Brain-dead)
There's really nothing to it from a skill perspective.

Gameplay: 4
I very much appreciate that the throws are distinct rom one another, leaving opportunity for strategic choice - mostly in multiplayer. However, I don't think there's enough difference in odds between Controlled Overarm and Underarm (see table below) for there to be much of a strategic choice between the two. Underarm is just better. Unfortunately, it all falls apart in solo play, as there's really no choice at all once you know the odds. Nor is there much point to even playing it.

Controls: 5
Very standard for a text-based BASIC game.

Visual: 2
Bullseye gets a bonus point for having some very neat and tidy text formatting.

Functionality: 4
There is an error in the source code that ties throw 3's odds to throw 1's. It's an easy fix that I picked up on only after I did these scores initially and was preparing for the video. Line 190 is the offending piece of code, for anyone wondering. It's a pretty easy fix, even if you don't know BASIC programming.

Accessibility: 3
I think it's fairly standard for a text-based game. One could maybe make an argument for it being a little more accessible, seeing as it more a numeric-based game, rather than a reading-based game.

Fun Factor: 4
I'm really just scoring it up for the multiplayer potential. I genuinely think this would be a decent time with a group of friends. Personally, I think I had more fun dissecting the throw odds than actually playing the game.

Bullseye's dart throw lands it a score of 22 and into the E tier. It was tied with Dartmouth Championship Football - before I found the coding bug. Now it sits just below it, right next to Bull, funnily enough. That's the cost of having bugs in the game - throwing away free points in my metric. This also marks the 50th game registered in the Tier List.

And finally, as promised, here's the full odds table. If you're wondering how I got this - the 101 BASIC Games pages provide the calculations, with Underarm as the example throw. Just look at the source code on the page over, switch the numbers and - presto! - you have the odds for all three throws. "SPT" indicates the average "Score Per Throw" of each throw type:

Different, but also not different.

My "balance" remark earlier was a little hint to the reality that each throw comes out, on average, exactly the same. You might think this results in an "illusion of choice" scenario, but it in fact does not. If you tested each throw 100 times, you'd come out with a result that looks like the table, but in real play, it doesn't work like that. The way I see it, there's not much point ever going Controlled Underarm unless you really want to make sure you get that winning throw and don't miss. But there is rationale for choosing either Fast Overarm or Underarm, depending on your proclivity for risk-taking. This all only applies to multiplayer, by the way. I'm still only ever going Fast Overarm on my own for that 5 dart finish.

There was surprisingly a lot to talk about with this game. I don't mind it

No comments:

Post a Comment