Chat:World/2022-06-19
Crosility: fprintf(stderr, "Howdy %s\n", "fahad_almaani");
Tien118: hi
aCat: hello
Tien118: no taco :(
emh: hello
AshamanCooper: if you time out, is it possible you just have to much code that is taking a while? I think the code should work, but it is a massive block of logic.
therealbeef: you can time your code to see if its fast enough
therealbeef: but often timeouts are actually crashes
therealbeef: the game engine doesn't see the difference
AshamanCooper: i have 350 lines of nested ifs..
therealbeef: ifs are fast usually
AshamanCooper: I thought so, ok thank I will keep combing for an error.
therealbeef: sometimes it helps to compile/run the code offline, then you can use debugger for example
AshamanCooper: Yes I should make a fake input so I can do a single run. problem is it sometimes does a game just fine, and only once and a while times out.
eulerscheZahl: step 1: write all the input directly to stderr
eulerscheZahl: then when you crash again, you have something to analyze offline
AshamanCooper: stderr?
eulerscheZahl: error stream
AshamanCooper: how do you do that?
eulerscheZahl: there is a comment in the default code telling you how
eulerscheZahl: which language?
AshamanCooper: python
eulerscheZahl: print(the_input, file=sys.err, flush=True)
Mortis_666: sys.stderr
eulerscheZahl: my bad
AshamanCooper: hmm the_input not defined
eulerscheZahl: you should think a bit what i try to tell you before copying :(
AshamanCooper: Well I am new and the pharse makes no sense to me, so copying and trying is the only path to learning here.
eulerscheZahl: a snippet from the starter template with error output:
eulerscheZahl: for i in range(applications_count): http://chat.codingame.com/pastebin/780cd26a-6f09-4072-bdd7-291f6cc896fa
AshamanCooper: ah ok
eulerscheZahl: this will print it like this: https://i.imgur.com/IErIN86.png
eulerscheZahl: then you can copy it and plug it into your offline IDE
AshamanCooper: That will help alot, on a few games. I have been trying to figure out how to use the debug, this helps alot.
YS_Yousef: hi
Suenodk: Hello!
Soboku: Line 1: gamePhase the name of the current game phase. It can be MOVE, RELEASE ^ Seems like the description is incorrect for Bronze
therealbeef: yeah
**jacek gasps
DaNinja: missing phases
DaNinja: but real programmers never read the statement anyway
jacek: real programmers have C blood type
j4at: B is a programming language
j4at: and probabl A too ?
therealbeef: they didnt start at C ;)
jacek: so there was A# and B#?
j4at: b# is a programming language
Illedan: Hi
jacek: what else? html is programming language too?
j4at: yeah it's commonly used for hacking Nasa
eulerscheZahl: frame 47 where did my card go? https://www.codingame.com/replay/642686880
Nerchio: :ghost:
Sheeesh---: does CONTUNUOUS integration no longer copy cards ?
kovi: no (afaik it never did)
Nerchio: hello kovi how are you liking it so far
emh: wat submitted code is too big.. noooo. ok time to shrink it
emh: ahh no it was copy paste fail
emh: double size
therealbeef: 50k is still impressive
Nerchio: i was going to ask what abomination you have written emh
kovi: hello Nerchio i'm not sure. heuristics are getting too complex now but i dont see strategic eval yet
Nerchio: kovi same, had simple heuristics so far and will probably never do a full sim here but I am afraid of people who will
Illedan: Complex sim though
Nerchio: complex is nothing for CG veterans
eulerscheZahl: imaginary numbers are complex
eulerscheZahl: this early in the contest and almost no python/JS in top20. that's unusual
eulerscheZahl: i'm above M_C I think i can take a break now
Nerchio: but there's typescript
IvesL: class Card: http://chat.codingame.com/pastebin/72fbb71d-7ec3-4acb-ad1e-bcf044fc804d
IvesL: it returns indexerror out of range
IvesL: what is the problem with self.bonus
jacek: is len(card) == 1?
IvesL: 10
IvesL: let card[-2:] be [3,1], http://chat.codingame.com/pastebin/4fc0fb7a-7ce1-49b0-90d0-f00e0af17d15
IvesL: cant seem to index
jacek: is this python?
IvesL: yes
jacek: :shrug:
IvesL: no clue
Nerchio: can't you do self.bonus = card[0] instead of going back in the array
j4at: Workds fine for me
IvesL: i cant do card[0]
IvesL: same indexerror
IvesL: list index out of range
jacek: print card and find out
j4at: card = [2,3,1] print(card[-2:-1]) print(card[-2]) print(card[-2:-1][0])
j4at: outputs
j4at: card = [2,3,1] print(card[-2:-1]) print(card[-2]) print(card[-2:-1][0])
j4at: ops
j4at: [3] 3 3
IvesL: class Card: http://chat.codingame.com/pastebin/b3083f44-983b-4e0b-b0af-50a4b3124c32
IvesL: 'bonus': [1, 0, 0, 0, 0, 0, 0, 0, 3, 1], 'debt': <class 'list'>}
j4at: still works
IvesL: i better reset to previous version and see
IvesL: probably some bugs in between then
IvesL: thanks
square1001: Trivia: In visualizer, it is written "3 - task priorisation" which is half French, and also "8 - poste administratif" which is French.
jacek: :scream:
square1001: I need to practice French...
jacek: :egg: :french_bread: :cheese:
Pap3r: oui
Acoustic_flux: chad
Acoustic_flux: hi chad
Lynch[0]: konichiwa
Soboku: Does Bronze league have small applications?
eulerscheZahl: no
Nikanameu: what is the starcade stream
Strawbot: Hi everyone ! Where can i find a reference about how precisly the motor in Mad Pod Racing works?
Strawbot: like what does the power value represents exactly?
MSmits: acceleration
MSmits: on the pain page you can find information written up by several players, the one by magus has a lot of information about how the calculations work
MSmits: main page
MSmits: (of mad pod racing)
Crosility: @MSmits, the discussion tab?
Crosility: Or do you mean the external references?
Strawbot: Yes but is it like acceleration in pixel/s^2 really?
therealbeef: pixels/turn^2, but basically it adds a vector to the current velocity vector (after reducing the old velocity vector with a factor)
Strawbot: I know there was a page that explained exactly the formula but i can't find it back
eulerscheZahl: this? http://files.magusgeek.com/csb/csb_en.html
Illedan: Nice rank euler
eulerscheZahl: getting close to you ;)
eulerscheZahl: but no idea what i'm seeing in the replays. really hard to follow
eulerscheZahl: extra frame would be helpful to show skill usage. and automated cards in UI
therealbeef: automated cards are in player icon hover info
eulerscheZahl: ?
eulerscheZahl: aah
therealbeef: the little pawn
therealbeef: it was added in one of the updates this weekend
eulerscheZahl: didn't see that coming. was hovering over my avatar and such
eulerscheZahl: i saw the projects added at the admin desk
Strawbot: thx @eulerscheZahl, i think it was this, but why is it for CSB?
eulerscheZahl: the game was renamed
eulerscheZahl: someone was paranoid about copyright (the empire strikes back)
Illedan: Smart idea to print all actions on the next location euler
Illedan: I'll do that too
eulerscheZahl: i just do a bestState.ToString()
eulerscheZahl: was easier to debug in IDE that way
Strawbot: Is the angle of the pod discontinuous? Like can it jump from theta to theta + 18 in one turn?
ZumTheZazaKing: helllo
eulerscheZahl: and i also like to filter in order to trigger certain bugs more easily
current = current.Where(c => c.ToString().StartsWith("WAIT")).ToList();
PatrickMcGinnisII: during a move phase, i detect that an app can be released ... but no release phase follows the move?
eulerscheZahl: then your detection is faulty
eulerscheZahl: replay?
PatrickMcGinnisII: hmm, app requires:0 4 0 0 4 0 0 0
struct: is it the last app?
struct: you cant use shoddy
PatrickMcGinnisII: 0 1 0 0 0 0 0 0 3 hand
struct: if its the last one
PatrickMcGinnisII: the bonus should take care of the study cards
struct: Is it the last app patrick?
PatrickMcGinnisII: no actually there are 4 .... oh yes it is
struct: So thats why it doesnt work
PatrickMcGinnisII: all 4 apps are releasable...but there is a rule about last app i guess
struct: Yes, you can use shoddy points for last app
struct: you cant*
jacek: if there was something like that in the statement...
Nerchio: Beware, since this hackathon is on the theme of Green IT, the referees will be paying close attention to the quality of the last released application. The 5th application of each team cannot be released with shoddy skills!
jacek: and the contest was 4th app
PatrickMcGinnisII: are all rules in wood1?
struct: no
struct: But I think that one is there
jacek: i think is from the begining
PatrickMcGinnisII: i'm very far behind
PatrickMcGinnisII: just prioritizing possible moves, works ... but not for last app apparently
PatrickMcGinnisII: just random bot has me ranked at 600 something ... trying to make sure next submit gets me in bronze
jacek: try first action
PatrickMcGinnisII: I prioritize releases as well to reduc e debt, seems to work
PatrickMcGinnisII: was gonna just MCTS after i get the bones working
PatrickMcGinnisII: I assummed bronze would be a complete rewrite
PatrickMcGinnisII: yall beam searching?
jacek: searching? Oo
PatrickMcGinnisII: alot of random stuff going on
eulerscheZahl: search space is small enough to do it without pruning (current turn only)
struct: I must try that
waterproofsodium: hi stroct
waterproofsodium: hope you're not strict :p
MSmits: mmh I was top 100 with a sim that used technical debt as bonus cards to release apps
eulerscheZahl: :D
eulerscheZahl: and now you are 554th with 0% progress
MSmits: perhaps its sheer confidence in ignoring the rules got it wins
darkhorse64: rules are for the weak
MSmits: yeah i am going to have to recalibrate my eval, but it seems reasonably good so far
Kellthazar: Submitted a new version: 15 loses in a row.
MSmits: plot twist: All wins after that
eulerscheZahl: not sure if this game has enough strategic depth to keep us busy for another week
struct: just start making an opening book
MSmits: didn't silver open on sunday last contest?
MSmits: i remember everything seemed a day early
struct: I think so
MSmits: i like when it opens on monday
MSmits: because less people coding means less congestion. Sundays are bad
MSmits: wow this bot is a lot better
struct: Im still trying to find how to code the move
MSmits: have several phases for the move
MSmits: move -> throw -> give -> gain
MSmits: pass the required information (move target, desk target) through the functions
MSmits: so that at the end you can use gain to get the card
MSmits: do some ifs an such to skip throw and/or give if necessary
struct: I have similar thing but its broken I think
MSmits: yeah this entire sim is easily broken
MSmits: hard to test
struct: I store the pending move if it stops at admin or it has to give a card
struct: But something is wrong with it
MSmits: ye been there
MSmits: but in my case it's usually something dumb because c++
MSmits: functions that don't return anything
PatrickMcGinnisII: ok, 2nd submit of event gonna happen now that i can beat wood 1 boss
jacek: youre avoiding the voids?
MSmits: no i have voids
MSmits: just not all
LIMESAUR: Bruh I forgot how to code when I learned it a few months ago
LIMESAUR: I litterally can't think of the stuff I wanna use
jacek: oO
MSmits: bruh
struct: I never knew how to code so can't relate
MSmits: ye struct just makes structs, but they never do anything so it's not really coding
LIMESAUR: so they just submit the code right away?
waterproofsodium: that spaghettis clash is great!
PatrickMcGinnisII: waterproofsodium now I'm hungry tx
waterproofsodium: :p
waterproofsodium: *gives patrick 1 spaghetti
j4at: Why you fix a bug in your code to findout that the buggy version is better :'(
PatrickMcGinnisII: (void *)My_Stomach
j4at: I gave up on the event
struct: I dont give up anymore on these
jacek: you never know it its last
struct: Just aim for a plausible goal
PatrickMcGinnisII: omg, wth is an admin desk
struct: taxes
PatrickMcGinnisII: oh yea, made bronze on 2nd submit
MSmits: well done
PatrickMcGinnisII: how the hell did i geet a timeout
Miki09: 36°C here in czech republic
Miki09: global warming is real guys
PatrickMcGinnisII: and we are in a solar minimum cycle
Ramdeath: question, i have 10 cards in draw pile. In what order they go to hand?
struct: random
struct: They get randomized when they go from discard pile to draw pile
struct: so you never know the correct order
Ramdeath: so i just can see cards but dont know order right?
struct: yes
Ramdeath: tnx
waterproofsodium: Miki09 I feel you
waterproofsodium: 32 and I bet we'll seen > 36C soon too :P
j4at: "Just aim for a plausible goal" yeah that's why I decided to give up on the event :3
Miki09: lol
struct: Its actually not hot at all in portugal
struct: <30C
PatrickMcGinnisII: 31c here, but forecast is for 37+
j4at: 36 is hot ? Amateurs
struct: humidity is also important
j4at: Well today is 31 here
j4at: but few days ago it was 40
struct: Same here 40
struct: Will probably reach close to 50 in some zones
PatrickMcGinnisII: >60% humidity here
struct: Once I rode my bicycle with 40ºC+
PatrickMcGinnisII: rains everyday, Florida...wait 5 minutes, weather will change
struct: Never felt so much pain
jacek: better start training more NNs on computers
waterproofsodium: rip 40 is when I stop coding xD
MSmits: Did you remember to put the saddle on?
struct: My hearth rate was 20 bpm avg higher with the same effort
PatrickMcGinnisII: hmm, stabilized at rank 299, i guess i suck
struct: It was a good experiment though
struct: Now I know that heat impacts bpm
PatrickMcGinnisII: http://www.auroraborealispage.net/solarmax.html
waterproofsodium: someone make a optimization problem to lower earth temperature through terraforming without starting a new ice age :P
PatrickMcGinnisII: only gonna get worse next couple years
emh: is there a tool that tells you how many wins you have when you are player 1 versus when you are player 2?
j4at: time to move to Antarctica and start my own empire
struct: yes emh
PatrickMcGinnisII: avg. temp goes +4 deg. and crops die...crops die...we die ... your AI needs to optimize mushroom growth
struct: ah wait
struct: dont think so
struct: it just says wins
struct: and loses
struct: http://cgstats.magusgeek.com/app/green-circle/emh
Astrobytes: can't you use brutaltester for that purpose?
waterproofsodium: patrick something tells me we will end up serving our mushroom overlords
struct: best way to find if the game is balanced is to output random
struct: for both players
MSmits: you mean we'll be addicted to shrooms?
struct: for N games
struct: Here would always be a tie
waterproofsodium: :D
struct: so you cant use the random that the referee provides
emh: I want to know if my opening strategy for p1 or p2 is worse
PatrickMcGinnisII: Shrooms have the best protein/fat ratio to sub for meats... cause good luck getting those
struct: MSmits how many states do you usually need to bruteforce?
struct: is the number in millions?
PatrickMcGinnisII: Plant pineapples, they take full sun well
PatrickMcGinnisII: but don't produce much
waterproofsodium: yeah or you'll attract pineapple pirates
MSmits: let me do a few tests struct, it's very variable
struct: maybe the worst case is enough
PatrickMcGinnisII: 'Mericans have alot of dogs and guns. ;)
MSmits: yeah but i need data for that
MSmits: probably a few thousand?
MSmits: maybe 10k or so?
PatrickMcGinnisII: First player should have an advantage because players pull from same app list
struct: oh
struct: I thought it would be way worse
struct: thanks
MSmits: this is with allowing up to 3 cards played in the sim
MSmits: not 4
MSmits: also most turns it is < 100
PatrickMcGinnisII: play card phase screws up my thinking
MSmits: a few in the mid 100s
MSmits: rarely over 1k
struct: o.o
MSmits: move phase with daily routine + training/coding will cause a lot of branching
struct: Im thinking on using union for the cards
MSmits: just remember, there's never more than 55 ways to draw 2 cards
MSmits: 10 + 10*9/2
MSmits: the only thing that differs between these 55 ways is the probability of it happening
struct: Thanks Ill remeber that
MSmits: but no need to branch more than this
MSmits: but chain trainings will still give you 55*55*55*...
MSmits: assuming you have all cards in your pile multiple times
MSmits: which is very unlikely
Illedan: Games would end in < 10 turns
MSmits: when?
Illedan: 1 turn = 1 move
MSmits: we are just talking about simming 1 full turn
Illedan: So you can't get too many cards
MSmits: you can do many trainings in 1 turn
MSmits: and coding
Illedan: Yeah, but you can't manage to get that many before the game ends
MSmits: you can only release 1 app in a turn, it doesnt really matter how many turns after that. Since we're not simming those. We're just making sure the current turn doesn't crash us
MSmits: which it definitely can
Illedan: ah
MSmits: (if you dont limit your plays)
Illedan: To validate all sequence of actions?
Illedan: *card plays
MSmits: yeah
MSmits: to score them with eval
MSmits: just made my depth go up 1, allowing 4 plays. No crashes so far
MSmits: iterations: 12771 one time
MSmits: iterations: 12188 so yeah, more
MSmits: manageable though
MSmits: I think this game has a cool ending
MSmits: https://www.codingame.com/replay/642800370
MSmits: I calculate win% based on draw probability
MSmits: my orders were:
MSmits: http://chat.codingame.com/pastebin/32883961-7bf7-48df-8c54-63aa016373d2
struct: nice
MSmits: so while no random happens win% stays at 30%, then i have an unlucky coding draw and it goes down to 8%, but i still win
MSmits: mmh now i wonder if i got a better rank due to allowing more plays or if it's just luck
struct: you can always submit again
struct: maybe you were unlucky
struct: and you deserved even a better rank
MSmits: possible yeah
MSmits: nowhere near beating those if-guys though, but i got a reasonable bot. Probably need to be more creative with eval or just choose better parameters
struct: It's only a matter of time
struct: before their downfall
MSmits: well they'll stay high but a few simmers will pass them
MSmits: possibly one with a NN
Miki09: https://www.codingame.com/replay/642804441 Why cant I release application 14 in frame 76?
eulerscheZahl: you have nothing automated
eulerscheZahl: your 1 card that fits the required skills isn't enough
eulerscheZahl: you have 2 good and 4 shoddy skills
Miki09: what is meant by automated?
struct: You can automate cards
struct: so they can be used to release apps
eulerscheZahl: using the continuous integration skill prior to the release
Miki09: oh ok thanks
struct: antiwonto why can't I release
struct: Should be a command
MSmits: 2 good and 4 shoddy skills? Is that possible?
MSmits: oh in total, with wrong cards i guess
eulerscheZahl: can you complete a project with 8 shoddy?
Nerchio: why not
eulerscheZahl: not that i would want to do it, technical debt would kill you
struct: if you want to lose
eulerscheZahl: somehow i added an extra rule that 50% of my skills must not be shoddy
eulerscheZahl: to my move gen
struct: I dont really like to limit my move gen
eulerscheZahl: then i don't have to check of i have enough shoddy on top
eulerscheZahl: me neither, a good eval should figure it out
TimothyAlexisVass: :taco: struct
MSmits: yeah i have that rule as well eulerscheZahl
struct: my ears
MSmits: 50% much be non-shoddy. I thought this was necessary
eulerscheZahl: i start to hate those tacos
darkhorse64: your stomach mainly
j4at: :taco: eulerscheZahl
eulerscheZahl: even changed it to at most 2 shoddy skills
MSmits: well you can just make that part of the eval cant you?
MSmits: if you eval TD, you will have more
MSmits: I could try and see what happens if i force a max of 2
eulerscheZahl: i know... one step after another
struct: I'm gonna bitboard this I cant resist it
MSmits: I'm afraid to do that
MSmits: I will cause more bugs than i can find before next weekend
eulerscheZahl: oh, a new jim browning video online
struct: all the cards should fit into 64 bits easily
struct: instead of the arr[10] I have
struct: Anyways it might be a waste of time but im willing to risk it I guess
MSmits: yeah they will fit, but the question is: What operation will be faster in bitboard?
MSmits: copying and memsetting will be faster i suppose
eulerscheZahl: meanwhile:
eulerscheZahl: http://chat.codingame.com/pastebin/8e21058e-6102-4ba2-8c9b-ef26de92a729
eulerscheZahl: i see nothing wrong with this :D
MSmits: there really isn't. I just increased my max played per turn to 4, allowing 4 cards to be played and still get only 12k iterations on a bad turn
MSmits: possibly 5 is also realistic
MSmits: after reviewing my code and getting the last bugs out i'll try submit with 5
eulerscheZahl: i still do redundant stuff. like THROW 5 | THROW 6 THROW 6 | THROW 5
MSmits: ahh yes, easily fixed with a loop using i from 0 to 9 and j from i+1 to 9. I used that in a couple places
MSmits: I just noticed task prioritization takes a card from my hand and from the board, but doesnt put any new cards
struct: japan at the top again
PatrickMcGinnisII: Invisible cards, cool https://www.codingame.com/replay/642833632
aangairbender: I see top1 doesnt really care about technical debt cards at all
aangairbender: getting ~20 before releasing 5th
MSmits: that doesnt mean they dont care, you get 20 pretty easily
aangairbender: I liked siman strat though, he got rid of all debt cards as soon as he could
aangairbender: it was kinda elegant imo
aangairbender: all deck is around 5 cards, so can predict the next draw pretty reliably
kovi: eulerscheZahl here, the wild change of meta may bring the depth for next week
eulerscheZahl: not that new, saw it in other high ranked bots before
kovi: up to now...we mostly tried to play our own game
eulerscheZahl: oh, that's what you mean? use the few cards against him by trying to block?
kovi: yes
kovi: some of the new meta are extremely susceptible to that...
eulerscheZahl: as always, i'm already tired of the "meta" discussion. i'll just see what you guys pull up and take my own path
MSmits: i totally agree, I much rather spend time tinkering with my meta mcts
Palmipedus: has anyone bug on training? I just play a train card, and I have still things to do bug it goes to Release phase
Nerchio: don't follow the meta, create it :sunglasses:
struct: do you have a replay Palmipedus?
MSmits: iterations: 809388 woops, I guess sometimes 4 cards is too much :)
kovi: Palmipedus it is known bug, hopefully going to be fixed soon, check forum
Nerchio: MSmits cries in java :disappointed:
Palmipedus: https://www.codingame.com/replay/642836433
MSmits: i can do some optimizations to reduce the chance later
MSmits: or i just reduce to playing 3 cards in sim
Palmipedus: frame 37, it after I train it goes to release phase and find nothing obvioulsy :D
MSmits: or even better, iterative search like a minimax
Palmipedus: kovi ha, I thought it was fixed
struct: oh I hope its fixed
struct: Thats a big bug
gokubill: hi
Palmipedus: that's a bit annoying it's a part of my strat to use Training :D
MSmits: does it perhaps do this on 5th app when you have a win? In that case you can just finish the game
struct: no
struct: he only had 1 app
Nerchio: will you simulate stuff like, training into chance of drawing another training and training it again? MSmits
MSmits: yeah
eulerscheZahl: when my draw pile is empty and i want to draw some more cards: will it swap draw and discard?
MSmits: thats why i just timed out
MSmits: i allow 4 plays in a row, this time it was too much
struct: discard cards will go into draw pile euler
eulerscheZahl: within the same turn already?
struct: yes
eulerscheZahl: thanks
MSmits: draw pile had 2x training and 1x coding, hand had training, thats a lot of draw
eulerscheZahl: just the PLAYED_CARDS won't
struct: yeah
struct: played cards will go at end of the turn so after release or no more plays
StevenV: hello guysz
struct: hi
jacek: ohayou
Miki09: Is it worth it to try to release applications completely without shoddy skills? (Siman does it)
jacek: thats so not agile
StevenV: so you guys seems successfull with smimulation and an algorithm
struct: not me
MSmits: yeah StevenV, but it's actually a very simple algorithm, we try all possible moves in the current turn then pick the one we eval as best
kovi: im halfway (heuristic + some sim)
MSmits: the execution is hard because of the complexity of the simulation
Palmipedus: and the bugs
MSmits: but the actual search is very simple
MSmits: yeah the bugs come from the complexity, i am currently trying to fix a task prio bug, it's trying to play cards it doesnt have
PatrickMcGinnisII: huh, reduced movment thru admin and jumped into top 200
StevenV: just wonder if silver boss open and bronze boss show up, then all the Bronze league will get recalcuated right?
struct: no
MSmits: no
MSmits: not if they do it right
MSmits: they can just copy the top X from bronze into silver league and put the bosses at the top of both leagues
StevenV: ah
MSmits: if they do it wrong, they will not recalculate bronze, but silver would be fully recalculated
MSmits: this happened last contest. It causes a ton of server load
MSmits: ruining the rest of the day for everyone
StevenV: does it will be same for gold and legend too?
MSmits: yeah
MSmits: legend is different on the last day though
MSmits: when the contest ends, top legend will have a special recalculation
MSmits: (more battles)
StevenV: I mean only when the league open
MSmits: yeah thats the same
Zylo: TRAINING will be fix?: https://www.codingame.com/replay/642844163 in 73 I played: TRAINING I have a lot of skills and in 74 I got RELEASE phase :-(
StevenV: thanks
MSmits: oh, legend is very hard to get into at first, its usually only top 15 or so
kovi: Zylo hopefully soon. reported 2 days ago
kovi: the more sim, the more trouble it causes
Zylo: kovi do you know what it depends on?
kovi: (i semidisabled it)
kovi: dont know
Zylo: I have no sim :-D
StevenV: do you guys know if top 5 uses some algorithms with sim or heuristic?
MSmits: both
StevenV: oh
jacek: they use jacekmax of course
MSmits: generally sim based bots take more time to code and will take over later in the contest
MSmits: some rare contests keep heuristic bots in the top 5 all the way till the end. Some have even been won by heuristic bots (code a la mode for example)
MSmits: I got into top 5 on code royale with what was mostly heuristic (i did not know how to sim back then and it was hard anyways)
jacek: spring 2021 had some heuristic bots in legend, despite being good for sim
struct: Are you trying to tell me that a NN will win again?
MSmits: it could
MSmits: theres always room for a limited NN, using it for parts of the game
eulerscheZahl: a bug in the game, that explains why me making a more accurate sim on training lowered the rank
jacek: yeah, blame it on a bug in game
eulerscheZahl: it's easy to blame yourself. but it's even easier to blame someone else
eulerscheZahl: - Homer Simpson
MSmits: ohh is that why i cant get past rank 50. Too much training?
jacek: overfitting
eulerscheZahl: jump of the hype train MSmits
eulerscheZahl: off
MSmits: the train train?
Nerchio: if training sometimes stops your skill casting then I can see you lose better moves trying to prolong your turn
MSmits: yeah, my bot even does win-checking based on this
MSmits: based on chain-training/coding
eulerscheZahl: do we know under which circumstances the train chain breaks?
MSmits: someone should study the source
MSmits: you were bored right euler?
Nerchio: xdd
eulerscheZahl: why?
MSmits: well you are good at finding this stuff
eulerscheZahl: i don't care enough :D
MSmits: ahh ok
OldJohn: Anyone succeed in making brutaltester work with green circle ?
eulerscheZahl: also some theory about software reliability: the more bugs you find, the more likely it is that there are more hiding
MSmits: maybe i will do it in the train tomorrow if i have wifi
ganbat24: jesus too many things to read and intro is in french
eulerscheZahl: no point in making a brutal tester yet, as long as there are such bugs in the referee
MSmits: i didnt use the intro ganbat24
struct: isnt this the bug?
eulerscheZahl: you can just git clone and analyze offline
MSmits: just read the statement 20 times like everyone else. And then ask a bunch of questions
ganbat24: yeah but then i have to read
MSmits: indeed
struct: I think the bug is in there
struct: so before playing the training the remaining plays get set to 0
struct: then you play trianinng
struct: remaining plays get increase to 1
ganbat24: but i am sleepy i thought i should make a naive solution then go sleep
struct: you enter this again
struct: and go back to 0
struct: maybe you dont even get to play a card at all if you can complete an app
struct: I havent checked
MSmits: only if you cant play an action card
struct: ah ok
struct: i was wrong
struct: Maybe nopt
struct: not*
MSmits: hmm
MSmits: I wonder
MSmits: first you remove one play
MSmits: then you ask the question is plays <= 0
MSmits: you already removed one, so if you had 1, you just lost it
struct: yeah but playing training adds 1 more play
MSmits: yeah but what if it was 0 already
MSmits: then you just added 1 and lost it again before starting the next phase
JohnyDaison: what do you guys mean when you talk about a sim, exactly?
MSmits: so you start at 0. Then training adds one, then that line removes 1 and you dont get another phase
struct: you start at 1 when you enter the phase
MSmits: JohnyDaison try out moves and simulate what happens to figure out what is best
MSmits: where does it say this struct
struct: private void startPlayCardPhase(Player player) {
gamePhase = GamePhase.PLAY_CARD; player.addMorePlays(1); }
MSmits: trying to find that in referee
struct: line 169
struct: of Referee java
MSmits: ok, but that adds 1
MSmits: what was it before
MSmits: what if it was -1
struct: ah
struct: :medal:
struct: that might be it MSmits
struct: I dont know
MSmits: maybe yeah, me neither
struct: But it seems to be plausible
JohnyDaison: Is there a replay where this problem is visible?
struct: Let me run 100k games offline to check if ever goes below 0
struct: https://www.codingame.com/replay/642844163
struct: 173
struct: 73*
struct: frame
struct: give me a few minutes MSmits Ill report back
MSmits: cool
MSmits: 'm here all day
struct: Is there anything like assert for java?
Nerchio: assert
Nerchio: assert 1==2; xd
struct: It doesnt crash the program?
struct: Nerchio whats the easiest way to crash the program?
Palmipedus: Can we do Prio with a Bonus card?
MSmits: yeah
MSmits: on both indices
jacek: Object x = null; x.toString()
Palmipedus: great to know
Nerchio: ^ or throw exception
Palmipedus: thena MSmits
struct: ty jacek
jacek: or just run the program
Miki09: how many of bronze players will auto go to silver?
MSmits: 200?
MSmits: is my guess
Miki09: ok
Miki09: 50 more places to push
JohnyDaison: Regarding the replay, during the combo on turn 55 it worked fine, but then on turn 65 CODING was played, and there was only one WAIT after it, which doesn't seem correct.
Palmipedus: MSmits thanks not thena :D
struct: MSmits
struct: -1 0
struct: You are right
struct: System.err.println(player.getPlaysLeft()); player.addMorePlays(1); System.err.println(player.getPlaysLeft());
Nerchio: so just make a function that sets it to 0 there instead of add 1
struct: set it to 1
struct: not 0
Nerchio: true
struct: kovi this might be the bug
MSmits: nice one struct. Should post it
struct: [SG]Sebastien are you there by any chance?
struct: I think he might be online
jacek: there are few fixed bugs pending for release
Illedan: There is a bug with training?
Illedan: and coding?
kovi: im not sure about coding though maybe that is because of the 2x draw "mess" (it is messy to implement it in simu + gameflow)
Illedan: how is 2x draw a mess?
Illedan: In your code?
struct: Ok posted on forum hopefully it will be fixed
MSmits: Illedan sometimes when the playphase starts, playsleft is -1 instead of 0
MSmits: when the playphase is started, 1 is added, which normally means it is 1
MSmits: but in this case it would be 0
MSmits: you would still get 1 play
MSmits: but then with training, 0+1 becomes 1
MSmits: then when setting next phase, 1 play is subtracted
MSmits: meaning no bonus play
MSmits: so either they have to figure out why playsleft becomes -1, or they just always start a first playphase with plays = 1
MSmits: the first option is the better fix as it might be a second bug
Miki09: somehow my first iteration says it runs 3 seconds
Miki09: hmmm
MSmits: your time measuring is off
Illedan: Thx for explaining
MSmits: first start reading input, then start the timer
Miki09: I dont know why
jacek: dat time dilation
Miki09: its copied from SO :-)
Miki09: so it should work
MSmits: SO?
Miki09: stack overflow
jacek: queue overflow
MSmits: Miki09 the lines of code are not wrong
MSmits: the place where you put them is
MSmits: you put the start of your time measurement before readint the input
eulerscheZahl: read input start timer do something stop timer and print action
Miki09: ok thanks
Smekarn: If I'd like to test my Green Circle bot offline, where can I read up on how to get a game simulator going?
eulerscheZahl: MSmits 06:23ᴾᴹ SO?
now you know how it feels like when others use non-obvious acronyms
MSmits: if you do it before reading input, you basically started your timer in your previous turn, this means you measure the entire opponents turn + the referee time
Miki09: now it shows 0.00019693374633789062 :-)
MSmits: good :)
MSmits: indeed eulerscheZahl
Miki09: seems like I have plenty of more time to simulate
eulerscheZahl: you clone the github repo and import is as a project in the IDE of my (not your) choice: IntelliJ
MSmits: yeah for this contest (if that is what you are doing) you have plenty of time
eulerscheZahl: https://forum.codingame.com/t/how-to-run-ocean-of-code-github-project-locally/168041/3
Smekarn: Thanks @euler
struct: I also use IntelliJ it does everything alone
struct: I only need to right click and run
struct: but im a windows user, so that might explain it
jacek: :rage:
Smekarn: IntelliJ it is then
MSmits: hmm i might try that
eulerscheZahl: even is a linux use i prefer intelliJ for this task
MSmits: i've never been succesful before
eulerscheZahl: and i strongly hate eclipse
struct: vscode also works decently well for this
struct: but requires a bit more work
jacek: lunar eclipse or sun eclipse
struct: One interesting thing on the bug that triggered
struct: was that it didnt happen after a training card was played
struct: It happened after a throw
struct: But the player could still play a card
MSmits: yeah because the first play is free
MSmits: but because playsleft = -1, the bonus play doesnt go high enough
struct: He didnt play because I crashed the referee
MSmits: right, but i mean if he had
TMP161112: can i have some help
struct: ok maybe my fix will not work
OldJohn: @jacek you have a lot of technical debts !
jacek: is it bad?
OldJohn: yes probably !
MSmits: not if you win
OldJohn: SSS
MSmits: nake?
OldJohn: Small statistical sample
jacek: does having PLAYED_CARDS in inputs give some advantage/
MSmits: :snake:
MSmits: o
MSmits: jacek yes, you cant play those again and you cant draw them again when your draw pile is empty and discard gets shuffled into draw
MSmits: so during that entire turn, no matter what you do, you cant use those cards
jacek: oh
MSmits: if they are in discard, you may be able ot
MSmits: by using training cards if your draw pile is almost empty
MSmits: also you need to take them into account when calculating desk cards
MSmits: if they are in played, they are not in desk
eulerscheZahl: Illedan — Today at 6:27 PM @eulerscheZahl I think the bug msmits is talking about occurs when you dont play cards in the play phase. Because it is subtracted every play phase. On my phone now, but can you tell him?
eulerscheZahl: no idea what you were talking about, was eating dinner
eulerscheZahl: oh wait, i was even chatting at that time. then i'll go with bad memory or lack of attention
MSmits: :)
emh: lol check my automated cards in last frame of https://www.codingame.com/replay/642887779
Illedan: So it will be fixed when setting to 1 before the play frame
struct: no idea Illedan
Illedan: I think so
struct: It might create more bugs
struct: :D
Illedan: Nah
eulerscheZahl: where are the unit tests?
eulerscheZahl: i admit i'm also a bit lax when it comes to them. but for a more complex game (tryangle catch) i wrote some and it really helped
eulerscheZahl: struct what are you doing on the forum?
eulerscheZahl: Object x = null; x.toString();
struct: Its not a fix
struct: just to make it crash
jacek: good thing you told that
eulerscheZahl: throw new Exception()
jacek: otherwise theyd put it into the code
struct: lol
Illedan: :D
struct: I just follow jacek advice euler
Illedan: Why don't you think setting 1 works struct?
eulerscheZahl: do we have a replay where it happens?
Illedan: Forum has some of them
struct: look at this
eulerscheZahl: forum is long
struct: let me upload 1 sec
eulerscheZahl: do we need staff to deploy fixes?
Illedan: For a Contest I think so yes
struct: because sometimes the actions start at 0 Illedan
struct: the getPlaysLeft
Illedan: So setting it to 1 should fix that?
struct: but I could make the action
struct: if its 0
struct: its still legal
Illedan: Not really
struct: So after move
struct: -1 0
Illedan: it doesn't check when entering the PLAY_CARD state
struct: inputs next turn
Illedan: Only inbetween
Illedan: I think
struct: 3 TRAINING RANDOM WAIT
struct: The -1 to 0 occurs way to often
MSmits: is it possible for there to be 37 bonus cards in total?
Illedan: Yeah, the amount of plays you have left is not checked before the first PLAY_CARD
struct: so setting it to 1 should be fine right?
Illedan: Yes
MSmits: https://www.codingame.com/replay/642891364 around frame 95 i add up 37 bonus cards.
kovi: nice catch
kovi: struct
eulerscheZahl: did you verify that it solves the issue?
struct: No
Illedan: I'll test it locally
struct: Thats why I edited my post
struct: :D
eulerscheZahl: https://eulerschezahl.herokuapp.com/codingame/replays/reproduce/?id=642495725
eulerscheZahl: happy hardcoding
Illedan: He did push it set to 1
struct: ok
avdg: guudevening
MSmits: guys, can you check my replay, i think this is a serious bug also
MSmits: 37 bonus cards total
struct: it is 37 bonus
eulerscheZahl: "Trying to fix the bug" very convincing
struct: It will even break my bot MSmits
MSmits: yes struct
MSmits: how can this be?
struct: if all 37 are in player hand
struct: my bot wont like it
eulerscheZahl: are the 36 in total or in the center?
struct: 36-37 = -1;
MSmits: 37 in total in the game
eulerscheZahl: 36 + initial bonus in hand?
MSmits: oh wait
eulerscheZahl: questioning the rules
struct: Its 36 in total euler
MSmits: i am not sure
struct: 36 in the game
MSmits: at frame 21 there are 38
MSmits: wait
MSmits: could be a viewer thing
eulerscheZahl: in turn 1 it says 28 left in tooltip
eulerscheZahl: so 36 in total
MSmits: yeah in turn 1 it is fine
MSmits: frame 20, also 37
eulerscheZahl: do you store stdin?
MSmits: seems to happen during training on frame 16
MSmits: you can see it go from 36 to 37
eulerscheZahl: would be easier than tooltips of a possibly buggy viewer
eulerscheZahl: but i agree: stays 37 for the frames after as well
MSmits: yeah i dont have the full stdin
MSmits: i have some calculated results that are 1 off after this point
eulerscheZahl: why not?
MSmits: i calculate whats on the board and my results are 1 lower
MSmits: than the viewer says
MSmits: thats how i spotted it
struct: let me see if I can reproduce
eulerscheZahl: starts pretty early to be off
MSmits: i think maybe i was supposed to throw 2 bonus cards and it threw 1
MSmits: yeah thats it
MSmits: I threw 2 bonus cards to the board
MSmits: but only lost 1 bonus card
MSmits: yay
MSmits: on frame 14
eulerscheZahl: from 14 to 15 you have to throw 2 cards
eulerscheZahl: you only throw 1
kovi: that is a known bug
kovi: already fixed, just not published
eulerscheZahl: oh i'm slow
MSmits: how many known bugs are there lol
eulerscheZahl: forum thread is too long to follow
kovi: i counted 3 notorious bugs there multiplied by time (slow fixing) (3rd was the infinite)
kovi: (which was fixed relatively fast)
darkhorse64: Can you throw/give bonus card ? According to the statement, no but I am unsure
MSmits: you can
darkhorse64: thanks
eulerscheZahl: you can also TASK_PRIORITIZE into a bonus
MSmits: the term skill card is used inconsistently
eulerscheZahl: which isn't allowed according to inputs
MSmits: sometimes they mean non-bonus, sometimes it includes bonus cards
eulerscheZahl: except if they fixed that, no idea
MSmits: when you can "play a skill card" then its not bonus
MSmits: when you have to "give a skill card" it includes bonus
darkhorse64: French statement is also ambiguous
eulerscheZahl: it's a green contest
eulerscheZahl: like a green banana. not ripe yet
MSmits: all French is ambiguous to me. It can mean anything
struct: I dont know why this game crashes when I try to play multiple games
MSmits: locally?
struct: yeah
eulerscheZahl: some static stuff?
MSmits: is it vanilla or have you been fixing bugs?
struct: ah must be that eule
eulerscheZahl: IDs out of range or so
struct: Yeah thats the reason I think euler
eulerscheZahl: had a similar experience for locam(?) long ago
struct: Im not fixing bugs MSmits
MSmits: ah
struct: Just wanted to spot the bug you mentioned
MSmits: oh ok
struct: to check if its tooltip or game bug
eulerscheZahl: game bug
struct: Anyone found out why yet?
MSmits: we know where it happens
eulerscheZahl: we discussed that. frame 14 to 15
MSmits: it happens when you throw cards
eulerscheZahl: throwing only 1 card
struct: ah ok
MSmits: perhaps when you only have bonus cards
MSmits: as that was the case fo rme
struct: Has this been reported?
eulerscheZahl: yes
MSmits: kovi says so
eulerscheZahl: he says fixed but not deployed
struct: :thumbsup:
struct: Time to get back into my bot
struct: havent coded anything for it today
eulerscheZahl: japan isn't happy either https://twitter.com/_simanman
MSmits: considering as you spend a lot of time working on creating games, I have a suspicious feeling you like debugging their game more than your bot :P
struct: well I just like the game to be bug free
MSmits: same
eulerscheZahl: we all do
eulerscheZahl: except if i find a bug that no one else does and i can abuse it
MSmits: haha like you can keep that to yourself
eulerscheZahl: good point
Smekarn: Then it's a feature, not a bug
eulerscheZahl: never trust me with a secret, it will backfire
struct: bugs, features whats the difference?
struct: Also tbf its way easier to spot bugs when you have more than 100 people looking for them
eulerscheZahl: i know, been there
eulerscheZahl: 2 months of testing kutulu (intensely) and still some oversights
eulerscheZahl: how was it even possible to get -1 cards to play?
struct: thats what im afraid off
struct: :)
eulerscheZahl: asking so that we don't patch a symptom without fixing the root cause
MSmits: yeah, it should be easy to figure out though. Just check all references for plays left and find the lines where it is subtracted from
struct: else if (player.getAction().isWait()) {
gameSummaryManager.addWait(player); player.setPlaysLeft(0); }
struct: might be the cause
struct: you play wait
struct: then --
struct: you get -1
struct: or this might be new?
struct: Idk
MSmits: set plays left becomes 0 though
struct: But the phase doesnt change I thikn?
MSmits: no idea
MSmits: you have the intellij view
jacek: idea intellij
struct: I think this is what happened you set to 0
struct: then it still decrements --
struct: because its still playCard turn
MSmits: yeah has to be something like that
struct: of phase
struct: w/e
jacek: imagine if java had unsigned types
MSmits: how many places in the code does decrementing happen?
struct: only here
MSmits: well then the bug must be there
MSmits: thats the only place where removeoneplay is
MSmits: but thats a function
MSmits: you need to check where the variable playsleft is modified
MSmits: it could be modified by a different function
struct: it was modified on wait
struct: to 0
struct: then you check which phase it is
struct: it is play phase
struct: you decrement by 1
struct: and plays because -1
eulerscheZahl: ok, you convinced me
struct: become*
MSmits: hmm
MSmits: if (activePlayer.getPlaysLeft() <= 0) {
gameSummaryManager.addNoMorePlayingCardAllowed(activePlayer); activePlayer.setPlaysLeft(0);
MSmits: this makes it immediately 0 again?
struct: https://github.com/societe-generale/GreenCircle/commit/71cbcdf9b96feed1f0cb6db37fc77fa5cbecd7f3
struct: its new
MSmits: cool
struct: it makes sense, if it was the root idk
struct: and im too lazy to check
eulerscheZahl: https://www.codingame.com/replay/642495725 frame 38 is the bug with no play
eulerscheZahl: and frame 30 he decides to WAIT instead of playing a card
eulerscheZahl: that frame 30 causes frame 38 to fail
struct: :)
MSmits: my bot is now rank 25 =) It started automating cards
struct: nice MSmits
eulerscheZahl: so i agree with your findings struct, nice catch
struct: still bruteforce?
struct: Thanks
MSmits: yeah, i just adjusted the eval to like automated cards
MSmits: this is what is nice about simmed bots
MSmits: you try to change the result not the actions
eulerscheZahl: more easier to improve one thing without breaking everything else
MSmits: exactly
MSmits: it's harder to get your bot to do a specific thing using a sim, but maybe that specific thing is not the best thing to do anyways
MSmits: Now to recode this entire bot in C# for a windows forms arena program
MSmits: to fit params
kovi: golden words
eulerscheZahl: porting from C++ to C#? that's total madness. and it's what i like about you so much
MSmits: :grin:
struct: madness is the perfect word
struct: MSmits you should check gui for c++ after the contest
struct: There are some pretty easy to use
MSmits: yeah i know, but thats not the only problem
struct: Is it worth to report the root cause of the problem?
MSmits: if I do something complex with C++ I am also going to have memory leaks and stuff
MSmits: struct only if this could cause other problems
MSmits: also struct, if you're interested, my bot is 1083 lines now and could still use some trimming. Should be able to get it below 1k
eulerscheZahl: yes, gives him more confidence that your suggestion actually solves the problem
MSmits: :P
eulerscheZahl: "trying to solve" in a commit message on master isn't that convincing
struct: ok
struct: Nice, I'm still trying to get something working
MSmits: still have another week struct
[SG]Sebastien: I agree, it happens only after a WAIT (only way to get a negative value)
[SG]Sebastien: nice catch struct
struct: ok so I guess is not worth to report
struct: :p
struct: thanks
struct: Yeah MSmits I'm not too stressed about it
[SG]Sebastien: the fix should be enough to prevent this from happening again. I'll check with CG when we can push it
eulerscheZahl: pointing out the WAIT in the previous turn was me. I want recognition :D
struct: I was gonna give you credit on the forum
[SG]Sebastien: thanks also eulerscheZahl
struct: As I did for MSmits
MSmits: ah yes, team effort!!
struct: Imagine figuring this without the chat
eulerscheZahl: team: t for toad m for msmits and struct gets the EA
MSmits: there's no s in team
MSmits: :(
eulerscheZahl: lots of hate for EA but i really liked command and conquer generals
MSmits: me too
eulerscheZahl: good times. before in-game purchases
MSmits: yea :(
MSmits: well.. i guess i stopped gaming before
Astrobytes: MTX has ruined gaming completely
MSmits: except strategy games
MSmits: mtx?
struct: Different studios
Astrobytes: microtransactions
MSmits: oh ok
jacek: diablo immortal :nauseated_face:
MSmits: well, only for games with PTW model
Astrobytes: jacek: yeah but it's still fun without paying
eulerscheZahl: i don't care about visual upgrades that are pointless
MSmits: I like paradox games. They have an abhorrent DLC policy, but are not PTW
MSmits: pay to play still exists
MSmits: you just pay a lot :)
Astrobytes: Diablo Imnmortal is soooo P2W it's unbelievable. The balance is screwed totally in favour of purchases
struct: its p2w with lootboxes thats the worst part
MSmits: I liked a game called stronghold kingdoms
Astrobytes: yeah
struct: before games were p2w, where you could buy items
MSmits: but it is the worst P2W ever
struct: now you buy lootboxes and have random chances
MSmits: when a new server opened, some players spent over $1000 in 1 day
Astrobytes: indeed struct
struct: Then there are some lootboxes that show you 4 items and pretend that its 25% for each
Astrobytes: MSmits: that's obscene
MSmits: yeah
eulerscheZahl: the whales
Astrobytes: Aye
struct: when in reality its like 90% for one and 10% for the others
Astrobytes: or worse, yep
MSmits: false advertising?
Astrobytes: misleading
struct: not false
MSmits: sounds false
MSmits: if they lie about probability
Astrobytes: cleverly misleading, worked out by large legal teams no doubt
struct: Some show the probability but if then they show 4 items on screen
struct: it makes it seems like its 25% for each
struct: its what I want to say
struct: When in relaity its not
MSmits: ohh ok
struct: Many people dont know it I guess
MSmits: if my job was in a legal team and this is what i was doing I'd feel like a complete loser
struct: Its the same thing for slot machines, where people think the machine owes you money due to RTP (return to player)
MSmits: with money obviously
Astrobytes: Imagine being a dev in one of these studios.
struct: but thats not how slot machines work
MSmits: RTP?
MSmits: what does it do?
MSmits: is this a button?
Astrobytes: yeah, bang-on analogy
struct: No, return to player is a %
struct: so if you put 100€ you will get 96€ avg
struct: if the rtp is 96%
struct: But this is an illusion
IvesL: i dont understand how can someone just promote from wood2 to wood1 then immediately to bronze, there are new rules
struct: The rtp doesnt take into account how much money you spent
eulerscheZahl: have you seen the show of hasan minhaj about game developers?
struct: no
eulerscheZahl: https://www.youtube.com/watch?v=pLAi_cmly6Q&ab_channel=NetflixIsAJoke
struct: ill watch later
struct: brb
eulerscheZahl: 24min but i totally recommend watching
Astrobytes: saved for later euler, thanks
MSmits: it's good
MSmits: i saw that already
MSmits: i liked all his segments
eulerscheZahl: some critical, some really funny
Astrobytes: ah wait, I've seen part of this but didn't finish, good motivation to I guess
eulerscheZahl: when he wants to talk to other players in-game and they just kill him
MSmits: haha yea
MSmits: didnt he criticize cricket and then his family hated him?
MSmits: because you can't criticize cricket in India
Astrobytes: lmao
Astrobytes: that's a sacred sport in England and India :D
MSmits: yep
eulerscheZahl: i saw the video but didn't know about his family
BrunoFelthes: 600 competidor at bronze at Sunday is not too many, isn't it?
Astrobytes: not as big as the 'official' CG contests
avdg: I still have to improve my bot
avdg: which is rank 3 in wooe 1
avdg: *wood
Astrobytes: loads of time left avdg
eulerscheZahl: to some degree players might be scared by the rules. but even a simpler game wouldn't come close to an official CG contest
eulerscheZahl: >50% of players in wood
avdg: I'm 1 of the best wood players at the moment :-)
avdg: my bot lacks lots of logic though
MSmits: feels like an official contest to me
MSmits: we even get cp for it
Nerchio: i like it
Astrobytes: cause the core players are mostly all here
BrunoFelthes: this contest have prizes
Nerchio: and nothing else matters
BrunoFelthes: should be bigger
Astrobytes: was it advertised via email?
BrunoFelthes: yes Astrobytes
BrunoFelthes: but 3 days before it starts
MSmits: very sudden though
Astrobytes: Also, it's not on the front page, or wasn't at least
Astrobytes: ah I see, thanks BrunoFelthes
jacek: nopony expected any more contests
Astrobytes: well, Thibaud did say there was a sponsored one coming up during Spring Challenge (or around that time)
eulerscheZahl: oh, sweet
Astrobytes: this *is* that 'sponsored' one I think
BrunoFelthes: i dont think that i will give legend this one.. i'm not started my simulator
Astrobytes: Lots of time left Bruno
BrunoFelthes: this simulator is very hard i think
Astrobytes: Might be easier when the bugfixes are released
BrunoFelthes: bugfixes will be released?
Astrobytes: there are a few pending on github awaiting CG approval to release yeah
BrunoFelthes: where can i find?
eulerscheZahl: https://github.com/societe-generale/GreenCircle/commits/master
eulerscheZahl: as in: fixed in code but not deployed to CG servers
Astrobytes: thanks euler
Sheeesh---: guys any guide on how to make a good simulation ?
Astrobytes: the source code? :D
Sheeesh---: or should i just wing it and see what i'm gonna make
Sheeesh---: no
Nerchio: that moment when your sim finds the winning move but the game skips card plays after training :rage:
Sheeesh---: not for this agme
Sheeesh---: game*
Sheeesh---: cound be general
Sheeesh---: like what makes a good simulation
eulerscheZahl: just write some code that takes a state (your cards, opponent cards, applications, ...) and generates all possible actions and following states
eulerscheZahl: that's not really complicated but tedious for a game like this
eulerscheZahl: then write some scoring function. for beginners just the applications you completed, technical debt, maybe automated bonus
eulerscheZahl: and print whatever sequence of actions (until RELEASE, inclusive) gives the highest score
Sheeesh---: okay thank you
eulerscheZahl: there isn't much more to say. the hard part comes when you tune the scoring or want to look into the next turn
Sheeesh---: gonna go try it thanks for your help
Uljahn: Mad Pod Racing simulation example http://files.magusgeek.com/csb/csb_en.html
MichelLaviron: is it normal that if I play TRAINING while having ARCHITECTURE_STUDY in hand then the next possible moves are just releases / RANDOM / WAIT, but not playing the architecture card?
kovi: known bug, already fixed, soon deployed
kovi: (will be deployed soon)
[SG]Sebastien: yeah, it happens if you did a WAIT in the previous turn's play card phase
MichelLaviron: ok, thanks. Indeed I did that in the previous phase to be able to release instead
hotbrainy: why are you in codingame?
hotbrainy: or are you a developer?
MichelLaviron: because it's fun ?
hotbrainy: live:.cid.94aae67563a833a3
Astrobytes: stop that hotbrainy
Braltz: Hi guys, I've been trying this platform to have some fun with my friends and it's amazing. I have a question, is there a way to create a private clash and start another round again when everyone finished a problem?
Westicles: you just have to send them a new link every time
Braltz: Thanks for asking. And the questions are completly random right? or there's a way to select a specific topic or diffiulty
jacek: you can only set mode and language. there is no difficulty
eulerscheZahl: "thanks for asking"? you are the one who asked
eulerscheZahl: not completely random. it tries to select a question that none of the participants played before
eulerscheZahl: from a pool of around 2000 clashes
Braltz: I see, thanks for the info
Illedan: Where do you get Technical cards when passing the admin desk? Played cards? Hand? Discard pile?
Illedan: Same with GIVE
kovi: given card arrives together with drawn at move
kovi: the order after move throw->give->move-take-card
Illedan: The Debt cards too?
Illedan: Hmm, might not be an issue. As this only occurs if you have nothing to play. And then you don't have to worry about those cards getting reshuffled by a training
kovi: good point
Illedan: Oh, collision with the other player gives 2 debt cards :O thought it was 1
Scarfield: only if you dont have a skill card to give away?
Illedan: yeah
Scarfield: good good, thought i misread it for a sec :)
jacek: euler alt? https://www.codingame.com/profile/57640b35c62eceea153b5e0c688230477630382
Scarfield: "If they do not have any skill card in hand, they get 2 Technical Debt cards." the "they get part confused me, thought you could give your opponent debt cards at first
kovi: nope. daiver is a longtime topcoder sometimes playing here as well
rcrl: Hello everyone, does anybody already had an issue when releasing a releasable app ?
avdg: I wish they had more images explaining the actions :-)
That despite them putting efforts in creating the videos
Astrobytes: also noticed sullyper from TC
kovi: oh well, and finally a game which proves that coding can also be influenced by the "training bug"
kovi: or maybe not? (i did draw another coding but both draw/discard piles are empty)
Nerchio: if I don't have anything in the discard the input is skipped?
jacek: yes
jacek: like hand etc. as well
Nerchio: :rage:
jacek: :upside_down:
antiwonto: [auto] ':upside_down:' was defined as ' ɥǝllo '
Nerchio: how can hand be skipped jacek
Nerchio: its not just discard and draw?
jacek: maybe not hand, but any pile thats is empty is skipped
Illedan: Saving storage and coding green since 2022
COOMERS: How do I do custom text cases within a challenge
Scarfield: "APPLICATION"
eulerscheZahl: oh indeed, sullype r is playing
eulerscheZahl: psyh o as well
RioTheDev: hello
Astrobytes: ah, didn't notice psyh o
jacek: psyho?
Astrobytes: thank you jacek, that will be all
eulerscheZahl: you pinged him
jacek: oh my
eulerscheZahl: https://cphof.org/profile/topcoder:Psyho
jacek: didnt you mean psycho?
Astrobytes: no
eulerscheZahl: maybe that name was taken?
Scarfield: price money $87500 :o
Psyho: it's few times larger ;)
Astrobytes: heh heh
Scarfield: damn
eulerscheZahl: that's only the prize money for on-site finals
Westicles: and now add a Nokia 3310
Astrobytes: :rofl:
eulerscheZahl: almost there https://i.imgur.com/S2o8T9H.png
Scarfield: how many people can make a living from competetive programming, i believe tour ist is one?
Astrobytes: :D
Scarfield: xD
tobk: Was there a simple way to swap 1st and 2nd player? Would be nice for testing given the vast differences whether you are 1st or 2nd (or is that just me?)
eulerscheZahl: google: cg enhancer
eulerscheZahl: adds some more bells and whistles too
Scarfield: cow bells?
Astrobytes: ^ you might need to edit the js to use only the parts you need, it can be a memory hog
tobk: Right, you recommended that some contests back already. Was too lazy to really look into it TBH... :-D
eulerscheZahl: shame on you
eulerscheZahl: may your cube stickers peel off
tobk: :scream:
Astrobytes: LOL
Scarfield: oof
avdg: the peel
Astrobytes: definitely in my top 5 insults of the year so far
Lassassin: im playing the pod game thing
eulerscheZahl: yay!
Lassassin: im better than boss but its not promoting me from wood to bronze
MSmits: lol
avdg: is the submit done recently?
avdg: if so, you have to await the matching
jacek: it says theres still 50% more games to play
jacek: you need to wait to finish
Lassassin: still in wood 1 league :()
eulerscheZahl: 6% < 100%
jacek: wait till 100%
eulerscheZahl: 65*
Lassassin: oh mb i thought 50% is enough
Lassassin: this platform is pretty fun lol
Astrobytes: :tada:
Lassassin: :tada:
jacek: spoiler alert: -3vel
MSmits: :scream:
Scarfield: oh psy ho streams
Astrobytes: I only stream tears :D
MSmits: how goes it with the bot Astrobytes?
Astrobytes: haven't worked on the sim version today, just messing around with heuristic stuff today and back to real bot tomorrow
jacek: have you tried -3vel
MSmits: ahh ok
Astrobytes: hopefully bugfixes will be released tomorrow too
MSmits: I have problems concentrating on coding on work days
MSmits: so i went nuts this weekend trying to finish sim
MSmits: that way i can do light stuff during the week like fitting parms
jacek: i havent unlocked my full potential knowing there are still bugs in the game
Astrobytes: fair MSmits
Astrobytes: lol jacek
MSmits: this week is my last real teaching week before the summer too. We got test week and activities and such, but normal classes will be over
Scarfield: unfortunate timing
struct: Just make the students play the game
Astrobytes: yeah, typical!
struct: and give you strategies for it
Astrobytes: struct :D
MSmits: haha
Scarfield: are there prizes for this contest?
MSmits: dont think i have a student interested enough to do this this year
MSmits: 3 phones
MSmits: did I mention I have never owned a smartphone
Astrobytes: aw damn, that sucks
Astrobytes: and yes
MSmits: :)
MSmits: I am waiting till i win one
Astrobytes: if you win, just sell it
MSmits: that works too
struct: ill trade you a CG shirt for it
struct: oh wait
MSmits: The IT team of my school was trying to get me to use a phone as 2-factor authentication, so i almost got locked out of all systems
MSmits: but i found a way to use google authenticator app
Scarfield: xD
Astrobytes: heh heh
MSmits: they didnt know that existed
Astrobytes: 2FA can be done just via text though, don't need a smartphone for that
jacek: ok boomer
MSmits: yeah you can check the QR code as well and get the adress right?
Astrobytes: oh lol
MSmits: i never knew this.
MSmits: I have been calling companies that wanted me to use the QR code and when i said i had no phone, they told me i could just not use their website then
Astrobytes: ffs
Westicles: the best thing about a smart phone is remoting into your pc to check your program
Astrobytes: world has its priorities upside down I tell ya
MSmits: I like to just use a small laptop
struct: MSmits you can use your smartphone to make the oware book
MSmits: in addition to a good PC
Daporan: smartphones seem useful for locating yourself and/or getting a taxi if you get lost
Astrobytes: hah
Astrobytes: that's about it
MSmits: yeah i agree they can be very useful Daporan, but i only go somewhere i havent been, once or twice a year
struct: There goes your chance to win 1 of the smartphones MSmits
Astrobytes: also hi Daporan o/
MSmits: lol struct
MSmits: and hi dapo
Daporan: hi
Astrobytes: Playing? :grin:
Daporan: that's an open conjecture
Astrobytes: fair
MSmits: if you need more info to decide. It's a reasonably fun game, but a very wordy and confusing statement
Astrobytes: at least the code doesn't lie
struct: and a few bugs that the next version should fix
Lassassin: any tricks on how i can use collision to my advantage
Lassassin: ?
struct: Lassassin dont worry about collisions until legend
MSmits: tbh if this had been magic the gathering themed with 8 colors for mana and each color having a special ability, i would have understood it much faster
struct: Lassassin try to store the checkpoints in an array
Astrobytes: *plus a correct statement MSmits
Glyptod0n: just so i'm understanding the game correctly, the player that goes second is kinda at disadvantage when it comes to having to give cards away right? because in the game i'm looking at, it's just me giving away cards to opponent the whole time lol
MSmits: well that too
struct: after the first lap is completed you can start aiming to the next checkpoint
struct: once you are close enough to the current
MSmits: Glyptod0n not necessarily, just the first turn. You can jump over him and he will have to jump over you next or give you cards
MSmits: two plays can keep froghopping over eachother and rack up lots of admin losses
MSmits: players
Glyptod0n: ah okay, thanks for the hint
struct: The next patch should fix the creation of bonus cards right?
Lassassin: so basically when i come closer to the current checkpoint, i instantly target the next
Lassassin: ?
struct: It should work yes
Lassassin: i see, lemme give it a try
Astrobytes: yes, it helps to take into account your velocity too
Lassassin: i think if i could just draw a line of the lap and idk, it sounds better in my head but idk how to implement it
Lassassin: weird
jacek: its simple logic - target far straight ahead? thrust 100 or boost. closer? smaller thrust
Lassassin: hehe not that simple
Lassassin: :3
Lassassin: or maybe it is and im just bad
struct: There is any easy way to get gold
struct: not sure if you want it or not
jacek: :zipper_mouth:
Lassassin: how to get harder clash of code problems?
jacek: you cant. they are random
Astrobytes: pretend Mad Pod Racing is a clash [solved]
Lassassin: ohno
Astrobytes: jacek fix your responses
jacek: thats what she said?
Scarfield: ohno?
Astrobytes: that'll suffice I guess
Westicles: Lassassin, approve this for harder clashes
Westicles: https://www.codingame.com/contribute/view/18429f2b452ae7ee8e44b2ecf12e69e8f3960
jacek: youd need 100 (300?) clashes to approve
bobth: 50
bobth: i think
jacek: threshold is so slow
jacek: low even
bobth: yeah
bobth: and just the number you played, not whether or not you played well
Illedan: Seems decent Westicles, but might be hard for most people
Westicles: the python crowd doesn't seem to like 2D grids
MSmits: not without numpy
bobth: I like it lol
Manchi_o6o7: Hey guys. Can someone help me out with what does -f means in bash
Astrobytes: lol, not wrong MSmits
Manchi_o6o7: for example in an if statement [ -f $something ]
Astrobytes: looks fine Westicles, I'd try it as an easy puzzle since it failed at clash
MSmits: I made it to top 10!
MSmits: well...10 tbh :)
Astrobytes: gratz MSmits!
MSmits: thanks, just been fiddling with params
Astrobytes: figured that :)
jacek: opening book eh
MSmits: no book
Illedan: Nice MSmits
Illedan: I have no idea why I'm still here
struct: grats
MSmits: where?
Astrobytes: here
Illedan: 8th :P
MSmits: oh ok
MSmits: because your bot is good?
Astrobytes: there
Illedan: No?
struct: My bot just doesnt work because of referee bugs /as
struct: /s*
Illedan: else if(moves.Any(m => m.Contains("CONTINUOUS_INTEGRATION") && !m.Contains("CONTINUOUS_INTEGRATkION 5"))){
Illedan: This is one of my IFS
Illedan: :D
Astrobytes: that's.... very specific :D
MSmits: at least you thought about what would be good moves
MSmits: I still haven't used any strategy behind some common sense params
MSmits: except some params i mean
MSmits: (tired)
MSmits: nothing hardcoded
MSmits: I still need to spend time thinking about this game to know what to eval
Illedan: At least I have some base logic to encode into my sim when it's done
MSmits: yeah
Illedan: As it seems to work
MSmits: works fine
Astrobytes: indeed
MSmits: btw, my version at rank 10 had a 55% WR compared to my version at rank 22
MSmits: relatively small change. Fairly random ladder I think
struct: well 10 and 22 is close
MSmits: not sure if it's rock paper scissors effects, or the fact that the game has a lot of random
MSmits: almost 2 rating points
Astrobytes: significant
MSmits: how do rating points convert to WR?
Inc_: This was probably asked before, but in the Green Circle contest, how do you know how many skill cards are in the desks (in Wood league)?
MSmits: total - everything else
MSmits: desk -> total = 5
Inc_: okay, a bit of calculation. thanks!
MSmits: np
MSmits: they should probably have given it as input
Astrobytes: lets not start on the "should haves" for this one :D
MSmits: heh right
MSmits: so far I am liking this contest
Astrobytes: I don't dislike it
Astrobytes: that's high praise from me
MSmits: probably would not be good if it was a month long, like locam was
Astrobytes: ugh. Well, they might have fixed all the bugs my then! /s
MSmits: true
MSmits: anyways, I am getting some sleep. Work tomorrow. Gn!
struct: gn
Astrobytes: It's a little bit different to the norm, this game. kinda what I like about it
Astrobytes: gn MSmits
jacek: :older_man:
Astrobytes: ^ relatively accurate but too old looking
Paroni: out of curiosity, what does it mean when an opponent gives different results when "replayed in same conditions"? why does it benefit them to induce randomness?
Astrobytes: did you remember to set to 'manual'?
jacek: so they cant counter book youu
Paroni: i didnt think setting to manual was generally necessary when battling the same opponent without changing my own code? all other opponents have always given the same result. And is it really only for preventing counters? :D
jacek: it depends. if they use search, it number of iterations per turn may affect the outcome
Astrobytes: it sets the game seed to whatever it was in the game, should help with randomness unless the player is using a dynamic seed in their random or a search issue as jacek described
Paroni: thanks. I should maybe some day learn how to do a search and stop it before it times out...
Astrobytes: you definitely should, all things in due course :)
Astrobytes: jacek: you seem unusually interested in this contest
Astrobytes: (unusually for you I mean)
jacek: huh
Astrobytes: you don't generally bother about the game much past a couple of days in
struct: jacek is just looking for bugs
Astrobytes: troll material eh
Westicles: theres a nice puzzle (wine from kalbodia 2) about to expire the 2nd time with 2 approvals if anybody is bored
struct: finally managed to work out a logic that will work for the move
struct: ...
avdg: Still not in bronze but I guess I should only optimize my bot now (apart from the new rules in bronze)
jacek: until next bug
struct: optimize? do you mean improve?
avdg: my rust bot didn't crash yet :-)
avdg: and it compiles
avdg: and yeah, I have to make it smarter
avdg: my ai with random moves was still performing better though
Westicles: made my monkeypox clash into an easy puzzle, seems it also was too hard for a clash
Westicles: also
Astrobytes: no clash is too easy but clashes can be too hard. Gotta love that
Illedan: Wow
Illedan: That last bug reported on the forum :D
Illedan: #Ez life
struct: lol
struct: yeah
struct: just saw
struct: seems like a massive bug
Illedan: oh yeah
jacek: hm?
Illedan: rofl
Illedan: Check the forum
Astrobytes: hahaha omg
Illedan: Soo, where do we wanna stay to crush everyone for the night?
Illedan: xD
jacek: oh my
struct: achitecture Illedan
struct: Then you can take other cards
struct: its over
Illedan: I did crash
Illedan: hmm
struct: let me try
Illedan: Might need 1 of 2 first
Illedan: yeah
struct: I need 1 daily routine 1st?
Illedan: yes
struct: seems simple enough
Westicles: someone is gonna hide with a bug and win it all
jacek: i like cats
Astrobytes: I presume Karang had no luck with the int cracking
Astrobytes: *random int
struct: I was going to sleep, with this new discovery I can't
struct: oh well
avdg: bye bye sleep
avdg: but I'm going :-)
Astrobytes: always an excuse to stay up struct :D
struct: gn avdg
avdg: gn
Astrobytes: gn avdg
struct: This one should be trivial to fix though
Astrobytes: yeah. It's a fun one though
struct: Its a bit of a strange one though
Astrobytes: does it work with the fixed version on github? I haven't downloaded that yet
struct: not sure
SandmanSW96: Since NOBODY bothers to read feedback here lol:
antiwonto: [auto] Hey SandmanSW96, here is a :taco: for loggin in today while it is quiet. You now have 12 tacos
SandmanSW96: tc all
SandmanSW96: shove the taco up your ass, here's my post:
SandmanSW96: http://chat.codingame.com/pastebin/3e134a09-06b8-4ac2-ba11-8b82c4a8fc36
antiwonto: [auto] SandmanSW96 be respectful and watch your language https://www.codingame.com/playgrounds/40701/help-center/code-of-conduct
SandmanSW96: cl-ass
Astrobytes: SandmanSW96: some of us do, and I understand your frustration, fwiw
jacek: oO
Astrobytes: can't see the approval system getting better any time soon though
struct: oh well
struct: Every1 can get frustrated it happens
struct: ill let it slide
Westicles: the only change they ever needed was to hide author's code and require you to solve it before approving
Astrobytes: ^ this allllll day
Astrobytes: I would also like a 'verified understandable translation' thing
struct: That one might be harder
Astrobytes: Not really. They want things in English? Plenty speakers to verify. They want it in French? Likewise.
Astrobytes: *native speakers
emh: if someone keeps jumping 2 steps ahead of you then you should decide where you want to go and jump 4 steps before it. ez
struct: Im only taking so long on backgammon because I'm writing the statement in french
Astrobytes: struct :rofl:
Astrobytes: emh: is the house guest behaving
struct: There is even a better way emh
emh: Astrobytes yes she is taking a shower
Astrobytes: cool :)
emh: struct how?
struct: There is a way to never meet the admin team emh
jacek: how much did it cost
struct: Check forum
emh: really?
struct: It will be patched but use it I guess
struct: It's a funny bug
Astrobytes: yeah it's an amusing one
struct: Good thing someone found it
jacek: unit tests are not green
struct: and even more important reported it
struct: This bug could win the game alone
struct: If it was done by a top player on last submit
Astrobytes: restores a fraction of my faith in humanity
jacek: there goes my plan :rage:
struct: "top player"
jacek: top with the bug
struct: You are right though
struct: probably any bot on top 20 could win with this bug
Westicles: SG is an investment bank, they want sneaky people
struct: What if they are recruiting bug hunters for the company?
struct: and this is all a test
Astrobytes: lol struct, Westicles
emh: struct is it like MOVE 2 2?
struct: but you need to have daily routine
struct: after that MOVE 2 3 might work
struct: i have tried it
struct: havent*
Astrobytes: don't you need 2 daily routines?
struct: oh yes
Astrobytes: well, 2+
struct: I was gonna try it
struct: But I would have to rush some stuff and I dont feel like it
Astrobytes: the starter bot is alright for testing things
Astrobytes: don't need to mess up your proper bot
struct: yeah
Inc_: is the card location "PLAYED_CARDS" missing in the inputs?
struct: you only get it if you played cards
struct: on previous output
struct: and if the phase is play card
Astrobytes: no it's there, what struct said :)
mlomb: also in release phase
struct: oh ok
Inc_: "the cards you played during this turn *and that will go to your discard pile at the end of your turn*"
So it doesn't give you the information about the permanent skill (ARCHITECTURE_STUDY) o.0
struct: It does
struct: You have AUTOMATED
Inc_: Wood 1
struct: ah wait
struct: not there
struct: it gives in player inputs
struct: the architecture
Inc_: so, I gotta get to the next league? :D
struct: no
struct: ah but maybe you dont have this skill there
Inc_: thx anyways
struct: ARCHITECTURE_STUDY (4). This is a permanent skill: once played, it stays active until the team has released one application. The team will draw one more card at the beginning of their turn. If you play many cards, their effects will add up.
struct: This is what architecture does
struct: and its given on permanentArchitectureStudyCards
Inc_: sure, but not how many are currently active
Inc_: ah, I see
struct: you get it when reading the player position, score and such
Inc_: thats confusing
struct: well the card will stay in your deck
struct: it will just increase your cards drawn
struct: Might be a bit confusing yeah
Astrobytes: lets focus on the non-confusing parts of the game. e.g. There are cards
Astrobytes: :P
struct: oh sounds easy
Astrobytes: heh heh
struct: Good thing I didnt test for this contest
struct: I would not find a single bug
struct: :D
Astrobytes: :rofl:
Astrobytes: seriously though, I have no idea why they stopped the user testing
struct: well the last one was SC21
struct: the other one didnt really need testing
struct: since it was a reuse
Astrobytes: It would have benefited from it
struct: Maybe they are worried about leaks
struct: or bots being too strong at day 1
struct: My bot for SC21 was almost 24 hours at the top but my last version has 100% win rate vs it
struct: so idk
Astrobytes: meh, the tester bots are too strong thing is a fallacy
struct: you dont have anyone to test against
Astrobytes: exactly
struct: You do since there are more testers
Astrobytes: well yeah, but that's a very small sample size
struct: But im not gonna try hard on testing
struct: Its not the goal
struct: I did go bitboards on it
Astrobytes: exactly, it's finding bugs
struct: but thats because the game asked for it
struct: and im not gonna play an hex game without it
Astrobytes: "the game asked for it" is a fantastic statement
struct: lol
struct: and I was happy to see that it was a game that I previously thought of porting
struct: I think its one of the best games on CG
Astrobytes: the photosynthesis one?
Astrobytes: Fair I guess, I wasn't overly amazed by it but it was decent
struct: Its intuitive
struct: You can tell if your bot is doing well or not
struct: Cant say the same about many
Astrobytes: Alright yeah, in that respect you're right
struct: emh did the bug work?
struct: or you did not test it?
emh: I'm trying
struct: :thumbsup:
Astrobytes: to exploit it properly it needs some cleverness
emh: yeah seems to be working
Astrobytes: nice
struct: does it only work with 2 2
struct: ?
Astrobytes: no it seems to work with any desk as long as the card number matches, only local test not submit
Astrobytes: don't take my word for that though
Healer1064: Hello, Friends!!!
struct: hi
Astrobytes: o/
Healer1064: Hi
Healer1064: Happy holiday!
Astrobytes: salut Troph
Troph: I'm surprised some people are still awake
Astrobytes: LOL I just said that to Blaise in fr :D
Astrobytes: well, similar
Troph: I kind of cheat I'm in GMT-4
Astrobytes: Troph: Caribbean?
struct: bad timezone for last day though
struct: if you want to submit at the end
Astrobytes: putain, lucky bastard :D
struct: its like 4 am for you
struct: unless you are not playing the contest
Troph: I am currently unemployed so I wouldn't mind
Astrobytes: I feel that
Troph: besides, I don't think a last minute submit would change anything for me, I plan on making it to gold, legend top
struct: yeah similar to me
struct: My last day submit achieve nothing
Astrobytes: well.... worked last contest no?
struct: I cant even remember
struct: When I made it to legend
struct: if it was last day
struct: or not
Astrobytes: it was
struct: oh, then I guess it worked lol
struct: But I hope I don't have to do it again
Troph: the last spring challenge ?
Astrobytes: yeah
Troph: Is it possible to reach legend without any sort of simulation ?
Astrobytes: if you can tune your heuristics well enough I don't see why not, bit early to say
Astrobytes: Though single turn bruteforce is doable so that might mitigate that
BrunoFelthes: I'm not using simulation, and I'm top 10 now...
Troph: hmm, I thought of a single turn brute force but I did not see how it could work, since there are multiple phases in a turn
BrunoFelthes: but I'm think that it will be very hard to reach legend without search
Troph: BrunoFelthes can I ask what are you using ?
Astrobytes: BrunoFelthes: I suspect so too
BrunoFelthes: 1000 lines of if/else
Astrobytes: also, congrats on top 10 :)
Troph: you must have a really good understanding of the game
struct: 1k lines of if else o.o
struct: I dont know how to make bots like that
Astrobytes: Troph: regarding the phases, you can bruteforce the possible randoms too
BrunoFelthes: it is java, it is very verbose..
Astrobytes: :D
struct: my code is very verbose as well
Astrobytes: spaghetti if code is the worst
BrunoFelthes: i have a function to each game phase
BrunoFelthes: Move phase with 500 lines of code...
Astrobytes: yeah, best way to keep it semi-organised I guess :D
struct: move is the hardest
Astrobytes: I'm still not sure I fully understand all the repercussions of move
Astrobytes: I guess I will find out tomorrow
struct: well move can make you throw cards, followed by giving cards
Astrobytes: tomorrow == today I mean
Troph: what do you mean repercussion of move ?
Astrobytes: Yeah exactly struct
Astrobytes: Troph: what struct said
Astrobytes: in different situations this can get a bit confusing
BrunoFelthes: yeah, and at legend, I think that move will need to consider the opponent block, i do not look to the opponent
Astrobytes: yes indeed Troph
Astrobytes: BrunoFelthes: I'm not sure on that yet, time will tell I guess
Troph: what...top ten and you do not look where the opponent is ? oh my...
BrunoFelthes: no, i do not try to block opponent moves
Troph: that's impressive to say the least
Astrobytes: well there's a minimal amount of interaction
BrunoFelthes: i think that maybe, the best start will be at 4, not at 5
struct: wouldnt the best start be 1?
struct: ah no
BrunoFelthes: top players are starting at 5
struct: it wont work
Troph: I have the impression that top player start by farming 5
emh: I've submitted with bug exploit, but you're right, it does seem like some cleverness is needed
emh: resting at CI and automating bonuses is too slow
emh: for some players
emh: bonus until 8
Astrobytes: Yeah it's not overly beneficial. Anyway, don't put too much thought into it as it most likely will be fixed :D
Troph: until 8 ? that seems a bit overkill
struct: you dont have to pass through admin
Astrobytes: check the forum thread :sunglasses:
Troph: will it be fixed before or after silver
Astrobytes: yes
Astrobytes: :P
Troph: will it be fixed before silver ?
Astrobytes: no idea, not sure if they picked it up yet tbh, was later today when it was found, still a load of fixes ready to be released
Troph: I should have rephrased with "Will it be fixed before XOR after silver". I'm keeping that one in mind for next time
Astrobytes: :D
Astrobytes: love it.
Astrobytes: Anyway, gonna get some rest.
Astrobytes: bnbn
Astrobytes: (one choco)
Troph: (you owe me royalties on that one)
Astrobytes: :D
struct: gn
emh: gn
Alexander-Zierhut: those profile pictures are so obviously bots, some of them xD
struct: Where?
struct: clash of code?
Alexander-Zierhut: I like that they fill players but those are obvious sometime xD
Alexander-Zierhut: https://static.codingame.com/servlet/fileservlet?id=85849548187819&format=profile_avatar
bobth: Alexander-Zierhut uh
bobth: that guy is not a but
bobth: bot*
antiwonto: [auto] 'bot' was defined as ' Automaton2000 '
Automaton2000: let's wait for the next checkpoint
Troph: oh Automaton2000 is here too !
Automaton2000: what are you struggling with?
Inc_: Response time per turn ≤ 50ms (Doing Green IT means sparing resources)
- D
struct: you cant go lower than 50ms on the sdk
Alexander-Zierhut: @bobth it's all fun and games.
Inc_: I like the addition about green IT
Alexander-Zierhut: Sure, huge field here in GER
Troph: Did I miss something or "green it" is just "good practices"
Glyptod0n: i'm not understanding what playing DAILY_ROUNTINE card do, "the team can get their new skill card from a desk one step away", how is the team "getting" the skill card one desk over? I played that card, but i'm still getting the card of the desk i'm at, and if the desk has no more card, it still just gives me BONUS card
struct: Glyptod0n its a permanent skill until you release an app
struct: which makes you choose a card at distance DAILY_ROUTINE
struct: when you move
struct: permanentDailyRoutineCards
struct: thats the var
Troph: I think he asks how to get the card for another desk
struct: MOVE 4 5
struct: for example
BrunoFelthes: at the next move
struct: that card only has affects on the following turns
Glyptod0n: oh got it, thank you very much; yea I didn't notice the MOVE [desk1] [desk2] after playing ROUTINE card
struct: np
BrunoFelthes: cgstats is not with this contest?
struct: you can change the url
struct: http://cgstats.magusgeek.com/app/green-circle/brunofelthes
BrunoFelthes: ty
struct: np
struct: almost 400 lines to the apply move function
emh: seems like I wasted the last 7 hours on deteriorating code. my 7 hour old submit is still much better.. well well I guess I'll try to backport the changes one by one
Troph: I admire that you guys can find pattern and strategies without actually playing the game
struct: emh no version control?
emh: nahh I use the CG history
struct: o.o
struct: ah I forgot you use cg ide
**Troph is also guilty of this
emh: I changed to VS Code
emh: github copilot is so nice
emh: autocomplete
emh: I have done git init in the folder, but no commits haha
struct: ok i wrote the entire move play without testing
struct: lets see how many bugs I have lol
struct: I use git but I only commit
struct: I never revert changes
emh: ok me too usually
emh: but now I should sleep
emh: 7th still
struct: me too
struct: But a few more minutes for me
struct: I think I found another bug?
struct: Can someone check frame 4 to 5
struct: https://www.codingame.com/replay/643075790
struct: I should lose 2 bonus cards right?
struct: 2 get added to the mid pile
struct: but only 1 gets removed from my hand
struct: ok, just wanted to make sure
struct: thanks
jujurocking: If you have only one type of card the game remove only one copy
struct: ah
jujurocking: I think it should be fixed with the next update
struct: thanks again
Westicles: wait, tomorrow is a holiday?
struct: where?
Westicles: good 'ol USA
Westicles: stock market is closed and everything. never heard of this holiday before
struct: Whats the holiday for?
Westicles: I don't know
struct: Juneteenth
Westicles: must be some twitter thing
struct: I think its the date that marks the end of slavery
yhyoxx: any tips for this contest ?
yhyoxx: did it really end ..?
struct: yhyoxx im just gonna run a sim and bruteforce depth 1 and eval
struct: There are people at the top with ifs
struct: lots of them
yhyoxx: since the cards have effects u can use ifs yea
yhyoxx: wont it be hard to write the sim ?
yhyoxx: it's almost rewriting the game right ?
struct: yes
struct: it was painful
struct: let me check how many lines of codes I have now
struct: 1 sec
struct: 1520
yhyoxx: and after that u get real good understanding of how everything works
yhyoxx: that's a lot of lines
struct: Well now I know the rules
yhyoxx: worth it
struct: I havent submited yet because I just finished the sim
struct: It seems to be working?
yhyoxx: u got this
struct: at least it doesnt crash and I have asserts everywhere
yhyoxx: struct rank 1
struct: lol
struct: Ill be happy with legend
yhyoxx: me too ;_;
yhyoxx: or gold
Westicles: my goal is silver without reading anything
yhyoxx: without ever reading what u type
yhyoxx: that's a challenge
yhyoxx: struct how is depth 1 search gonna be useful ?
struct: by depth 1 I mean until release phase / wait
struct: so not just 1 move
yhyoxx: i see
struct: I don't recommend sim if you don't have experience with them
struct: This game is a bit complicated to sim imo
yhyoxx: thought so
yhyoxx: ill try to understand the game better first
yhyoxx: hand, draw pile and discard pile are confusing me
struct: there is even one more pile now
struct: played
struct: so played cards go into played pile
struct: when your turn ends (after release or wait)
struct: they go into the discard pile
struct: all your cards in hand will also go into the discard pile
struct: When your draw pile is empty, the discard pile will go into the draw pile
The_Duck: man I implemented simming TRAINING and the first time my bot tries to use it it hits the you-don't-get-a-second-play bug. what an anticlimax
struct: The_Duck yeah easy to create bugs here
struct: The Move phase is pretty hard imo
The_Duck: I mean, my code worked AFAICT, but I hit the referee bug
struct: ah
struct: There are plenty
struct: It should be fixed tomorrow most of them
struct: There is one that hasnt been fixed yet on git repo
The_Duck: what is it?
struct: https://forum.codingame.com/t/contest-green-circle/196455/72
struct: you can avoid going into admin with it
The_Duck: oh haha
j4at: good job struct :) You actually finished the sim :o I gave up after finding out that I had bugs in my Search race sim although I read the referee!!! I was half way done but I'm pretty sure that It will be full of bugs, because its always is! so I decided to give up.
struct: Thanks, what bug did you have on the referee?
antiwonto: [auto] 'up' was defined as ' a direction, specifically the direction away from the center of earth, opposite to down '
j4at: Didn't even test my green circle one. I decided to give up because I know that I always make bugs. In search race I don't remember :3
struct: An error occurred (#407): "You reached the limit of plays for a period of time.".
struct: zzzz
struct: I dont understand
struct: https://www.codingame.com/replay/643083662
struct: Frame 29
struct: I train
struct: but dont get cards?
struct: On blue player
The_Duck: do you definitely train?
struct: ah
struct: I drew 2 tech
struct: thats why it skipped the turn
struct: the viewer makes it seems like I didnt
struct: But my discard pile was 3 tech debt before training
struct: and it becomes 8 after
struct: so I guess thats why
The_Duck: oh
The_Duck: I find this viewer quite confusing
struct: It is
struct: They should have added intermediate frames
struct: but its too late now
struct: imo
struct: It takes a bit of work to do that
struct: But I think the game is still fun
struct: Anyways I'm out for the night, gn everyone
yhyoxx: gn
AbrahamJLR: wtf that username. https://imgur.com/NdqbMIF
antiwonto: [auto] Hey AbrahamJLR, here is a :taco: for loggin in today while it is quiet. You now have 1 tacos