Bram Cohen ([info]bramcohen) wrote,
@ 2004-11-20 11:43:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
boom-boom
The last variant on boom-boom I gave had fairly slow, plodding play. I've since come up with the following game, which is by far the best board game I've ever invented:

Play is done on an othello board, with both players having one color and moving alternately. On a turn, a player may either place a new piece in an empty square, or 'explode' a piece they already have. Placed pieces may not touch an opponent's piece on either a side or corner.

To explode a piece, the player places one of their pieces in each of the eight spaces touching the piece they exploded. If a piece is already there, it's left alone. A piece may not be exploded if it's already completely surrounded. After a piece is exploded, all opponent pieces which border on the exploded piece (either edges or corners) are flipped over, then all opponent piece which border on those are flipped over, and so on, until there aren't any places where two pieces of opposing sides border each other.

The first player to be unable to move on their turn loses.


I've play-tested this game and it went over very well. There are plenty of simple tactics for someone just starting out, and lots deeper and more interesting tactics as you master those. Kids love flipping over so many pieces, and find the rules easy to follow. An 8x8 board is a little small for this game, perhaps it would be good to use that as a beginner board and a larger board for tournament play.

Anyone who wants to follow up to this post should do so via livejournal comments rather than posting to advogato, because I find advogato blog conversations clunky and probably won't follow up to responses there.



(Post a new comment)

Go
(Anonymous)
2004-11-26 01:57 am UTC (link)
That sounds like a fairly interesting board game. I might have to try it sometime with a go board.

Which brings me to my point... if that style of game interests you... have you played Go?
http://www.usgo.org/index.asp
http://gobase.org/ (when it's up...)

Highly enjoyable... a real opponent and a real board are necessary to really appreciate it. :)

Maybe you've already heard of it and this is just a boring reply, but maybe you haven't.

/sigh, I should make a livejournal account sometime.

(Reply to this) (Thread)

Re: Go
[info]bramcohen
2004-11-26 08:18 am UTC (link)
Of course I'm familiar with go. Can't claim to be a passable player though. I get what the game is all about, but haven't put in the time to make recognizing local tactics second nature.

If you experiment with boom-boom, please let me know how it goes. The main tactical point is to make more groups for yourself and join your opponent's groups to each other.

(Reply to this) (Parent)

Bit Torrent
(Anonymous)
2004-11-26 11:13 am UTC (link)
Hi!
I tried to cough up your mail-address, but I had no luck, so I thought I'd leave a note here instead...

It's about torrent, and about the possibility to use the same kind of technology as in torrent for facilitating a kind of a "shared media streaming model" where one person can broadcast live media to a large audience by utilizing the upload bandwidth of each listener. I just thought it sounded like a neat idea... so I thought I'd check your opinion on it (since you obviously invented something similar).

If you want to reply by mail, my address is:

elling.bjastad on gmail.com

Rgds,
Elling

(Reply to this) (Thread)

Re: Bit Torrent
[info]ciphergoth
2004-11-26 12:53 pm UTC (link)
As you predicted ;-)

(Reply to this) (Parent)

Re: Bit Torrent
(Anonymous)
2004-11-28 06:55 pm UTC (link)

Hm.... I thought about it some more, and it probably isn't any THAT much of a neat idea after all.

It works nicely as long as none of the distribution nodes drop out, but once a node drops out you'll have to have a method for reconfiguring the network in a way that avoids any of the users loosing frames in the media stream.

And I guess that makes it pretty different from the case of a general binary file.

Probably should have thought about it a little bit more before trying to get an answer from you here... Sorry about that!

Elling

(Reply to this) (Parent)


[info]ciphergoth
2004-11-26 01:11 pm UTC (link)
At the end of a turn, there are no adjacent pieces of differing colors.

You can be unable to move only if either (a) you have no pieces, and there are no blank spaces that are not adjacent to an opponent's piece, or (b) the board is completely full of your pieces.

(b) can't happen - if my opponent has just gone, then they will have some pieces on the board.

How big a board do you recommend? Have you implemented it yet?

Thinking about how to implement this, I have an implementation in Python of a dictionary which maintains an "inverse map" when it's updated, so you can cheaply ask for all the keys that map to a particular value. If such a map were used to map every pair of adjacent squares to its state, it would be very cheap to discover what squares were adjacent to squares of an opponents colour without having to maintain an explosion agenda....

cheers!

(Reply to this) (Thread)


[info]bramcohen
2004-11-26 10:59 pm UTC (link)
Your analysis of game properties is correct.

I've been using an othello board, which is 8x8. That's a pretty good size for a beginner, but 19x19 or so is probably a better size.

Here's some code for flipping I threw together. Efficiency doesn't matter all that much, but this is both reasonably efficient and readable:

