[Contest] Green Circle

Post questions and feedback of the game here.


You can stale the game and force a win by doing the skill Training with an empty draw pile.

The problem is that you can secure less Technical Depth or the first Application and “end” the game.

private void train(Player player) {
    player.drawCards(2, random, view);

private void coding(Player player) {
    player.drawCards(1, random, view);

For both training and coding card the card is first discarded and then instantly redrawn if discard pile is empty/small enough, creating an infinite loop.

1 Like

Maybe can be fixed like

player.drawCards(1, random, view);
if (player.getDrawPileSize()>0) {
1 Like

Is it possible to see the Applications in the game window? That would a be a huge improvement by looking at the own games :slight_smile: .

1 Like

I received the output as a valid output that broke the this game

PS: I have no idea what I’m doing, I’m just doing random things


I should have lost two bonus cards in the end-of-cycle process on my second move action, but I only lost one.

                //only one card type => automatic throw
                for (int i = 0; i < 2; ++i) {
                    Card thrownCard = throwableCards.get(0);
                    if (thrownCard.isGoodActionBonus()) {
                        bonusCardsPool.push((BonusCard) thrownCard);
                    } else {
                    gameSummaryManager.addThrowCard(player, thrownCard);
                    view.playerThrowsCard(0.5, thrownCard);

I checked the end-of-cycle process and found that if there is only one skill card type, it is automatically discarded, but it seems that the same object is specified as the target of the removed card, so only one card is removed.

1 Like

There seems to be a typo in the statement.

In “Input for One Game Turn” section, there’s a sentence which says:

“permanentArchitectureStudyCards : the amount of ARCHITECTURE_STUDY (2) cards played.”

which the correct ID of this skill is 4, not 2.

Also, in the same section, it is written “Line 1: gamePhase the name of the current game phase. It can be MOVE, RELEASE”, but in Bronze league it actually can be MOVE, GIVE_CARD, THROW_CARD, PLAY_CARD, and RELEASE.

1 Like

The starter AI in java does not run! Please fix it.

At turn 53 in this replay, I used TRAINING card then draw two CODING cards, but the next input is RELEASE phase, not PLAY_CARD. Why is the PLAY_CARD phase skipped? It should be that after using TRAINING card, I can use one more card.


TASK_PRIORITIZATION fails when CONTINUOUS_INTEGRATION is selected as the throw away card, if the player has less than 2 of the latter in hand.

Replay with the issue:

Screenshot of the viewer:

Pull request for the fix:


Yeah, this seems to be a bug:

You can clearly see I have more actions to do, but it goes straight to Release.


confirm this. same with the skill coding (uses the same rules). Also the “Random” out provides always the same result.

I think swapping discard and draw fixes this bug.

you mean drawing first the cards, then discarding the card you played?
Won’t we still have the loop if the player has 2 TRAINING cards in hand?

hi, i found a bug it seems weird (infinite loop ?) after turn 20 : https://www.codingame.com/replay/641776075

Yes, if you empty your draw and discard pile, you can currently do infinite training/coding.
We’re fixing it with @Illedan
Our fix is being tested in a branch (if you want to review the code, it’s here : https://github.com/societe-generale/GreenCircle/tree/FixInfiniteLoop)


We’ll plan a release once we’ve fixed the big bugs

Endless draw should be fixed here:

(4th league)

Fixed : GreenCircle/Starter.java at master · societe-generale/GreenCircle · GitHub