Chat:World/2021-05-30
1457162: tourist, Radewoosh, T1024 and eulerscheZahl - congratulation for success (and prizes ;-) ) in ICPC contest (https://codeforces.com/contest/1524/standings/page/1)
eulerscheZahl: thanks JFB, was a tough fight :)
eulerscheZahl: :watch:
BlackGriffin03: can I see who are all in my school use codingame
eulerscheZahl: https://www.codingame.com/leaderboards/general/global?column=schoolcompany&value=SAME
BlackGriffin03: Thanks @eulerscheZahl
mc_cari: how to create a private contest?
eulerscheZahl: you have to contact Thibaud on this. But unless it's for a school/university it will cost a bit (i have no idea how much)
eulerscheZahl: this Thibaud: https://www.codingame.com/forum/u/_cg_thibaud/summary
Westicles: Copying an existing multi into a draft contribution is a good poor man's contest
eulerscheZahl: but you get very few games that way. it's more to test the game than to have a stable leaderboard
Westicles: Well, okay well maybe replace 'good' with 'free'
1457162: eulerscheZahl: yes, difference between 6-22 are very small. For me it was very frustrating - Yesterday I spend all day coding without any change in score due to bugs I can not found. What was your approach if I can ask?
eulerscheZahl: mostly greedy, then a bit of bruteforce at the end to clean up
eulerscheZahl: first i see how the paths go: if all paths from start => A => end also go through B, they are buddies
eulerscheZahl: and in the same region
eulerscheZahl: then I try to add any remaining nodes that can be in parallel (that is non-marked) to these buddy groups
eulerscheZahl: gives a score of 13k already
eulerscheZahl: if you update the upper bound properly (relatively fast to compute) in order to add more single nodes to the group, you are already somewhere around 11k
eulerscheZahl: updating the lower bound is more costly (at least I didn't find a cheap way), which is why I only do that in a final run of all still remaining nodes
1457162: I see. So similar to my concept - but I have bugs :-( Thank for answer :-)
eulerscheZahl: and at the very end I take all buddy regions and try to split them to the other regions
eulerscheZahl: really nothing too clever. lots of trial and error
1457162: But it was effective :-)
eulerscheZahl: i surely missed something, looking at top2 in particular
eulerscheZahl: even tried to add random pairs of 2 nodes at once while doing the expensive lower bar update. gained a total of 2 points :D
StevensGino: I still in top 7xx in csb legend really don't know how to continue :(
eulerscheZahl: MadKnight your turn
eulerscheZahl: at the very top we have neural networks. Then UCT forest, minimax, genetic algorithms below
eulerscheZahl: all the top player reimplemented the game engine to predict the outcome of their actions and look some turns ahead
StevensGino: thanks
eulerscheZahl: there are even some articles linked on the overview page of the game
StevensGino: most of the articles are about GA
eulerscheZahl: https://github.com/pb4git/Nash-DQN-CSB-Article
eulerscheZahl: that's the current #2
StevensGino: thank you
StevensGino: this is great
Westicles: top four are NN?
Westicles: or more of them
FrancoRoura: I guess their LinkedIn inbox must've become really annoying lol
StevensGino: Hi, no one say anything
StevensGino: hi hi
Xeno_1221: hi hi
PhatDang: Hi
PatrickMcGinnisII: goodbye wood3 boss in Volcanoes
jacek: good old copy paste boss from referee?
PatrickMcGinnisII: funny
PatrickMcGinnisII: nah I just ran open ended path intersects
PatrickMcGinnisII: had to use it to block boss as well
PatrickMcGinnisII: i dunno where boss source is anyways
jacek: riiight
PatrickMcGinnisII: I can tell you how easy it is
PatrickMcGinnisII: ;)
PatrickMcGinnisII: ok, stuxk in wood2 now
PatrickMcGinnisII: er stuck
Westicles: default code also works for wood2
PatrickMcGinnisII: I'd like a Spicy PepperJack Chicken sandwich plz
Westicles: Sorry, not open on Sunday
PatrickMcGinnisII: damn
PatrickMcGinnisII: Imma celebrate with .... sleep then
PatrickMcGinnisII: ;)
ddreams: don't overdo the celebration now
PatrickMcGinnisII: its 4am, i might get 4.5 hours
PatrickMcGinnisII: *sigh*
PatrickMcGinnisII: glhf
Lboer: Damn, take care Patrick
**PatrickMcGinnisII dreamin' 'bout :poultry_leg:
1457162: http://chat.codingame.com/pastebin/923730ce-224d-4b45-bd43-62243e2c2201
1457162: But I failed to implement the algo properly and of course it do not work for nodes in the middle.
1457162: To be honest: I took me around 1-2 hours to understand rules of the contest - I do not very good with graphs theory. So at least I have learned something (for example Knuth algo - :shame:)
jacek: what contest
1457162: https://codeforces.com/contest/1524/standings/page/1
1457162: Just finished
1457162: Prises for first 20 - euler was #14
StevensGino: I don't even know what is the contest
PoomTwT: :neutral_face:
1457162: contest is short for 'programing contest' (other names: challenge, marathon and so on). You have problem(s) and period of time and scoring system. Sometimes prices for the best. On each platform they are different rules
1457162: on codinggame they are usually 2 contests / year. Usually 10 days, you write program to play defined game and scoring system is based on you win/lost with other players
StevensGino: @JFB, I just mean: I don't know which is the contest you are mention
StevensGino: for "contest" meaning, ofcouse I know it
StevensGino: btw I already check your link, so I will check it abit
1457162: :-) Sorry - sometimes my "nature teacher" comes to the fore
StevensGino: :)
1457162: This contest was on codeforce.com platform. was 4 days, it was similar to optimization problems on codingame. You have had to write program to divide graph according to defined rules. It was different that on codingame: you only receive final result - you even do not know numbers of graphs. And it was no test graphs as in codingame.
1457162: I mean: "no known test graphs" for the test
1457162: No visualization too
1457162: codingame is unique with its rules (known test cases for optimization problems, visualization and so on)
MSmits: yay my 31 seed book generator is working
ddreams: what is seed in this context?
MSmits: oware
MSmits: if the game gets down to 31 seeds it predicts the net result. This assumes no turn limit
JFB: What it is "seed book generator"?
ddreams: I see
MSmits: endgame book basically JFB
ddreams: Recommend the game?
MSmits: sure, fun game to me if you like simple boardgames
MSmits: funny thing is, this generator uses about 15 mins per iteration and needs 300 iterations to finish I think. so it'll be a week or so
MSmits: only problem is it spits out a 11 GB book every 15 mins and i need to delete the old ones or my SSD gets full :P
JFB: :-)
ddreams: one day I'll need the hardware I scavenged from an old employer when they moved to the cloud
MSmits: i only need the last book, but I need to store in between
MSmits: haha yeah, use that stuff
MSmits: I remember my uncle did this when he worked at IBM
MSmits: stuff was supposed to be destroyed but he gave it to us back then
JFB: Not only bitcoin increase SSD prices - MSmits's oware too :-)
MSmits: lol
MSmits: I need to store all 31 seed states in memory while running, which also uses 11 GB RAM, but it needs to be stored twice, to move between iterations, so I am using 22 GB RAM non stop
MSmits: crazy stuff. I was using 8 bit per state before because of convenience, but i had to compress it to 6 bit per state otherwise it would not leave enough for windows to run
JFB: I seen article about memory and disc use in modern programs - author said that use RAM/disc is programin from 70's
JFB: *programing in 70's way
MSmits: hmm not sure what you mean
JFB: because RAM is cashed on the disc and disc are very fast now - it is good to analise the case and write program accordingly
MSmits: ohh ok
MSmits: well memory access is my bottleneck. During the runtime it's looking up stuff from all over the 11GB at the same time
MSmits: what is the speed difference between RAM and SSD?
JFB: I'm not sure - but offten on modern architecture they are layers of cache in processor and memory and SSD so often it is not so simple - RAM and disc
MSmits: ah ok, but i suspect RAM is still several times faster
JFB: But not 1000 as in 70's :-)
MSmits: true
MSmits: so with RAM this takes a week and with SSD it would take a month or more :P
JFB: I simply want to say that maybe it will we faster to write program is such way that it is 22 GB memory (11 real and 11 virtual) and lets system do the rest. I'm not sure is it your case
MSmits: well it's hard to say
MSmits: first iteration finished
MSmits: iterations: 1 different: 15338678263 908226 ms.
MSmits: different has to 0, then it's done
MSmits: took 200+ iterations with 20 seeds
MSmits: so probably 300 or so, times 15 minutes
JFB: MSmits - I do not know what "seed" is
MSmits: seeds on the board in oware
MSmits: game starts at 48
MSmits: more seeds = more states possibly
MSmits: 1 seed = 12 states, 2 seeds = 78 states etc.
JFB: OK. So in the game you reduce number of seeds
JFB: ?
MSmits: 31 seeds = 15338678263 states
MSmits: yeah, you capture
JFB: And you want tho have simple "table" with win/lost/tiebreak for eaach of states with 31 seeds?
MSmits: the idea is to look up the endgame result as soon as 31 seeds or less are on the board.
MSmits: no
MSmits: i want to know the net result for captered seeds
MSmits: captured
MSmits: so if a particular board has 20 seeds on the board. What is the net capture score from the perspective of player 1
MSmits: if both players play perfectly
MSmits: that way i can add this to the current score and know who won
JFB: So maybe I do not say it correctly but I wanted to say the same. Probably my bad english
MSmits: ah yes, but you meant a WLD lookup win/loss/draw. This is not that
MSmits: because if you lookup -5 seeds, it doesnt mean you lost
MSmits: you could be 11-2 ahead
MSmits: so it needs to be combined with current score
JFB: I assumed that game finish (have 'net final state' - win/lost/tie form perspective of player 1). It is not correct?
MSmits: nope.
MSmits: it looks up a seed score
MSmits: that doesnt tell you who won
JFB: OK. State + curent score
JFB: OK
MSmits: yep
MSmits: its nice because you can have the same state with 11-2 score or 9-4 score
JFB: state + curent score = win/lost.
MSmits: yea
MSmits: this is called score-less states
MSmits: states with no score. You handle score separately
JFB: So you need table of results (points) from all 31 seed position to add it to current score
MSmits: exactly
MSmits: I use 6 bit for it
MSmits: -31 to +31 fits
MSmits: 31 if player 1 gets all the points
MSmits: -31 for player 2 getting all
MSmits: and everything in between
JFB: So in the game number of seeds do not increase?
MSmits: nope only decrease
MSmits: it's like checkers where normal pieces can only move forward
JFB: I do not know the rules so the stupid question
MSmits: you should check it out if you like boardgames. It's super simple
JFB: So I understud that you start with all say 20 sees position - calculate it all and create table for 21 sieeds using this table and so on?
MSmits: yeah thats one aspect of it
MSmits: but i also do this with different numbers of turns remaining
MSmits: so i start from 1 turn remaining
MSmits: then i do all states from 2 turns remaining
MSmits: and i use the result from the 1 turns remaining states
MSmits: and i keep doing that until x turns remaining gives the same result as x+1 turns remaining
JFB: What is the number of 31 seed position?
MSmits: 15,338,678,263 including also all the lower seed positions
MSmits: i need to keep the lower ones in memory also
MSmits: because a capture from 31 seed state may lead to 20 seed state
JFB: So in what way you want it to use in scoring function on codingame?
MSmits: I want to use it for supervised learning of a NN
MSmits: in combination with a meta mcts
JFB: OK :-)
MSmits: if i have the data, supervised learning is easier to do than what the other oware NN guys are doing
MSmits: azero-type stuff
JFB: So you can add tou you CV: "using AI to compress data" :-)
MSmits: sure :)
MSmits: I am mostly doing this as an intermediate step to azero type NN's. I think that is too hard for me right now
MSmits: since i am already good at this endgame book stuff and meta mcts, i figured i'd use what i know
MSmits: if that werent true, this would be madness :P
JFB: So you give yourself 1 week time (running computer) to learn meta mcts and othe staff :-)
JFB: Smart
MSmits: well 1 week to generate the book then x time to run meta mcts while I work on NN stuff
MSmits: i am not in a hurry
JFB: :-)
JFB: So it looks 1 month to #1 bot in oware :-)
MSmits: haha doubt that. The oware NN's are really really good
MSmits: hard to top that
MSmits: I will be happy if i beat my own bot
JFB: Good luck - it really looks as working strategy
MSmits: thanks :)
JFB: or at least "learning strategy" :-)
MSmits: thats the most important thing i guess
MSmits: oo crap the books are being dumped in a folder monitored by google sync
MSmits: ye google is not going to like this
JFB: :-) 11 GB / 15 min :-)
MSmits: yep
MSmits: I have 15 GB free storage
MSmits: soooo
JFB: I have used 98% of my 15 GB free storage - thanks to remind me about it - have to go do something with it :-)
MSmits: yeah, the trash thingy is annoying. I keep having to delete the same files. There is some delay and it doesnt empty all at once
MSmits: aw crap, that 15 mins was just the 1st iteration. Rest are 1,5 hrs each =/
MSmits: ah well
jacek: oO
struct: Are you using all the cores?
jacek: he cant write so probably yes
struct: :D
densch: http://chat.codingame.com/pastebin/eb9f69fc-117e-43c0-b118-b9f75bd027dd
jacek: hm?
Scarfield: a mistake on the angle maybe?
densch: basically in the mars lander 2 missing, the game seems to be mixing up what it should do if above the target area and if outside. not sure why thoug
Westicles: the game is getting it wrong?
densch: I'm probably doing it wrong not sure
Scarfield: you are :) the game has been tested by many
densch: x<2000 should be the area left, x>3500 should be the right area and 2000<x<3500 should be above the landing area, right?
densch: thats at least how I read it from the initial input
densch: and given the change in behavior at least the borders seem to be right
densch: i'll just continue trying it, sooner or later I'll probably get where I am dping some really dumb msitake :-)
Scarfield: what language you coding in?
densch: http://chat.codingame.com/pastebin/19350fed-4790-402c-853a-bfbee80d21b1
densch: I know that there will be error if angle goes >90 or <-90 but thats not my main issue here
Scarfield: why System.out.println("-20 3"); when inside the landing area?
densch: I first wanted to see if it even flies into the target area, was the default text left there.
densch: in test case 1, it keeps a constant -20 rotation until its in the target area.
densch: and when inside, it starts flying to the left
densch: well and the constant -20 rotation belongs to the case that should used when INSIDE the target area, not when outside
densch: I should probably use soem else statements, maybe it solves stuff
densch: yup, it definietely uses the last case for it. changed the -20 to -34 there and sure enough, the ship flies right at -34 rotation
Westicles: Figuring it out will be a wonderful voyage of discovery
densch: what confuses me too: the initialization input tells me that the target area has 2000<x<3500.
densch: and from letting it play out, the ship start at x=2500
densch: so lotically it should be in the target range from the very start
densch: but looking at the map, in the first test case, it starts far left of it
densch: I feel like I am messing up x and y coordinates at some point or something stupid like that! :-D
RoboStac: the input in the statement is just an example - each test has a different landing area and you need to work it out from the input
Scarfield: you are at least getting the landing area wrong, which will make your pod fly weird when looking at the replay, and also what robo says
densch: I gotta read a bit more into this, seems like I dont get it yet :-)
Westicles: Maybe the units are throwing you off? They use some weird system of distance measure
Scarfield: how do you determine the landing area?
BlaiseEbuth: landfield
Scarfield: GlazEbuth
MSmits: struct, i didnt bother using multiple cores. I am bottlenecked by cache
StevensGino: Hello guys,
StevensGino: I am trying to use BrutalTest
StevensGino: but it seems that the result on BrutalTest is quite weird
StevensGino: I make a dummy AI of UTTT
StevensGino: on CG they the same code keep win/lose on different condition -> but in Brutal test they are just win all for player1 all the time
BlaiseEbuth: Love GlazEbuth... I feel shiny and chromed! :sunglasses:
Scarfield: densch these are the surface points i get from the input in the first testcase of episode 2: Surface Points: [(0, 100), (1000, 500), (1500, 1500), (3000, 1000), (4000, 150), (5500, 150), (6999, 800)]
Scarfield: you are definately doing something weird with the first input
StevensGino: actually the CG is the one which is weird as my code don't have any random behavior so the game result should be consistent instead ...
StevensGino: now I am confuse all the ways
Scarfield: nice Blaise, your name is not always as easy to make silly nicks from as others
BlaiseEbuth: Probably player2 does not like to be brutalized...
StevensGino: I mean brutal is correct as my code have determine behavior
StevensGino: but on CG the result vary
BlaiseEbuth: -> fixed seed on the local referee version
Westicles: euler used to answer all these questions. maybe we can convince him to have office hours a couple times a week
BlaiseEbuth: Or to write a FAQ
densch: @garfield: I though they were given in the initialization inputs? otherwise I am not sure how to do it as the landx and landy in the code gets overwritten for eahc new point
BlaiseEbuth: garfield :rofl:
densch: oh, so that might be my issue then, I kind of thought it was always the same surface :-D
Scarfield: they are given as init input, you need to store them, in an array or however you decide
densch: gues I'll do 2 arrays, one for the x and one for the y values
Scarfield: but the numbers 2000<x<3500 you mentioned doesnt match the numbers i get from test case 1, so you have done something wrong there
Westicles: he was using the example
densch: well, yeah, I didnt read in anything, I kind of took the numbers from the text, thinking these example numbers were the ones
Scarfield: btw you dont need @ to ping someone, and there is autocomplete: sca-> tab
Scarfield: ooh, yea they are not :)
jacek: marsfield
Scarfield: mellowCek
BlaiseEbuth: fluffield
Scarfield: its soo FLUFFY!
Westicles: All right, my turn. Somebody give me a hint how you get at multi code when it is set to no download
jacek: or all bosses
BlaiseEbuth: You don't?
Scarfield: you mean ref code? maybe check authors git if you know it
StevensGino: I think the different between CG and brutaltest might come from some change of CG to avoid hard code
eulerscheZahl: Westicles here are some official referees: https://github.com/SpiritusSancti5/codinGame/tree/master/Referees
eulerscheZahl: i'm off, codeforces round about to start
struct: you are doing well grats
struct: top 20
eulerscheZahl: that one finished, i won a watch :)
struct: Nice, grats
eulerscheZahl: see you
Scarfield: nice
struct: cya and gl
Westicles: all right, well I wouldn't tell me either :P
MSmits: ohh gj eulerscheZahl
StevensGino: gl
struct: MSmits on UTTT there seems to be 20 boards states that are not winnable
struct: seems correct right?
struct: http://chat.codingame.com/pastebin/fe1a50dd-855c-4d5f-9bf4-97ddacfbff39
struct: I meant miniboards
BrunoFelthes: why do you need it struct?
MSmits: hmm
MSmits: are these unique in terms of symmetry?
struct: im not taking into account symmetry
struct: BrunoFelthes to check if the board can still be won by either player
MSmits: if i rotate the top one to the right
MSmits: clockwise
MSmits: i get a new state that is unwinnable right;
MSmits: is it in that list?
struct: yes
kovi: i generate it in 1st sec, simply by "trying"
struct: What do you mean kovi?
BrunoFelthes: i do it too
BrunoFelthes: at the first turn, just check all possible miniboard states, and store the result at an array... So, just get you miniboard bitset at the array to get the result...
MSmits: struct I found one thats not in there
MSmits: |X|O|X| |X|_|O| |O|X|O|
PatrickMcGinnisII: there's like 100 of them not there
MSmits: yeah i assume
MSmits: but only need one to disprove the claim :)
struct: 100?
struct: I get 40 at most
struct: I guess I could do lookup
PatrickMcGinnisII: rotate all 20 ...that's another 60. mirror them...that's gotta be 120 total
struct: Im currently doing (hasPlayerWon(a | (511 ^ b)) || hasPlayerWon(b | (511 ^ a))
MSmits: well all you need to do is count from 0 to 19683 ternary, convert to binary, then take each board. Fill them with crosses, see if cross wins. Then fill them with O's, see if O wins, if both are no, it's unwinnable
PatrickMcGinnisII: oh i did that...let me find the output
MSmits: struct, if you go 18 bit, then you're looping over 200k states or something
MSmits: most of which are impossible
Scarfield: only 1 players pieces matter, if there is no room for a winning line between opponent pieces, that board is unwinnable
densch: thank god, I finally god it! :O getting the landing area components was a bigger PITA thatn I had expected
jacek: :tada:
StevensGino: do we have a book/blog that I can learn about MCTS, beam search, miniMax ...
MSmits: http://chat.codingame.com/pastebin/9f2d977c-755b-425d-8e03-1a74cc7c2de8
MSmits: ignore the ternary thing
MSmits: variant thing i mean
MSmits: TERNARY_MAX = 19683;
MSmits: loop 0 to < TERNARY_MAX
MSmits: then convert to binary
MSmits: http://chat.codingame.com/pastebin/53fd5943-b19a-44da-bd80-c5edaad2cf00
jacek: if UTTT, then MCTS is primary choice
MSmits: oh and for ternary you need:
MSmits: const uint16_t triMoves[9] = { 1,3,9,27,81,243,729,2187,6561 };
MSmits: thats all you need for your check i think sturct
MSmits: struct
struct: thanks, ill try
MSmits: just ignore that variant thing. I am using 3 different state representations in that one function lol
MSmits: binary, ternary and my weird one
kovi: hmm, is there any draw pos with less than 4-4 pieces?
MSmits: hmm
PatrickMcGinnisII: http://chat.codingame.com/pastebin/16087cc3-f058-4353-ae80-8b6395a52b37
MSmits: yeah total valid boards is 19683, checks out
MSmits: quite easy to calculate by 3^9
PatrickMcGinnisII: ummm, data from all 174,762 possible boards, intermediary and all
jacek: https://img-9gag-fun.9cache.com/photo/aLpAx1z_700bwp.webp
MSmits: kovi dont think so, let me check
MSmits: lol jacek...
MSmits: nah seems impossible kovi. I remember trying to find an example of this before. Only boards that have 1 empty can be unwinnable
BlaiseEbuth: https://www.youtube.com/watch?v=qpMvS1Q1sos
PatrickMcGinnisII: The large UTT board there are 174k possible states ... so I calculated how many possible wins from that position .. oh nvrmnd... i compressed the results into a linear lookup for each player to give me like a % chance of winning moving forward ... because my MCTS couldn't search enough states to give good data... my bot still sucks, so i moved on
MSmits: yeah PatrickMcGinnisII, to have a shot with php at a reasonable rank, you may have to train a NN locally :)
PatrickMcGinnisII: I was random simming until the next small board was won, then I knew what my chances were from there...i never quite got it working right without searching 81! games
jacek: have you lost some bet trying to do everything in php
BrunoFelthes: MSmits, I'm trying to understand how to train a local NN, i watched a lot of videos about how alpha zero works, But i still dont know how to connect things... Do you recommend any hands on material, that i can apply here?
BrunoFelthes: jacek, are you using NN too, no?
kovi: recu, robo and jace using nn
jacek: eeyup
BrunoFelthes: how did you learned about it? Any steps to follow?
Westicles: Andrew Ng class?
jacek: im self-taught, various places, random articles or blogs
jacek: yeah i did some lessons from andrew ng machine learning in coursera
jacek: some people here recommended learning neural network from scratch in python book
jacek: and/or videos https://www.youtube.com/watch?v=Wo5dMEP_BbI
jacek: as to where to use NN, i treat NN as extended eval. at first i used it as replacement for hand-crafted eval in minimax. now im using it in mcts-like fashion
Westicles: https://nnfs.io/
kovi: jacek, you still value only?
PatrickMcGinnisII: http://chat.codingame.com/pastebin/b3c07270-704d-4e1d-af3b-e93b6ecc5b9b
jacek: kovi yes
PatrickMcGinnisII: What's everyone's longest coding binge? or average when a contest starts? 30 hours is about my max using CG. I may go a little longer on personal projects.
struct: 30 hours straight?
**PatrickMcGinnisII nods
struct: Max I can do is 4 hours
struct: And I think its high
struct: maybe it less than 4
PatrickMcGinnisII: struct I wouldn't have guessed with your skillz
PatrickMcGinnisII: crap i gtg
struct: cya
eulerscheZahl: for concentrated working i'm with struct, 4h sounds like the upper limit until I get unproductive
struct: How did codeforces go?
eulerscheZahl: when I try to force it and continue, it's rarely without any measurable success
eulerscheZahl: oh, I gave up on CF :/
jacek: that means you both cant afford cocaine
eulerscheZahl: solved the first 3, the rest was too hard
eulerscheZahl: and found some newbies with a faulty A
eulerscheZahl: codeforces has some weak pre-tests. and allows you to see other solutions and spot mistakes
eulerscheZahl: they call it "hacking", gives bonus points if you do that
struct: lol
reCurse: My peak is probably around 12-16h but it's not sustainable over a long period
eulerscheZahl: it would only make sense at the end of the contest when the deadline is near
eulerscheZahl: but at that point i ran out of ideas already. so no reason to keep going
eulerscheZahl: and early in the contest a break is worth more than the extended session
reCurse: Makes sense, not so much for me though
reCurse: During a contest I'd rather try as much stuff as humanely possible
eulerscheZahl: as you still have ideas at the end
reCurse: I won twice largely because of the last day or two pretty much coding / sleeping
reCurse: shrug
eulerscheZahl: did that on the codeforces marathon, 4 days and no relevant offline tests force you to submit random ideas and see what happens
eulerscheZahl: i remember your CotC post mortem where you wrote about that. the efforts of the last day
eulerscheZahl: and I remember your late takeover on CoIaF
reCurse: Exactly
reCurse: Then I'm burned out the next couple weeks :P
eulerscheZahl: i also feel this post contest void. but surely not as intense as you
reCurse: I love this feeling though. Not the burnout, but the 100% focus trying to make something work
kovi: go with the flow... while there are ideas, and motivation...16+ hours can work
reCurse: Little universe where nothing else matters for a few days
kovi: ^
eulerscheZahl: during the contest i like it too, especially the first few days. when i wake up at 5am, not tired at all and full of ideas to implement
eulerscheZahl: after contest i'm so unproductive
MSmits: me too normally, but did not last very long this time. I think maybe I don't try as hard as I used to
kovi: and you have your pet games anyway to improve on
eulerscheZahl: same, somehow my passion is declining a bit over the years
MSmits: mine just shifted away from contests
MSmits: I'll still join them all, but it's less important
eulerscheZahl: not sure if the games are at fault or it's just not something new and special to me anymore
jacek: andropause eh
eulerscheZahl: and when I write code at work already, i'm less motivated too. I noticed when i was a student working in midterms
MSmits: maybe you'll be more motivated when life gets back to normal and you can play soccer again
jacek: at least you can play one on paper
MSmits: or some other physical exercise
MSmits: lol..
reCurse: It's perfectly normal to be less motivated as time goes on
eulerscheZahl: i'm doing smaller walks in the park or bicycle trips not to get completely out of shape. still not the same as it used to be
kovi: recurse: especially if you repeatedly beat everyone...
eulerscheZahl: when the SDK came, it was something new to try again
MSmits: kovi who is this demotivating for :P
kovi: we still have more motivation to catch you sometimes
reCurse: That wasn't my point at all :P
eulerscheZahl: reCurse, the tourist of CG
Marchete: euler getting oldie
MSmits: this last contest was a bad example though, reCurse was doing something completely new
MSmits: if he'd done a normal bot he would have been far less motivated i think
kovi: true
MSmits: could have failed spectacularly, so seems exciting to me
Westicles: you still can't play soccer? that's crazy
eulerscheZahl: i can. with 1 person from another household
struct: damn
reCurse: :(
struct: Here we can play soccer as long as it is in open space
Westicles: They actually enforce it? Even when there were rules here they never enforced it
eulerscheZahl: at least the vaccine is in sight, somewhat
jacek: havent you seen soccer police?
eulerscheZahl: my employer wants to vaccinate. planned start is in 8 days
Westicles: I would just do it anyhow. There are limits to conformity
MSmits: thats weird.... doesnt this go by age? What does you employer have to do with it
reCurse: :roll_eyes:
eulerscheZahl: there's still the risk of getting the covid these days. which i don't want to take
jacek: oO
reCurse: Because conformity is what it's all about...
eulerscheZahl: the prioritization doesn't exist any longer
MSmits: yes but who decides who gets the vaccin?
eulerscheZahl: now everyone can get the vaccine. if there are enough available
eulerscheZahl: luck decides
Westicles: It is about a bunch of things, but no about getting sick. That is for sure
MSmits: this seems a bit unfair
reCurse: lol
reCurse: You're right, it's all a hoax, no one got sick
reCurse: It's all about 5G
eulerscheZahl: so the employer will buy some. which is my biggest chance atm
jacek: huh? you dont get vaccinated by gov?
MSmits: i thought things were handled well in Germany, this seems messy
eulerscheZahl: that too. but slow progress there
MSmits: we are slow on vaccination, but at least there are a good set of rules for who goes first
Westicles: reCurse, it isn't worth arguing about at this point. just wait for the postmortems in 5 years
reCurse: Sure
MSmits: as if the fake news will be gone in 5 years lol
MSmits: people will still believe the same :poop: they do now
MSmits: evidence doesn't seem to matter to some
MSmits: nor science
reCurse: Just sick of paying for all those 'muh freedom' types
eulerscheZahl: we have 40% with 1 vaccination and 15% with their 2nd dose already, just looked it up
MSmits: same, but can't do much about it
MSmits: eulerscheZahl dont think it's far from that here
MSmits: but we still go by age
eulerscheZahl: not even sure if that's from all the population or just adults. probably the latter
MSmits: I should be up in a few weeks
eulerscheZahl: you are a teacher. that would put you higher on the list here
MSmits: not here
MSmits: teachers did not get priority
MSmits: health workers did
1457162: In my country percent vacination is slighly smaller tan EU average but we have much smaller percentage for older (70+ and 80+) people. It is due to goverment strategy. They simpply said - from today people x+ gan start sign for vacination
MSmits: so no prioritization at all
1457162: It is good for young people - but not good for old people. They are usually less mobile, less technology user. Even phone can be problem for them
MSmits: I'm actually not sure if it is better to vaccinate older people first. They are more at risk, but they also spread the virus less. A young person vaccinated spreads a lot less virus.
Westicles: Here they are begging people to bring in their 12 year olds, but mostly just shutting down because nobody is showing up anymore
**eulerscheZahl still doesn't have a mobile phone
jacek: Oo
1457162: So now gov tell - older people do not sign so be start vacination even 20+ people
Scarfield: dk just started prioritizing young people together with old people for that reason
MSmits: Westicles thats also because around 30% of your country believes conspiracy theories and is scientifically illiterate
MSmits: they wont even get vaccinated
MSmits: because they think it has chips
MSmits: or there is no virus
jacek: and fish
MSmits: lol...
nitekat: in my country older people spread more virus than young ones....
Westicles: MSmits, that is your opinion
MSmits: it's not an opinion
MSmits: it's a well known fact that a very large portion of the US thinks this way
reCurse: Facts and US, be careful
Scarfield: thats just what they want you to think
MSmits: good point reCurse
MSmits: in the US they are paying people to get vaccinated
MSmits: lotteries and such
Westicles: We seem to be the only ones looking at comorbidity stats. It isn't rocket science
MSmits: what exactly do you mean by comorbidity
jacek: obesity?
MSmits: yeah, if people are unhealthy they die more easily from covid
MSmits: kinda late to do something about that in the middle of a pandemic
Westicles: Like I said, not worth fighting over. It is too tied up with politics, and this is a very left leaning crowd
MSmits: only in the US is this a left/right issue
MSmits: in the rest of the world it is just an issue
1457162: Currently is dure that it is only 2 options - you will be vacinated or you will be ill - meybe in month, maybe in the yeat - but for sure you will be
reCurse: You're right all debates can be projected to a single dimension
Westicles: You guys don't have a right :P
MSmits: we have a right, they are even in power
reCurse: Left and right
reCurse: The theory of binary politics
jacek: 1d convolution
MSmits: in most of the world, covid was actually a uniting factor, as long as it wasnt mishandled by the government
jacek: united against government
kovi: while i like the analysis of post-cg-contest more than post-covid... we already can have a kind of pb4 stats on that https://ourworldindata.org/excess-mortality-covid
MSmits: leades that did well with it got reelected is what i mean
jacek: pb4?
MSmits: leaders
1415495: sad fact: the excess mortality of the US compared to the EU pre-covid is the same order that the excess mortality due to covid (in the US)
densch: Hi just a quick question: is it normal to take ages to beat mars lader episode 2 or am I jsut too dumb for everything? :-/
densch: I'm on this for like the last 3 hours or so
reCurse: Difficulty is a ladder
jacek: i havent done mars lander 2 myself anyway
MSmits: fenrir do you mean as many people died in EU as in the US, relatively?
densch: trying all kinds of conditional stuff, basing the ifs on hspeed, distance from mid point, etc
kovi: pb4 stat - as its more fair than trueskill (covid death rate)
1415495: I mean that if you ignore the covid, the US already has a higher mortality then average EU
reCurse: lol
MSmits: ohhh yeah
MSmits: thats true
MSmits: life expectancy has gone down in the US
Westicles: Very different racial makeup
1415495: and the mortality added by covid to the US is of the samerange order
eulerscheZahl: but we need guns! they keep us safe
kovi: westicles and age combo
1415495: it's more due to poor health, prevention and environment from what I remember
MSmits: Westicles it's more about living conditions
MSmits: and having access to health care
MSmits: which is not guaranteed in the US
Westicles: What do you mean? Obamacare is manditory
MSmits: from what i understand that's a poor man's health care plan to what we get here
MSmits: compared to
eulerscheZahl: isn't Obamacare still less than European standard?
MSmits: yeah
MSmits: but was a great improvement for the poor in the US anyways
1415495: yes way lower than average EU (or event worse EU I think, but need to check)
Westicles: Lots of education needed here. I better get started on a newsletter for you folks
1415495: for twice the GDP spending
Westicles: The US has the greatest healthcare system in the world, and it isn't even close
eulerscheZahl: does anyone still have the icebox website link?
MSmits: Westicles sure if you've got $$$
Westicles: Nah, poor folks get free care. Same as always
reCurse: Alright I'll be back in an hour or two
1415495: can you find exceptionnal health care if you have the resource, yes, does it have an average good health care, no
MSmits: I'll stop reCurse :)
eulerscheZahl: good choice reCurse, see you
MSmits: got carried away sorry
jacek: hmm? another book?
BlaiseEbuth: Take your time.
Westicles: Anyhow, you should go play soccer. It'll be fine
eulerscheZahl: and of course tourist won on codeforces again
struct: I couldnt make it
eulerscheZahl: this morning he won a laptop. and then a PS5 in the afternoon
Scarfield: :o
MSmits: nice
kovi: lets switch topic to cg....the movement genertion of dice duel is definitely much harder than other boardgames
eulerscheZahl: i was thinking about giving a list of possible moves
BlaiseEbuth: He won the laptop and thought he need a support for it. So he won the ps5
eulerscheZahl: but the list can get pretty big
MSmits: eulerscheZahl it's somewhat customary, but not all games give out possible moves
MSmits: imagine the list for Amazons
MSmits: or gitc
MSmits: so if it's not practical... don't
struct: I dont give the moves but give the number of moves
eulerscheZahl: but for dice duel it's not that straight forward to generate
jacek: well there is always "random" option
eulerscheZahl: why the number? to help debugging?
struct: yes
eulerscheZahl: meh, too late. it's released already. won't break any bots
MSmits: yeah dont do that
MSmits: doesnt seem like a starter game anyways
jacek: approvers didnt complain
kovi: true
kovi: actually i didnt meant it a complaint for starters. it is a problem with slow play/rollout
MSmits: hmm, well you dont have to use mcts
eulerscheZahl: i didn't understand it as a complaint
jacek: you have to write it your own, as with all games
eulerscheZahl: just telling that i was thinking about it
jacek: (or copy for HS)
eulerscheZahl: giving the list makes it easier to enter the game
eulerscheZahl: check for captures, print that move
MSmits: btw, the game looks very cool
eulerscheZahl: laggy for some users
jacek: be careful, it may mess up with your meta
eulerscheZahl: zarthaxx's girlfriend still working on replacement assets for the dice
kovi: it is very cool! and actually now i understood the motivation for 3d
eulerscheZahl: makes it easier to understand what's going on
eulerscheZahl: I had that game on my list for quite some time already
eulerscheZahl: https://www.boardgamegeek.com/boardgame/789/focus this one might be interesting too
BlaiseEbuth: Don't put too much efforts into it... Only 5% of the users will take a look to it. An 5% of them will code something...
MSmits: my meta isn't running jacek, just 1 core and a lot of RAM action to make endgame books :P
MSmits: dont dare to do anthing else
eulerscheZahl: fair point BlaiseEbuth. but i don't want a laggy game
kovi: anyway...back to my original issue...i wonder how bitboarding could work on this
struct: disabling antialias didnt help?
eulerscheZahl: it's disabled by default
struct: or was it disabled by default?
struct: ah right
struct: I remember now
eulerscheZahl: i could try a smaller drawing area
Westicles: Did you just make it up, or is it based on something?
eulerscheZahl: and then scale it up to fullscreen
MSmits: kovi not sure how to do it here
eulerscheZahl: dice duel is based on "Würfelschach"
eulerscheZahl: same movement rules
eulerscheZahl: but you have to get 3 dice in a row with consecutive numbers showing up (2 of yours, 1 opponent die)
eulerscheZahl: no capturing at all in the original game
eulerscheZahl: felt much harder to enter and easier to sabotage than play properly so I decided against the original rules
eulerscheZahl: CG rankings final, finished 405. not even as bad as I thought it was
BlaiseEbuth: Zarthou is an asocial geek, he does not have a girlfriend... You will wait a long time for your assets...
eulerscheZahl: he gave me some already
eulerscheZahl: i tried them: https://cdn.discordapp.com/attachments/468472307279724565/846747131494400030/unknown.png
MSmits: kovi, for this game I would use lookupArrays with lists of possible endpositions and orientations of the dice.
MSmits: so as index, you use the cell of the board (64) and the orientation of the dice
eulerscheZahl: but your path might be block by other dice for extra fun
MSmits: yeah, it needs some extra checking
eulerscheZahl: extra long for path travelled
MSmits: but pretty sure this can be dealt with in a lookup array. It's up to you how much info you want to include
eulerscheZahl: and & it with currently set dice
kovi: msmits: i did exactly that
MSmits: ahh ok, cool
eulerscheZahl: I didn't. https://github.com/eulerscheZahl/Dice-Duel/blob/master/config/level2/Boss.cs
MSmits: nah, you should not do crazy stuff like that in a referee eulerscheZahl :)
eulerscheZahl: that's the boss
MSmits: but the boss needs to be a reasonable test of the game also
eulerscheZahl: with the legendary for-switch construct https://github.com/eulerscheZahl/Dice-Duel/blob/master/config/level2/Boss.cs#L113-L116
MSmits: you dont want to complicate things
MSmits: those are fine eulerscheZahl :)
MSmits: I do this a lot. Just write out all possibilities. If you write duplicate code, can always make it smarter later on
eulerscheZahl: inspired by https://thedailywtf.com/articles/Switched_on_Loops
MSmits: this looks a bit BFS-like
MSmits: or maybe DFS
MSmits: ye it's DFS
MSmits: for case paradigm :P
MSmits: this just seems weird
eulerscheZahl: the site collects bad code samples
MSmits: ahh ok
MSmits: so this is where you go for inspiration huh :)
struct: lets hope they dont get hans on my code
struct: hands*
MSmits: or mine...
eulerscheZahl: sometimes i make a mess too. depends on my current mood
eulerscheZahl: at least for contests. at work I try to avoid it :P
Scarfield: when i started c++ and making the first mcts, i had a problem of printing uint8_t. Made a funtion that looped until the iterator was equal to the uint8 i wanted to print xD
struct: :D
MSmits: you mean as opposed to to_string() ?
struct: you can do (int)a
struct: to print it
MSmits: interesting solution :)
Scarfield: yes or 0+
Scarfield: i mean i just started c++ :p
MSmits: I still dont fully understand what c++ does with characters and strings
MSmits: i often run into this and just google some code
MSmits: earlier I had a situation where a filename had to be a const char* instead of a string
MSmits: I dont really know the difference but found some code
MSmits: C# does not have this weirdness
eulerscheZahl: that codeforces round with the "hacking" gave me some weird code today
eulerscheZahl: like https://codeforces.com/contest/1523/submission/117900845
MSmits: ohh that looks like my first vba code!
eulerscheZahl: my solution for comparison: https://codeforces.com/contest/1523/submission/117875387
MSmits: I could not read that either when i got back to it
eulerscheZahl: (i didn't try to code it in the most efficient way, just solved the problem within 5min and made sure it would pass)
Scarfield: "FOD" ?
eulerscheZahl: #define FOD(i,r,l) for (ll i=r;i>=l;i--)
Scarfield: ah
eulerscheZahl: these pragmas are too common on codeforces
eulerscheZahl: make it unreadable just to type 2 less characters
struct: my There is No spoon code is messy too
struct: one of my worst codes
struct: It was when I started on cg
struct: http://chat.codingame.com/pastebin/93de8f72-ee53-44b7-bcd6-94c8b6af94fd
eulerscheZahl: i don't think that I have to read it to get an impression
MSmits: eulerscheZahl your code is sooo much better
MSmits: that other guy may have been able to type it faster or something... but you're going to get bugs you cant easily fix
eulerscheZahl: comparing C# with C++ isn't totally fair
MSmits: ofc... but you need to be able to read your own code
BlaiseEbuth: What an insult for C++...
eulerscheZahl: i thought his was wrong but it worked in the end. I lost 50 points on this bet
struct: This was for A test right?
MSmits: why did yoy lose points on a bet?
eulerscheZahl: CF works like this: you submit your solution, then lock it (so you can't change it anymore)
eulerscheZahl: then you can see code of other players
MSmits: ah ok
eulerscheZahl: CF only does a pre-test which doesn't check all corner cases (such as runtime)
eulerscheZahl: then the system tests are more robust
eulerscheZahl: so i had the impression that I could trigger a timeout. if you succeed, you get 100 points
eulerscheZahl: otherwise you lose 50
MSmits: trigger a timeout?
Scarfield: ^
MSmits: timeout is a good thing?
eulerscheZahl: it's good if i find a bug in the solution of someone else
MSmits: oh, I see
eulerscheZahl: i give an input file. which is executed on that program
densch: hey, is somewone here good at math?
MSmits: what a weird contest
MSmits: somewhat densch
Scarfield: xD
eulerscheZahl: that's the normal codeforces format
eulerscheZahl: but a bit unfair:
MSmits: yeah, I am saying codeforces is weird. But cool :)
densch: I am still struggling with the mars lander 2 :-D
densch: maybe I should go vectorwise
MSmits: ahh. Solved that a long time ago, not sure i am much help
eulerscheZahl: there are "rooms" to avoid creating fake accounts and feeding your main with wrong solutions that can be hacked
eulerscheZahl: and depending on who's in your room, you can hack some more or less
MSmits: I see
eulerscheZahl: and also if someone else in your room tries the same, only the first attempt gets the credits
MSmits: so.. luck factor
densch: I want to use the angle between hspeed and vspeed to determine the direction of the neeeded rotation
eulerscheZahl: yes
MSmits: yet tourist always wins?
eulerscheZahl: mostly :D
eulerscheZahl: https://codeforces.com/contest/1523/standings
MSmits: that lucky bugger
eulerscheZahl: https://codeforces.com/contest/1524/standings here he was 2nd "only"
eulerscheZahl: but same prize for top4, so it didn't matter
MSmits: densch sure you can do that
MSmits: wait, isnt the velocity independent of the angle of rotation?
MSmits: as in... you can be moving to the left, yet be rotated the wrong way
eulerscheZahl: http://chat.codingame.com/pastebin/90b2faee-948e-4861-9e0d-5d921b362460
eulerscheZahl: that's how physics work in that game
MSmits: btw Marslander2 took me several days, wheras other puzzles of the same difficulty took me less than an hour
jacek: :scream:
eulerscheZahl: i solved marslander 3 before 2 :D
MSmits: yeah, you did a GA right/
MSmits: with pictures and all that
MSmits: I never solved M3
eulerscheZahl: tried to make my sim find the path. gave up and used if-else for starters and evolve from that
struct: No NNs for mars landers yet?
densch: MSmits well, yeah, for a given set of hspeed and vspeed, I first wanna calculate the perfect rotation.
MSmits: ok
densch: MSmits said rotation is basically pointed directly opposite to the direction of the (hspeed,vspeed) vector
MSmits: mmh no
MSmits: rotation determines the force
MSmits: not the velocity
densch: and of course, cause we have the damn 15 degree max change thing, I then gotta rotate my ship mqax 15 degress twards that target angle
eulerscheZahl: the formula i shared above should give a good understanding how the game works
eulerscheZahl: warning: you get integers as input for the speed. internally the game uses doubles all the time, without rounding
eulerscheZahl: same for position. all doubles
eulerscheZahl: evil codingame
eulerscheZahl: afk dinner time
jacek: at 20?
densch: I dont know . at least I wanna try that idea since I have no idea how to manage testcase 2 where you have initially hspeed=-100, so you gotta accelerate in the opposite direction as soon as possible
MSmits: densch basically my strategy was: Go up, move to landing spot, go down :P
densch: my iniital idea for the frst case was:
Scarfield: have you looked at test case 4 and 5 densch? :p
densch: get some horizontal speed towards the middle of the map, then float till you are aorund there, then drop straight down.
MSmits: I had this function:
MSmits: http://chat.codingame.com/pastebin/2b530c2c-9106-410a-aada-aa61f8ba834b
densch: start dropping down as soon as the landing area is reached, so you make it in time before leaving the other side
densch: dumb way but it worked for the first case
densch: well, then we got second case where the thing highspeed races from one side to the other... and I definitely needs to actively brake hard
MSmits: basically, I defined a bunch of functions like accelerate, peakaltitude and others and made a bunch of if else
MSmits: calibrated stuff on the test cases and hoped for the best
densch: yeah, i dont know. i think the second episode is like really hard.
MSmits: solution 290 lines, which i guess means it could be done in 100 or so :P
MSmits: densch yes it sure is
MSmits: i think it's classified as medium, but should be hard
densch: in my mind I can kind of se the plan: move to the right till you are there, then start droppoing, then...
MSmits: yeah thats what i do
densch: but then, when actually doing the while thing, I have no idea how to make the game know "Yo, in this iteration of the while case, keep in mind that we are in "stage " 5 of the plan and do the corresponding stuff
densch: ain't the mars episode 2 supposed to be an easy one? :O
MSmits: well it's not
densch: god, what are the middle and hard lessons then? :'O
Scarfield: its easier than episode 3, but definately not easay
densch: Adventurer, I'm terrified! :O
MSmits: I would suggest doing more easy and medium puzzles, not htis one
densch: wellm yeah, after hours of thinking, I am hungry. so I might work on it tomorrow again
densch: for now I'd love to understand how to use the math.atan properly in my case
Scarfield: oh its in medium section, definately one of the harder "mediums"
MSmits: math.atan always makes my head hurt. I used it a lot in space engineers to target weapons. In 3D it's even worse
densch: like, I literally dont get for which pos or negative hspeed or vspeed atan(hspeed/vspeed) will be positive or negative
MSmits: yep thats the issue
MSmits: basically I always tried all combinations until one worked :P
jacek: use atan2 then
densch: if I was programming at home, I would jsut print shit on the console. but here the sconsole is used as some sort of output, so that aint possible :-/
jacek: you can print to error
MSmits: ye print error
jacek: thats in the comments, isnt it
densch: whats that again? i deleted that comment about it asap :-)
MSmits: it is
MSmits: which language>/
jacek: what lang
MSmits: then i'm stumped
jacek: System.err.println("dupa");
densch: I dont know anything except java. and not even that any good
densch: so: atan(+)=+, atan(-)=-
Marchete: in 2 gens I have 80% winrate vs a random bot... at least is not <55%
jacek: :tada:
Marchete: yeah, like these papers
Marchete: "we achieve 80% winrate vs a greedy bot"
Marchete: lol
jacek: greedy?
Marchete: I mean
Marchete: they achieve high winrates vs lame bots
Marchete: greedy or randoms
Marchete: but this thing is way too hard
jacek: but progress is a progress
jacek: will it improve?
Marchete: gen1 -> 39% winrate vs gen0
Marchete: gen1 -> 70% vs gen0
Marchete: i have no damn idea
jacek: gen1 39%? hmm
Marchete: it's only a single layer
Marchete: I know
jacek: mine is also single layer
jacek: most my bots are single layer, few have just 2 layers
Marchete: 64 dense
Marchete: 80k weights
Marchete: 80KB
Marchete: 22k weights
jacek: 64 units and 80k weights?
Scarfield: why limit nodes to only have one connection? :p
Marchete: nahh that doesn't work at all
Marchete: 40% winrate now
jacek: i remeber my 1 iteration give ~90% vs random
Marchete: as it should be
densch: hey, anyone know if one can somehow save the current code from a challenge? like I dont wanna
densch: do the mars 2 anymore and do something else but wanna keep that cide I got so far for it
Marchete: I'm playing 1000 selfplay games and picking 100k samples from last 3M samples
Scarfield: when you run a testcase or submit your code will be saved, copy paste it somewhere if you want to feel safe
Marchete: seems right?
Marchete: then
Marchete: K_LEARNING_RATE=0.001 K_BATCH_SIZE=64 K_EPOCHS=100
jacek: huh?
jacek: what does epoch mean in this context. the learning thing?
Marchete: I have no damn idea :D
jacek: i use 2-3 epochs over entire memory buffer every iteration
jacek: 1 epoch meaning going through all dataset
Marchete: entire memory buffer are all moves?
jacek: memory buffer, a list of positions and their labels
jacek: if youre using policy, that could be moves as well
Marchete: I mean
Marchete: all?
Marchete: I'm picking a random subset
jacek: a0 folks use random subset, i use all. thats one of difference
jacek: my method may be confusing, its heavily inspired by a0 but not exact
Marchete: it's not confusing
Marchete: I mean
Marchete: full buffer makes sense
Marchete: a random subset will miss most of the info
Marchete: and I doubt it can go to 90% winrate
reCurse: Digging down the chess move generation best algorithms, I realize our average bitboard usage here is kindergarten level :P
MSmits: jacek do you split between a training set and test/validation set?
MSmits: or does that not make sens
jacek: does not make sense i think
MSmits: oh noes, reCurse, dont do it
jacek: reCurse kindergarten bitboards?
reCurse: Is that related to fancy magic bitboards
MSmits: I mean oh noes... the rabbit hole
reCurse: This stuff is borderline insane
jacek: https://www.chessprogramming.org/Kindergarten_Bitboards
jacek: and here is 'classical' and magic bitboards https://rhysre.net/fast-chess-move-generation-with-magic-bitboards.html
Marchete: that's not kindergarten level, my toddler can't do that!
MSmits: not when you're watching
reCurse: I guess my analogy was very poor considering 'kindergarten bitboards' are a thing :P
reCurse: So baby level then
reCurse: Aren't kindergarten bitboards a different thing than fancy magic bitboards?
reCurse: I don't want to get lost, only focus on the sota
Scarfield: lol the rhysre link, links to his github, where he called his bot Shallow Blue
jacek: i only know kindergarten for name
jacek: i only use the classical approach
Marchete: we lost him to the chess blackhole!
jacek: https://yh.reddit.com/r/chess/comments/nno0b3/the_admin_of_a_40k_supernatural_conspiracy_theory/
Marchete: saw that, classic conspiranoics
MSmits: well the bishops are obvious
Marchete: like vaccines working?
reCurse: lol not even bothering capturing pieces
MSmits: no i meant the chess postion
MSmits: all bishops on black
MSmits: dunno about the rest, but pawn structure is craz
MSmits: y
reCurse: Well you can derive a lot of impossibilities from the fact nothing's captured
Scarfield: they are playing a special variation of Fischer chess
struct: damn -9 for black
struct: this is clearly winning
jacek: like left white rook
kovi: what recurse said. both bishops and pawn impossible because of that
MSmits: do you mean impossible, because a real play would capture stuff, or completely impossible because there is no series of legal moves
MSmits: real player
reCurse: Why not both
MSmits: no idea, just wondering about the question
MSmits: it's poorly defined :)
reCurse: I mostly meant legally impossible
MSmits: ah ok
reCurse: But having that crowded of a board in mid-game is quite something
kovi: double bishop = pawn->bishop pawn outofcolumn = capture
MSmits: yeah that rook has to take quite a tour to get there
Marchete: put it on stockfish, it will explode
jacek: reCurse so by kindergarten you meant we are newbies? not the bitboard type?
kovi: yes
MSmits: that's what he was saying but it was the inclusive we
MSmits: he's just surprised by the level of ingenuity in chess bitboard
jacek: shall be the royal we
MSmits: :P
kovi: they are doing it for decades...
MSmits: yeah, that magic number stuff is cool though
jacek: uh oh
MSmits: they actually mine those
reCurse: I meant despite our bitboard efforts we are still nowhere near the effort these guys put
MSmits: kinda
MSmits: but reCurse that's also because we move on from games. Well most of us :p
Marchete: chess is the most explored game probably
reCurse: I know, it was just a tongue in cheek way of expressing admiration
jacek: find other games with dedicated decades to efficient move generation
Scarfield: minecraft
MSmits: othello seemed pretty cool, it's a much simpler game than chess, but the AVX stuff is neat
MSmits: and ofc minecraft yes
reCurse: Wonder how much the decades helped given the changing hardware, kind of changes the goal posts a few times
reCurse: "Just use 840kb precomputed table at initialization" is definitely era-specific
kovi: good point. 35 years ago i wanted to do it on c64
MSmits: 35 years ago I wanted icecream and transformers robots
kovi: but the best i could actually do is smart greedy gomoku
jacek: smart?
jacek: also, limited hardware encouraged creativity
reCurse: Sometimes wish I was older for that
jacek: you always can limit your hardware ~
Scarfield: not to late, there is no limit to self limitation
reCurse: We know it's not the same thing
kovi: motivation and especially knowledge was different back then
Scarfield: wait karlis o first in UTTT
jacek: w00t
Scarfield: submitted 18.15 today
jrke: damn karliso also aving 1 point lead
jacek: im too noob to detronize him
jacek: NN autobots, get him!
jacek: and still not 1st in onitama despite using onitama avatar :s
Scarfield: thats dedication though
reCurse: Maybe at this point I just need to accept I'll never catch a break at it
jrke: jacek is your onitama bot NN
jrke: 6 points lead a big one
jrke: nice
jacek: yes
jacek: or just lucky start positions :v
Illedan: NN in onitama? Do you have `NN-input for every kind of possible card?
jacek: its card-agnostic. i have input for every square that is attacked by one player, or other player, or attacked by center card etc.
Illedan: cool
jacek: 320 states per square. the inputs over-parametrized as all of my NNs
jacek: oO https://i.redd.it/mikcgwhmm8271.png
jacek: where is the chat history?
jacek: the link i have is https://cg.spdns.eu/wiki/Main_Page but its broken?
reCurse: Looks vandalized if you check history
jacek: oh my
jacek: whos the author
jacek: the maintainer* of the site
reCurse: dbdr
Smelty:
Marchete: spam bots defaced spdns.eu every day
Marchete: dbdr should block changes
Astrobytes: Yeah dbdr's wiki is compromised in that lovely spammy way
Astrobytes: oh. I'm a little late with that comment.
struct: hi :)
Astrobytes: hey struct
ZarthaxX: hey
Astrobytes: zarthooo
ZarthaxX: astroooooooo
Astrobytes: How's things?
ZarthaxX: good
ZarthaxX: tommorrow im having the job offer conditions and stuff
ZarthaxX: pretty happy :)
Astrobytes: ah nice man! :)
Astrobytes: I've got an interview next week for a damn webdev job
ZarthaxX: :O
struct: at least they dont use foxpro
ZarthaxX: nice tho :)
struct: I hope :D
ZarthaxX: hope it goes well
Astrobytes: foxpro :D
Astrobytes: Fucking Wordpress
Astrobytes: Not gonna lie, I'll take anything right now
Astrobytes: (but not foxpro)
Astrobytes: But quite honestly I am not looking forward to brushing up my PHP and js knowledge tbh
struct: some frameworks are not that bad
ZarthaxX: php, no :(
Astrobytes: It's a WordPress job
ZarthaxX: Astrobytes first dev job tho?
Astrobytes: Excluding the last one I had around 1999-2001 yes
Astrobytes: ZarthaxX
ZarthaxX: well
ZarthaxX: i guess you gotta start somewhere
Astrobytes: Though I did keep my hands in the pie over the years
Astrobytes: I was going for testing jobs and a few said I was 'too skilled'
Astrobytes: I am not entirely sure what kind of candidate they were looking for.
struct: too skilled is bad?
Astrobytes: For many jobs yes. "They'll leave as soon as they can" is the reason. I've done my time in hiring.
Astrobytes: When I was studying and eventually quit my kitchen job, I tried to pick up a few hours at a TNT warehouse. I had to sit there for about 20 minutes trying to tell the guy that I just needed soem cash and I wasn't gonna suddenly leave or apply for his position.
Astrobytes: I still don't get how ithis applied to me for the testing positions but hey
ZarthaxX: too skilled wtf
struct: I had to google tnt warehouse
struct: just to be sure
ZarthaxX: lol i will google that too
Astrobytes: Yeah, not an explosives factory :D
ZarthaxX: haha
ZarthaxX: i forgot you were a chef
ZarthaxX: have you been doing any course related to programming?
Astrobytes: I did a 'foundations of computer science' (discrete maths, lagos, data structures, complexity, proofs, all that crap) and a Java OOP course about 12 years agho
Astrobytes: *ago
Astrobytes: That got me started properly
Astrobytes: *algos (lagos!!!)
Astrobytes: Little bit out of date but I can prove myself.
ZarthaxX: i see
ZarthaxX: that seems enough
Astrobytes: I mean I've done lots of online ones informally but that's the only formal ones
ZarthaxX: but the time that has passed plays you a bad oen
Astrobytes: Yes exactly
struct: thats why it was dangerous, they havent updated java in 12 years
struct: He would take their jobs
Astrobytes: Hahahaha
Astrobytes: That was the second worst course I ever took in my life btw
Astrobytes: The absolute worst was a combined geology and weather module. Grim. Really, really grim.
codin_compuder: i need help for this clash
ZarthaxX: Astrobytes my job involves learning java :D
Astrobytes: ZarthaxX: btw it's an entry level position I applied for btw, on the job training etc (I can take a pay cut for a while at least I think)
codin_compuder: The program: http://chat.codingame.com/pastebin/95760e24-8699-4424-8259-d1f0086e9528
Astrobytes: ZarthaxX: It's hideous!
Astrobytes: I mean, it works and stuff. But the goddamn verbosity.
struct: the purpouse of the clash is for you to solve it
struct: not us
ZarthaxX: Astrobytes ah okey, nice
Astrobytes: I'm totally with reBless in that we need a bot that replies to these standard requests/questions/demands
ZarthaxX: i dont know if the verbose part is what annoys me
Astrobytes: There's a lot more yes
ZarthaxX: but will see, i will try to see java with different eyes :)
ZarthaxX: also, i could start practicing with the multi creation haha
struct: you better close them
Astrobytes: Not EVERYTHING has to be a fking object
ZarthaxX: why not
ZarthaxX: :P
Astrobytes: Right!
Astrobytes: Honestly, I'm a fan of using the right paradigms for the right tasks
ZarthaxX: i like the objects paradigm tho
Astrobytes: Sure, where applicable
ZarthaxX: at industriy lvl, seems right
ZarthaxX: industry*
Astrobytes: But when you're forced into that when you don't need it it's a little unwieldy
Astrobytes: What I'm getting at is that there are a lot of problems that could be solved by not putting all faith in one methodology over another. (my early dev experience taught me A LOT. And still in touch with my creative lead and tech lead btw)
densch: I finally, even though very narrowly beat the mars lander episode 2. it aint no good code, it could be way smarter or efficient but I dont care. it worked
densch: hers the code if anyone is interested :-D
densch: http://chat.codingame.com/pastebin/50ef54da-0f26-4a01-afcb-f5215bf80294
Astrobytes: Don't post your code
struct: free experience, ty
Astrobytes: For debugging purposes it's cool but honestly, don't post working solutions please
Astrobytes: don't worry, now you know
Astrobytes: Not much of a challenge if everyone posts their solutions in the chat right ;)
ZarthaxX: Astrobytes okey yes, being forced to something may not be the best, even more when you know what the correct choice would be
ZarthaxX: but well, we are just slaves :D
Astrobytes: ZarthaxX: Sadly very true!
ZarthaxX: depends on the company values tho
ZarthaxX: the one i got into now is known for being one of the best places to work in
ZarthaxX: top 8 in the world apparently
ZarthaxX: im pretty lucky haha
Astrobytes: Smaller ones *sometimes* have better values. In my experience they do not :D
Astrobytes: *Smaller companies that is
Astrobytes: Get in there dude
Astrobytes: We can talk shit here all we like but a good job is a good job right
Astrobytes: Anyways, I'm out. See ya later struct, ZarthaxX
struct: gn
cw477: +1 for shitshow on small companies
cw477: i shoulda left when our ceo got the boot for embezzling
ZarthaxX: see you Astrobytes:*
codin_compuder: WHY ARE CLASHES SO HARD
mohbz: because its time to get better at coding
cw477: lol
cw477: git gud
cw477: in reality, just practice man
cw477: we were all scrubs once
Smelty: uwu
hexa8: uwu
Lucky30_: :(
hexa8: :eye::lips::eye:
Smelty: :eyes:
Lucky30_: :thinking:
Smelty: guys help codingame doesnt like me https://snipboard.io/itnGrh.jpg
Smelty: jk
Chainman: hi :thinking:
Lucky30_: oO, i thought i was the only one :thinking:
Chainman: What's a good way to get started learning mcts?
dan01: Hi guys :) do you know puzzles that talk about of "sort the packages using the robotic arm of the factory"
ZarthaxX: what
ZarthaxX: Chainman i guess reading a paper or just googling
struct: o.o
Chainman: You are speaking the language of the gods :yin_yang:
struct: Chainman for mcts I didnt read about it
Chainman: googling until I figure it out.
struct: I tried implementing it on TTT
Chainman: you just know it?
struct: I guess
struct: I looked at pictures and it made sense
struct: lol
Chainman: TTT I suppose is an easier problem
struct: Yeah its good to try algorithms
struct: easy to debug
Chainman: I should do that.
struct: feel free to ping if you have any qustion on it
Chainman: Wait Ultimate Tic-Tac-Toe struct?
struct: no
struct: TTT
Chainman: https://www.codingame.com/training/easy/tictactoe?
struct: UTTT can be a bit harder to debug
Chainman: To find the next move
struct: Well I just implemented it localy
struct: debuging c++ on ide can be a painfull experience
struct: on cg* ide
struct: this is why I did it locally
struct: hi
cegprakash: An error occurred (#407): "You reached the limit of plays for a period of time.".
cegprakash: ouch
ArtMajor: Quick question. I was doing a reverse coc, and when I submitted with all test cases showing correct I got a 25%. Why?
struct: bad testcases
struct: validators are a bit different
Andriamanitra: ideally the validators should be testing for the same thing but in a different way so hard-coded solutions won't pass but the reality is bit different
Andriamanitra: people seem to rarely take a good look at test cases before approving new clashes so all kinds of crap slips through
Andriamanitra: also the fact that it was a reverse and you got specifically 25% leads me to believe it was one of those reverse modes with only 4 test cases.. that's almost never enough for reverse mode
ArtMajor: yeah there were only 4
ArtMajor: what you said makes sense though
easdasd: hello guys my wife is left me
ZarthaxX: has left me*
ZarthaxX: and congratz!