def neighbors(board, x, y):
return [(i, j) for i in xrange(max(0, x - 1), min(len(board), x + 2)) for
j in xrange(max(0, y - 1), min(len(board), y + 2))]

# board is a square two-dimensional array with None for unoccupied,
# 0 for one side and 1 for the other. This function is for exploding a 1.
def explode1(board, x, y):
assert board[x][y] == 1
toflip = []
for i, j in neighbors(board, x, y):
board[i][j] = 1
toflip.extend(neighbors(board, i, j))
while toflip:
i, j = toflip.pop()
if board[i][j] == 0:
board[i][j] = 1
toflip.extend(neighbors(board, i, j))

(Reply to this) (Parent)


[info]bramcohen
2004-11-26 11:00 pm UTC (link)
Let's try that code again:
def neighbors(board, x, y):
    return [(i, j) for i in xrange(max(0, x - 1), min(len(board), x + 2)) for 
        j in xrange(max(0, y - 1), min(len(board), y + 2))]

# board is a square two-dimensional array with None for unoccupied, 
# 0 for one side and 1 for the other. This function is for exploding a 1.
def explode1(board, x, y):
    assert board[x][y] == 1
    toflip = []
    for i, j in neighbors(board, x, y):
        board[i][j] = 1
        toflip.extend(neighbors(board, i, j))
    while toflip:
        i, j = toflip.pop()
        if board[i][j] == 0:
            board[i][j] = 1
            toflip.extend(neighbors(board, i, j))

(Reply to this) (Parent)(Thread)


[info]ciphergoth
2004-11-27 02:17 am UTC (link)
or, in other words, an agenda is much less work :-)

(Reply to this) (Parent)

Exploding my mind..
(Anonymous)
2004-12-30 01:10 am UTC (link)
I can't stop analyzing this game.. I have the nagging feeling it's solvable..

