MSXdev’20: #17 – Anchors Aweigh!

MSXdev’20: #17 – Anchors Aweigh!

by MSXdev Team on 30-07-2020, 00:25
Topic: Challenges
Tags: msxdev20, Shooter
Languages:

Another surprise entry, that’s based on the classic “Battleship” tabletop game. You know, where you have to guess the positions of the ships in your opponent’s fleet and throw bombs on them.

Practically last minute, a very nice MSX rendition of this concept surfaces at the cost, like a submarine that nobody knew about.

Could there be some kind of theme, this MSXdev edition? We’ve seen quite some cats and military vehicle combat in the past time.

Anyway, some cool features of the game:

  • Thematic soundtrack, based on american folk and naval music (press shift+m on the loading screen for the music menu).
  • Custom player
  • 4 languages.
  • Integrated instructions
  • Practice and campaign modes: reach the rank of admiral of the navy!
  • Undo feature on the puzzle (up to 256 actions)
  • Simple interface
  • Music adapted to the time left
  • Achievements will go on Twitter
  • Code in C will be available and the author states that he will be forever ashamed of it
  • R800 enabled to speed up graphics and puzzle generation.
  • Cheats, and a good and a bad finale

Tested on (emulated) MSX1 (50Hz and 60Hz), MSX2, and Turbo-R.

  • Name of the game: Anchors Aweigh
  • Game size: 160Kb (megarom, K5 mapper)
  • RAM size requirements: 16KB
  • Genre: Puzzle
  • Names of the individuals involved: Manuel Martínez

Relevated link:
MSXdev homepage

Media browser (6)

  • MSXdev’20: #17 – Anchors Aweigh!
  • MSXdev’20: #17 – Anchors Aweigh!
  • MSXdev’20: #17 – Anchors Aweigh!
  • MSXdev’20: #17 – Anchors Aweigh!
  • MSXdev’20: #17 – Anchors Aweigh!
  • MSXdev’20: #17 – Anchors Aweigh!

Comments (7)

By tfh

Prophet (2315)

tfh's picture

31-07-2020, 22:41

By salutte

Expert (68)

salutte's picture

01-08-2020, 08:41

The code is available at:
https://github.com/MartinezTorres/anchors_aweigh

and it uses the sdcc_msx library at:
https://github.com/MartinezTorres/sdcc_msx
(soon to be renamed module_msx)

By Uninteresting

Master (146)

Uninteresting's picture

01-08-2020, 19:27

I really like this; I've taken to watching Cracking the Cryptic this year, but I wonder if I'm missing something important in how the puzzles in Anchors Aweigh are supposed to be solved. I got to Admiral without failing a puzzle (one took me 16 minutes, though), but I don't know how good the solution paths are (for example, am I expected to bifurcate the search at some points) and if the solutions are unique (I don't think the easiest levels necessarily have unique solutions).

By salutte

Expert (68)

salutte's picture

01-08-2020, 19:50

I'm glad you liked it! Thanks!

Puzzles are auto-generated, and are all solvable, but it was hard for me to adjust the difficulty level. I had almost no time for beta testing. I found it easy because I love this kind of puzzles, but I thought that for the casual player it was ok to have this level of difficulty. I will increase the difficulty at post-captain levels.

The generation works as this. Up to captain, some ships are missing (the aim is to let the user get used to the interface). Then, from captain to "admiral of the navy" there are less hints. However, due to the generation process, it can be that a puzzle with few hints is more difficult to solve than a puzzle with more hints.

Also, the solutions do not need to be unique, any solution that fills the puzzle is accepted. Checking if the solution was unique on a Z80 is not trivial (I need to solve the autogenerated puzzle and find all solutions). I started the effort, aiming to have a better tool to adjust the difficulty, but it wasn't ready for the dev.

About bifurcation, it is expected, specially on later levels where the 4-cell ship can fit many possible locations. Could you solve all puzzles without bifurcating? If so, I definitely need to increase the difficulty.

I'll work on the auto-solver, but, in the meantime, if you have ideas on how to improve the puzzle generation (or the rest of the game), I'm all ears!

By Uninteresting

Master (146)

Uninteresting's picture

01-08-2020, 21:49

I was most of all interested in if you had proven a fancy theorem on how to generate suitable puzzles. The 15-puzzle is the infamous example where half of all the possible random initial states are such that the solution cannot be found.

I gave up around admiral-level. Had a case of eight empty slots in a column and I had to place seven ship pieces there. Maybe I should've tried to look at some other clue...

Not sure if reaching captain in 6min 26s is too quick?

By salutte

Expert (68)

salutte's picture

01-08-2020, 22:56

As far as I know, there is no fancy algorithm. And actually, I find that there are several ways to make the puzzle challenging.
There are different apps, newspapers, etc. that feature the game, and you can see that the style of the puzzles, despite being based on the same rules, it's pretty different.

You can make a difficult puzzle by distributing the ships very uniformly, then you strongly need to rely on clues to start making progress. On the other hand, if all ships are compacted in just a small part of the map, it is also challenging because there are many combinations to place the large ships! I find it an interesting problem.

The seven ship pieces in a row with 8 empty slots happens from time to time, and is a strong indicator of a capital ship. A good place to start (with the backtrack).

About timings, reaching captain in 6 minutes 26 seconds is pretty quick! And you got close to the ending! there is "rear admiral", "vice admiral", "admiral", "admiral of the fleet", and "admiral of the navy", and if you solve this one you reach the finale (which is just a text sentence, one new image, and an image).

There are cheats, to speed up progress (shift key is your friend there), but if you use cheats you reach only the bad finale.

By Uninteresting

Master (146)

Uninteresting's picture

01-08-2020, 23:07

I still haven't got to the end. Vice Admiral took me 13:38, admiral 20:08 and that's as far as I get (without having to repeat earlier levels). Maybe one day...