Fall Challenge 2020 - Bugs & Questions

Not a bug, but I think there is an error with the “translation” from the card game to the codingame challenge :slight_smile:

According to the first 4 basic spells, the order of the ingredients would be: blue < green < orange < yellow. But for the recipe and spells deck, the order is instead: blue < orange < green < yellow, so the green and orange ingredients have been swapped. For example we have :

deliveries.add(new DeliverySpell(new Recipe(1, 1, 3, 1), 16));
deliveries.add(new DeliverySpell(new Recipe(1, 3, 1, 1), 18));

Which shows that tier-1 ingredients are better than tier-2.

I think it will unbalance the game and make it less interesting at high level, so I would suggest to fix the spells and recipe decks.

5 Likes

There is a slight visual inconsistency in the interface. The “CAST” action type is displayed as a “SPELL” when hovering with a cursor.

1 Like

Am I misunderstanding or is there absolutely no way to know what your opponent casted? If this is the case how one would even know if the +3 bonus rupees is still available or not? I don’t see in any input any information that can be read to know if your opponent brewed or not the first order in the list with the bonus.

Also:

deliveries.add(new DeliverySpell(new Recipe(0, 0, 2, 3), 16));
deliveries.add(new DeliverySpell(new Recipe(0, 2, 0, 3), 18));
deliveries.add(new DeliverySpell(new Recipe(2, 0, 2, 2), 15));
deliveries.add(new DeliverySpell(new Recipe(2, 2, 0, 2), 17));

Same problem with tome spells:

tome.add(new TomeSpell(new Recipe(0, -1, 2, 0)));
tome.add(new TomeSpell(new Recipe(0, 2, -2, 0)));

You need 1 tier-1 to make 2 tier-2, but
you need 2 tier-2 to make 2 tier-1.

tome.add(new TomeSpell(new Recipe(-3, 0, 0, 1)));
tome.add(new TomeSpell(new Recipe(0, 0, 3, -1)));
tome.add(new TomeSpell(new Recipe(0, 2, 0, -1)));

To make tier-3 you need 3 tier-0 or tier-2, or just 2 tier-1.
That basically makes tier-1 more valuable than tier-2.

CRITICAL BUG: when you learn a spell, it becomes repeatable (even if it wasn’t in tome).

Impact:

If you learn a spell that gives ingredients for free, you can repeat it as many times as you want.

Not affected:

Initial spells are not affected.

Proof:

When spell is learnt, only 2 arguments are passed to constructor, repeatable is omitted, so it defaults to true.

23 Likes

…is there absolutely no way to know what your opponent casted? If this is the case how one would even know if the +3 bonus rupees is still available or not?

As I understand, you don’t actually need to know that.
When you and you’re opponent cast/brew the same thing, you both get the result and the points.

This is described in the lower section “Technical Details” of the rules (Bronze League), just before “Game Protocol”.

Typos in the statement:

Found in the Wood II statement:

“The witch’s hut in witch they set up shop” -> “…in which they…”

6 Likes

Visuals.
The spells that are repeatable and the ones that are not, are visually indistinguishable from each other in the “magic tome” and in personal “tomes”.

2 Likes

[UPDATE: not a bug]
Something is wrong on the last turn of this game: https://www.codingame.com/replay/499899778

image

xoposhiy had one point more than Malcoriel before the last turn. On the last turn players brewed the same potion. But Malcoriel stated as a winner with the score 2 points higher than should be. Why?

It’s explained in the rules and works as intended. Players gain 1 rupee for each tier-1 ingredient or higher in their inventory. malcoriel had 2 of those ingredients, so he got 2 extra points

3 Likes

Ok. Got it! Thanx.

Maybe that is a pun, intended…
Or this is the Wood league of the CG Tongue Twister contest. In its Legend league you will have to say the sentence loud 100x per minute. :slight_smile:

3 Likes

Suggestion: Make it easier to figure out the urgency bonuses. It’s always possible to find out, but right now you need to keep track of which potions have been brewed and it’s annoying to do so.

From description:

A single line with your command:

  • BREW id: your witch attempts to brew the potion with the given id.
    (…)

Looks like:

  • BREW id [custom message]
    also works, which is very nice but not mentioned. :wink:

It is actually mentioned in the debugging tips:

  • Append text after any command and that text will appear next to your witch
2 Likes

I guess it is not good when the side that got timeout can become a winner if it has better score. It encourages to include timeouts to strategy when one temporary has better score.

3 Likes

Using Rust, reading input is taking way to long … I measure the duration from the start of my program to after reading all input. According to my code, this takes nearly 3 seconds the first time, and anywhere from 30 to over 80 ms thereafter. I can run my program successfully though, with “Play My Code”, but it fails on the 1st or 2nd turn when Submitting my code (fails to output an action/command). It seems that before I can even read the input, the 50 ms turn limit has expired. Can’t proceed with the tournament this way. It is the 1st line of input that takes all the time.

You have to start your timer after reading the first line of input. Otherwise you time a lot of other things (opponent, referee and what not) too.

2 Likes

If I start my timer after, it still times out. The time to read the input is still counted against my time limit. Other challenges have not had this problem.