I've only been experiementing on the 8x8 board, but it seems to me that if X doesn't make his first move in the center 4 squares (or 9, on an odd #ed board), and places peices at least 2 squares away (not counting squares peices are on) from his existing peices, then O can just mirror him, which, I think, should mean that O wins the game (as X's placement will make it so O can win, or O can mirror X's placement until X has to make the first explosion, which seems losing).
If X doesn't place pieces at least 1 squares away, then they will be joined if X explodes any of his peices, and so O can attack the position by minimizing the number of his peices X can flip with a single explosion, while maximizing the number pieces O can flip with any given explosion.
If X does move in the center, my intuition seems to favor him, as O is then forced to make a move which can be mirrored by X, and so O has the same problems X has above, except made worse by the fact that X already has a piece on the board.. but I may be wrong (and it may be not so harsh on an even #ed board)

So I know this "analysis" ("thoughts" may be more appropriate) is far from complete, but I thought that feedback can't hurt.. and my brain is fried from the constant "If I explodes there and then I explode there and then that happens..." ad nasuem..

Robb

(Reply to this) (Parent)(Thread)

Re: Exploding my mind..
[info]bramcohen
2005-01-01 03:09 pm UTC (link)
I think you're onto something with an odd-size board where the first player starts in the center. In the other cases the symmetry can be broken with an explosion which hits the center. The simplest way to fix the problem is to use even-sized boards.

I'm fairly certain that general positions of boomboom are computationally intractable. A thorough analysis of that should start with positions where there's a single very large joined region which sections the board into smaller regions, and figure out how the local regions interact to determine the eventual winner, much like all that analysis in winning ways but with the additional twist that there's a single global parameter of who has the big region.

(Reply to this) (Parent)(Thread)

Re: Exploding my mind..
[info]enochsmiles
2008-07-06 03:41 am UTC (link)
Have you thought about this issue with odd vs. even sized boards any, beyond what you've posted? It's been bugging me recently.

(Reply to this) (Parent)

Not really understood
(Anonymous)
2004-11-29 05:42 am UTC (link)
Interesting board game! Probably need more detailed specification for me to understand what it is.

1. "with both players having one color" is rather interesting because it could means "both players use the same color", or actually means "players have their own color". Which one is the correct interpretation?

2. The game use Othello board but never mention to use Othello pieces. Shall we use Othello pieces or something else to play?

3. What is the initial condition on the board? Empty or preset like Othello? What is the total number of pieces used in the game? It could be equal or smaller than the number of squares on the board.

4. What is an "empty" square? Just empty? or empty with all adjacent empty? or empty with all adjacent not occupied by "enemy" pieces?

5. Is "explode" an action on my pieces, enemy's pieces or both?

6. If "Placed pieces may not touch an opponent's piece on either a side or corner.", how can you flip your enemy's pieces after explode? Your pieces could never adjacent to your enemy pieces by the above rule.

I think there should be quite a lot of hidden rules in this game. Can you specify it more clearly?

(Reply to this) (Thread)

Re: Not really understood
[info]bramcohen
2004-11-29 05:53 am UTC (link)
1. One player is white, the other is black

2. Using othello pieces is very convenient. You could also use go pieces, but it's easier to flip othello pieces than to swap out go pieces.

3. The board is initially empty.

4. 'Empty' means just empty.

5. You can only explode your own pieces.

6. Directly placed pieces can't be put next to opponent's pieces, but exploded-onto pieces can be next to opposing pieces, resulting in flips. Placing and exploding are different actions, and you do one or the other each turn.

(Reply to this) (Parent)

Re: Not really understood
[info]bramcohen
2004-11-29 05:57 am UTC (link)
And I forgot to mention -

3. Pieces keep getting added until the end of the game, potentially almost as many as there are positions on the board. Once a piece is placed it stays forever, although it might get flipped repeatedly.

(Reply to this) (Parent)

wow! thanks!
[info]jett_black
2004-12-02 09:12 am UTC (link)
I loved Othello, until it just got to be too predicatable and I could beat anyone new to the game with my eyes closed.

Your suggestions seem to bring "explosive" new life to the Othello game board!

Alternatives with more spaces to exploit:

Pente

GO!

I have all three of the above mentioned game boards.

(Reply to this) (Thread)

Re: wow! thanks!
[info]bramcohen
2004-12-04 09:27 am UTC (link)
Is your style at othello one of making the opponent pass repeatedly? That's the basic strategic ploy of good othello players. I generally try to get a corner or an edge and then throw away all my other pieces. It works great against newbie humans, but against computers, specifically Zebra I struggle even on the very lowest level, because the computer will happily make me pass repeatedly even when I've got an edge and it doesn't.

I come up with games very slowly, mostly because I have a very strong criterion for my games that humans should be able to stomp computers. Most of the abstract board games on the market are extremely tactical, so if a programmer spends a few hours coming up with a simple but effective board evaluation algorithm and plugs it into an alpha-beta engine, the humans are toast. Some games require a bit more fine-tuning of the board evaluation algorithm to really get them right, for example chess, but the end result is basically the same.

There are a handful of games which are striking contrasts to this. Simple computer programs to play go, hex, havannah, amazons, and boom-boom are just pathetic.

Which reminds me of my main suggestion, which is that you should check out Amazons.

(Reply to this) (Parent)

Invitation to speak
[info]datapolitical
2004-12-02 09:48 pm UTC (link)
Mr. Cohen,
My name is Christopher Nicholson, I sent you an email about a month ago inviting you to come speak at my school, Reed College, in Portland, Oregon, in early January. Since I haven't heard back from you but believe that your insights into large file distribution systems, including your own, would be very educational for the students of Reed, I just wanted to post a comment here asking if you were at all interested in speaking, and how much you would charge. My email address is cfn84@pacbell.net. I look forward to hearing from you.
Sincerely,
Christopher Nicholson

(Reply to this)


(Anonymous)
2004-12-30 01:15 am UTC (link)
Err.. posted above, but thought I'd point it out down here since I know I only check the bottem of a comments page for new ones (and I assume that's standard..)

Also, forgot to include my addr.. (reffinge at uwaterloo dt ca)

Robb

(Reply to this)

Aspergers
(Anonymous)
2005-01-10 04:10 pm UTC (link)
HI Bram

I read how you have asperger's syndrome. I would like to invite you to come and associate with your fellow aspies. I am part of a civil rights group - Aspies for Freedom.(www.aspiesforfreedom.org) if you read the NY times on Dec 20. We were the sponsors of the protest that was mentioned.

Joe Mele aka theASman (Asperger Syndrome Man)
joeNOSPAMmele@XgmailX.com
(remove NOPSPAM and Xs)

(Reply to this)

please stop emails
(Anonymous)
2005-02-11 04:02 am UTC (link)
ive just had 606 emailes please stop its driving me mad

(Reply to this)

Boom-Boom Game
(Anonymous)
2005-02-24 01:41 pm UTC (link)
Congratulations on your stunning success. I just saw a mention of bittorrent on CNBC. Wow!

Vikash
http://www.ratejokes.com

(Reply to this)

bittorrent - like Einstein@home or SETI@home...
(Anonymous)
2005-03-22 07:17 pm UTC (link)
Hi

i have a "bad ;)" idea
if many people use torrents...
why 1-5% of traffic not use to SETI@home or another tasks?

sorry for bad english...

http://nesz.friko.pl
Szymon Sobieraj

(Reply to this)


Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…