Fall Challenge 2020 - Bugs & Questions

Please use this topic to report bugs or ask questions about the Fall Challenge 2020

https://www.codingame.com/sfc2020

The referee code is publicly available on Github:
https://github.com/CodinGame/FallChallenge2020

Check the full stream schedule here (also available on contest page):
https://airtable.com/shrLIOcKJPVoTRdeY

Fixed bugs

  • [FIXED] Statement typo: tax is always a tier-0 ingredient
  • [FIXED] Statement picture: tier-1 ingredient is the green one. Orange is tier-2
  • [FIXED] Leaderboard are currently broken
  • [FIXED] Statement typo: tier-1 instead of tier-2 in example
  • [FIXED] VB.net default code issue with 2 variables without types
  • [FIXED] all spells repeatable
  • [FIXED] tier-1 and tier-2 ingredients mix-up in spells and potions
  • [FIXED] a bot that crashes should lose (bonus for ingredients in inventory kept when AI crashes)
  • [FIXED] inconsistency for “CAST” in viewer tooltip
  • [FIXED] typo Wood 2 “witch/which”
  • [FIXED] urgency bonus not in input [EDIT: price variable now includes the bonus]
  • [FIXED] Scala timeouts in arena
  • [FIXED] +1 bonus on both 1st and 2nd commands when +3 bonus exhausted and inconsistency on viewer
  • [FIXED] viewer fail after some time
  • [FIXED] horizontal scrollbar in the statement
  • [FIXED] summary output issue with urgency bonus
  • [FIXED] public github repo does not include fixes
  • [NOT-A-BUG] potion 69 is wrong
  • [FIXED] can’t load replays in SD quality
  • [FIXED] occasional NumberFormatException crash
  • [FIXED] wrong console message when tax > 10
  • [FIXED] weird visuals with tax
  • [FIXED] typo “dissappears” and “attemps”
  • [FIXED] can’t load replays in SD quality

Current bugs

  • [Working on a fix] Clojure 1st-turn timeouts in arena
  • [Working on a fix] Desynchronisation warning after a timeout
  • [Hard to fix] no C++ stacktrace when segfault

About timeouts & spikes

Really hard to investigate. Won’t fix before the end of the challenge. We’ll try to make improvements for next contest.
I can only advise to take a bit more margin against the 50ms limit and to limit the nb of objects created for GC. It impacts all players.

Release vs Debug mode

We’ll put release in IDE for Rust, C#, F# and VB.net this morning (Wednesday) and see if doesn’t create too many issues for people used to Debug

3 Likes

Request for coders who do live streaming in the codingame.

Please include the name of the programming language in the title of your stream so that we can find the stream of the language that we want to see.
Thanks

3 Likes

I think there is a typo in the description.

There is:
For instance, a client order with delta = -2, -1, 0, 0 means you have to consume 2 tier-0 ingredients and 1 tier-2 ingredients from your inventory in order to brew the potion.

There should be:
For instance, a client order with delta = -2, -1, 0, 0 means you have to consume 2 tier-0 ingredients and 1 tier-1 ingredients from your inventory in order to brew the potion.

2 Likes

VB.NET default code contains “error BC30182: Type expected.” on lines 23 and 24

Dim castable as ’ in the first league: always 0; later: 1 if this is a castable player spell
Dim repeatable as ’ for the first two leagues: always 0; later: 1 if this is a repeatable player spell

1 Like

python version of stub code has an error on the first line ValueError: invalid literal for int() with base 10. Code it is raising error on: action_count = int(input()) # the number of spells and recipes in play

1 Like

When you crash, you get -1 points. But then the tier2+ bonus is added.

1 Like

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.

24 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