Chat:World/2021-05-30

From CG community
Jump to navigation Jump to search

Default avatar.png nivasav668: Hello World

Default avatar.png Alemhan: hi

1457162: tourist, Radewoosh, T1024 and eulerscheZahl - congratulation for success (and prizes ;-) ) in ICPC contest (https://codeforces.com/contest/1524/standings/page/1)

Default avatar.png russell_07: Hi

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

Default avatar.png 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

Default avatar.png Neix20: hi

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

Default avatar.png ikustom: hey chat

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:

Default avatar.png rondo741: yo

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

Default avatar.png densch: http://chat.codingame.com/pastebin/eb9f69fc-117e-43c0-b118-b9f75bd027dd

jacek: hm?

Scarfield: a mistake on the angle maybe?

Default avatar.png 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?

Default avatar.png densch: I'm probably doing it wrong not sure

Scarfield: you are :) the game has been tested by many

Default avatar.png 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?

Default avatar.png densch: thats at least how I read it from the initial input

Default avatar.png densch: and given the change in behavior at least the borders seem to be right

Default avatar.png 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?

Default avatar.png densch: http://chat.codingame.com/pastebin/19350fed-4790-402c-853a-bfbee80d21b1

Default avatar.png densch: is what I wrote

Default avatar.png densch: am using java

Default avatar.png 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?

Default avatar.png densch: I first wanted to see if it even flies into the target area, was the default text left there.

Default avatar.png densch: thing is:

Default avatar.png densch: in test case 1, it keeps a constant -20 rotation until its in the target area.

Default avatar.png densch: and when inside, it starts flying to the left

Default avatar.png densch: well and the constant -20 rotation belongs to the case that should used when INSIDE the target area, not when outside

Default avatar.png densch: I should probably use soem else statements, maybe it solves stuff

Default avatar.png 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

Default avatar.png densch: what confuses me too: the initialization input tells me that the target area has 2000<x<3500.

Default avatar.png densch: and from letting it play out, the ship start at x=2500

Default avatar.png densch: so lotically it should be in the target range from the very start

Default avatar.png densch: but looking at the map, in the first test case, it starts far left of it

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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:

Default avatar.png 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

Default avatar.png densch: oh okay

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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)

Default avatar.png 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? :-/

Default avatar.png 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?

Default avatar.png 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

Default avatar.png 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 :)

Default avatar.png densch: I am still struggling with the mars lander 2 :-D

Default avatar.png densch: so i changed my idea

Default avatar.png 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

Default avatar.png 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?

Default avatar.png densch: MSmits well, yeah, for a given set of hspeed and vspeed, I first wanna calculate the perfect rotation.

MSmits: ok

Default avatar.png 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

Default avatar.png 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?

Default avatar.png 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

Default avatar.png densch: my iniital idea for the frst case was:

Scarfield: have you looked at test case 4 and 5 densch? :p

Default avatar.png 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

Default avatar.png densch: start dropping down as soon as the landing area is reached, so you make it in time before leaving the other side

Default avatar.png densch: dumb way but it worked for the first case

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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

Default avatar.png densch: ain't the mars episode 2 supposed to be an easy one? :O

MSmits: well it's not

Default avatar.png densch: god, what are the middle and hard lessons then? :'O

Scarfield: its easier than episode 3, but definately not easay

Default avatar.png densch: Adventurer, I'm terrified! :O

MSmits: I would suggest doing more easy and medium puzzles, not htis one

Default avatar.png densch: wellm yeah, after hours of thinking, I am hungry. so I might work on it tomorrow again

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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

Default avatar.png densch: ...

jacek: thats in the comments, isnt it

Default avatar.png densch: whats that again? i deleted that comment about it asap :-)

MSmits: it is

MSmits: which language>/

jacek: what lang

Default avatar.png densch: java

MSmits: then i'm stumped

jacek: System.err.println("dupa");

Default avatar.png densch: I dont know anything except java. and not even that any good

Default avatar.png densch: so: atan(+)=+, atan(-)=-

Default avatar.png densch: says the error thing

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

Default avatar.png densch: hey, anyone know if one can somehow save the current code from a challenge? like I dont wanna

Default avatar.png 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

Default avatar.png EstinPlayz: hi

Default avatar.png EstinPlayz: bye

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.

Default avatar.png codin_compuder: i need help for this clash

ZarthaxX: Astrobytes my job involves learning java :D

Default avatar.png codin_compuder: HELP|||


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)

Default avatar.png codin_compuder: The program: http://chat.codingame.com/pastebin/95760e24-8699-4424-8259-d1f0086e9528

Default avatar.png codin_compuder: i need help

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)

Default avatar.png densch: PRAISE THE SUN!

Default avatar.png 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

Default avatar.png densch: hers the code if anyone is interested :-D

Default avatar.png densch: http://chat.codingame.com/pastebin/50ef54da-0f26-4a01-afcb-f5215bf80294

Astrobytes: Don't post your code

Default avatar.png densch: oh

struct: free experience, ty

Astrobytes: For debugging purposes it's cool but honestly, don't post working solutions please

Default avatar.png densch: sorry

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:*

Default avatar.png codin_compuder: hi

Default avatar.png codin_compuder: WHY ARE CLASHES SO HARD


mohbz: because its time to get better at coding

Default avatar.png codin_compuder: ...

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?

Default avatar.png 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

Default avatar.png kresteodymium: hi struct

struct: hi

cegprakash: An error occurred (#407): "You reached the limit of plays for a period of time.".

cegprakash: ouch

Default avatar.png 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

Default avatar.png ArtMajor: yeah there were only 4

Default avatar.png ArtMajor: what you said makes sense though

easdasd: hello guys my wife is left me

Default avatar.png HapppyDe: that sad

ZarthaxX: has left me*

ZarthaxX: and congratz!