[Community Puzzle] Cultist Wars


Send your feedback or ask for help here!

Created by @Nixerrr,validated by @Razovsky,@redline1 and @Catagami.
If you have any issues, feel free to ping them.

Wood 2 boss (BOSS 1) timed out once, but couldn’t reproduce sorry to say…

Thanks! The boss is in Java and I suspect it’s to do with the Java issues the platform is experiencing. I’ll look into it if the problem persists once Java is fixed on CG.


Added timeout and invalid move tooltips.

1 Like

It seems that I cannot update the game without the boss resubmitting, so I can’t add the link of the repo to statement. So here it goes: https://bitbucket.org/Nixerrr/cultist-wars/src/

1 Like

Some fixes:

  • the Bresenham implementation in the referee was changed so that the Bresenham line is always calculated from the point with lower Y towards the point with higher Y. This way there are no longer situations where a unit is able to shoot another and the other not
  • added tooltips with coordinates and unit info
  • added link to the repo

Also, Illedan suggested that the neutral movement should be deterministic. He also suggested some ways of doing it but I’m still undecided. Any thoughts on that?


Nice update! I also agree with making the neutral movement deterministic.

Some of you have been requesting deterministic neutral movement and have also complained about neutrals moving too much around, especially when there are less neutrals. I fixed both issues. See the
moveNeutrals() method of the Referee.

  • The neutral unit to move and its direction is now determined by a simple LCG.
  • Previously the neutral unit chosen to move was chosen via rand(neutrals.size()). Now it is rand(MAX_NUMBER_OF_NEUTRALS). So the less neutrals there are, the less likely it is that one of them moves.

really nice game!
rules are easy to understand but hard to master … and replay are fun :slightly_smiling_face:
thanks @Nixerrr

I wish the number of turns is 200. With 150 turns I feel unfulfilled.

BTW.: The bot for the contest is going to be the same or there are possible any changes?

1 Like

If it works like other contests … wood bosses are easy to defeat, they just help to understand the rules. Then, the other league’s bosses are chosen within the players, when the leagues opens.

Something weird happened in step#118
Or have i made an error in bresenham copypasted from referee?

1 Like

At step#69 you are also shooting though the wall, it looks like the game is allowing that in some instances.

step#69 is a valid bresenham (theoretically only in one direction - but the referee made it symmetrical)
but step#118 should not work at all

Hey, just started playing and I love it. Spent some time in the past two days and pushed to silver. A couple quick things.

  1. I think the bronze boss is overtuned. When the new leagues are released I hope an easier boss is added to bronze and the bronze boss is moved to silver.
  2. Would it be possible to add more turns in higher leagues? On high obstacle maps 150 turns just hasn’t been enough.

Thanks for your hard work giving this game to us.

1 Like

I agree my bresenham implementation, based on the bitbucket code, says (4,4) is in the path. Since (4,4) has an obstacle that shot at frame #118 should not connect.

EDIT: Thank you VizGhar for the clarification. See post below.

It is correct o.O because aCat was shooting at cultist with id 6… didnt think of such case previously :smiley:


Similar case at 106 Coding Games and Programming Challenges to Code Better

Path can somewhat change depending on the target, so such ‘impossible’ shots are possible. My bot don’t know about them yet D:

Thank you for this multi very fun…
maybe a mistake by me but i can’t understand the game summary.

13 7
2 0 10 2 5 0
4 0 10 5 0 0
5 0 10 1 1 0
6 0 10 1 3 0
7 0 10 3 6 0
8 0 4 9 5 1
13 0 10 4 6 2
### Standard Output Stream:
7 MOVE 8
### Game Summary:
Invalid action: Index 3 out of bounds for length 3

It seems that my id 7 could move to 8 according to the path finder of the game?

sorry i have just understand… :slight_smile:

unitId MOVE x y