Chat:World/2021-05-22
Westicles: ANEO is being deleted anyhow
Smelty: oh.
NguyenThanhTam: vietnamses no1
PatrickMcGinnisII: 1st win https://www.codingame.com/replay/559129817
nacho_cheesefries: woot woot, congrats @patrickmcginnisll
eulerscheZahl: that's a nice game you are playing there ;)
eulerscheZahl: and you won with 4 vs 1 dice
HoangH7: Hello all
HoangH7: Nice to meet you.
Marchete: happy caturday
field3: It was difficult to improve the 7 rules of dice wood1. Nice dice!:smirk:
eulerscheZahl: that's what you get for using free assets :(
smilee: twitch.tv/senamonry
ZarthaxX: eulerscheZahl what about a similar asset but without having depth in the white circles
ZarthaxX: like the circles would be plain, to reduce the polygons used
smilee: Anyone want to join me in clash of code?
eulerscheZahl: now it's approved, i don't want to repair the dice layout anymore at this point
**eulerscheZahl hates changes after approval
ZarthaxX: aight
ZarthaxX: F
eulerscheZahl: did your gf finish the work now?
ZarthaxX: she said that back then the amount of polygons was big, because that model requires it
ZarthaxX: and she proposed changing the model a bit, so the circles dont waste so many polygons
NotSureWhyThisWorks: smilee I don't think you posted a link to clash of code lol
eulerscheZahl: but i like the effect :(
eulerscheZahl: let's see if i get complaints about it
ZarthaxX: she did the model you have rn, but stopped because it was too much already
ZarthaxX: okey
ZarthaxX: just say if you want to change it in the future then :)
eulerscheZahl: tradeoff between nice optics and speed, always hard to make the cut
ZarthaxX: very true.. i also like this one haha
ZarthaxX: :(
ZarthaxX: maybe reducing the quaility of the circles circunfurence
eulerscheZahl: and i just checked yesterday's chat logs
eulerscheZahl: therealbeef: wow, just the front page of that game, with the example game is making my cpu go to 30% cpu utilisation, and staying there even though the animation stopped
therealbeef: i'll play that game in winter ;-)
ZarthaxX: o.o
eulerscheZahl: PatrickMcGinnisII: Dice Duel runs slow as hell on my pc
ZarthaxX: WTF
ZarthaxX: oh no
ZarthaxX: that's bad
eulerscheZahl: i think i have to change it :sob:
smilee: Who wants to play clash of code with me? :(
https://www.codingame.com/clashofcode/clash/17668368967e0acf784a8af62aabd8c16ab98ab
ZarthaxX: damn that was fast
ZarthaxX: and really sad
VizGhar: smilee -> #clash
smilee: Thanks!
field3: I like the game system better. Approval Should I have been a little discouraged, I'm sorry.:disappointed_relieved:
eulerscheZahl: do you mean you like the wood2 rules more than wod1?
ZarthaxX: where did you get the model frm toad?
ZarthaxX: my gf wants to check it
eulerscheZahl: linked in the statement
ZarthaxX: ah sorry lol
ZarthaxX: ty
eulerscheZahl: i modified it a bit, see my github
eulerscheZahl: https://github.com/eulerscheZahl/Dice-Duel/tree/master/src/main/resources/view/assets
eulerscheZahl: that's my version with reduced polygons already
eulerscheZahl: i also have it as a be
eulerscheZahl: blender file if needed
ZarthaxX: oh okey
ZarthaxX: thanks for that
ZarthaxX: will show her
field3: I feel that wood2 can be left as it is. The rule bug removal of wood1 did not proceed easily. When I approved it, I didn't realize that wood1 had replaced the rules.
ZarthaxX: eulerscheZahl are blue and red theassets?
eulerscheZahl: i added this extra rule as I was worried about a dumb strategy of making every dice to a 5 or 6
eulerscheZahl: and then lots of 1 vs 1 exchanges
eulerscheZahl: yes ZarthaxX
eulerscheZahl: somehow i had problems with the color. some other models I tried were find in blender but just black when importing in threejs
eulerscheZahl: and somehow when i import the model that works fine on CG at https://threejs.org/editor/ it's all black again
ZarthaxX: weird :thinking:
ZarthaxX: inconsistent
eulerscheZahl: same three.js library
ZarthaxX: my gf says the textures might have been imported for some render engine
ZarthaxX: and three.js may not be compatible
ZarthaxX: but still weird
eulerscheZahl: a nightmare for someone like me who has no clue what he's doing
eulerscheZahl: tested like 10 assets until i got 1 working with color
ZarthaxX: oh god
ZarthaxX: sounds painful
eulerscheZahl: and got a few blender crashes when i took the red to create a blue one
ZarthaxX: :/
eulerscheZahl: so hard that i had to restart the entire computer
ZarthaxX: ?????????
ZarthaxX: the f
VizGhar: I though blender is standard
VizGhar: not expecting crashes :P
ZarthaxX: anyway, do you want a model with textures or without them, to see how it could be optimized for now
eulerscheZahl: textures? help, i need a glossary
ZarthaxX: the colors in this case
ZarthaxX: if you prefer looking up a model without colors, to check if it suits you
eulerscheZahl: the pre-set colors made it simple for me
eulerscheZahl: have a look at the board in contrast: it has a 3D file and a 2D image on top. I had to modify the library code to get the picture loaded (CG changes URLs on upload)
eulerscheZahl: so i hardcoded that path somewhere deep inside the lib
ZarthaxX: mmh okey
eulerscheZahl: if (url == "https://cdn-games.codingame.com/community/1500515-1615736605574/board.jpg") {
url = 'https://cdn-games.codingame.com/community/1500515-1615736605574/245df58d3d0386529cb33d42369a5444560243134a1d7b8368c129857a362c2b.jpg' }
ZarthaxX: im confused by the preset colors yet
eulerscheZahl: it's material properties
ZarthaxX: and the other thing , sounds like an annoying workaround
eulerscheZahl: die = material A with property red
eulerscheZahl: hole = material B with white
ZarthaxX: ah ok
ZarthaxX: so the 2d image is mounted on the 3d board
CodeDecodeDev: Hey
eulerscheZahl: have a close look at the edges of the board
CodeDecodeDev: Oh hi zarthaxX we meet again xD
ZarthaxX: hey!
eulerscheZahl: you can see the rows and columns again on the sides
CodeDecodeDev: so hows it going everyone
ZarthaxX: oh it's wrapped in the 3d
ZarthaxX: so its the material
eulerscheZahl: material is jus assigned at the places where it needs to be
eulerscheZahl: the picture thing is weird. desired for the player avatars
eulerscheZahl: just weird for the board
ZarthaxX: ah okey
ZarthaxX: i found those player boxes weird
eulerscheZahl: wasn't sure how to make clear which player is which
eulerscheZahl: could have tried some static side menu and less 3D area
ZarthaxX: nah i liked that idea
ZarthaxX: :P
ZarthaxX: i will go to bed now, too late
eulerscheZahl: if i were you, i would be close to waking up again :D
ZarthaxX: but if you want to discuss this some day tell me
ZarthaxX: my gf can try doing a model without colors just to see if it fits your preferences :P
ZarthaxX: i know, but you wake up WAAAY too early
ZarthaxX: i wake up at 9
ZarthaxX: just once at 7 30 :P
eulerscheZahl: you don't get much sleep then
ZarthaxX: i will prob sleep up to 10, but yeah, normally 7-6
ZarthaxX: anyway gn :*
eulerscheZahl: good night
EquinoxWhale: clash of code stream: https://www.twitch.tv/senamonry
jacek: happy Caturday
JohnCM: lol equinox, i thought you were the one streaming
adila: hi, how can I see all the puzzles i did
aCat: you can only see puzzles you did at each difficulty: easy, medium etc
aCat: hey are shown at the bottom
Thyl: happy Birdsday
adila: thank you. that' s so wired for a site so cool
aCat: yeah, we know ^^'
aCat: some inconveinences exist
-AnOnYmOuS-: helo
-AnOnYmOuS-: I am a beginner Will this help me
jacek: total beginner?
-AnOnYmOuS-: no i know java,c ,C++
-AnOnYmOuS-: but doiing these cases make me feel sad
-AnOnYmOuS-: because im unable to do
-AnOnYmOuS-: i know coding
-AnOnYmOuS-: but 😪😪
-AnOnYmOuS-: what should i do to become an expert ..like when I should be able to at least solve it
-AnOnYmOuS-: now, when i will try and if i didn't get ill google...and when i see the answer i got to know the idea
-AnOnYmOuS-: what should i do
Westicles: :thinking:
Uljahn: learn algorithms, practice by implementing them
jacek: try easy puzzles
-AnOnYmOuS-: ohk i will try my best
IronEngineer: hello everyone, I've used a lot of C++ over the years and am looking for an embedded job. Anyone got experience with Rust in that area? Worth? or just continue honing the C skills?
IronEngineer: background is as a mechanical engineer that has built a number of test setups using C. Looking to move more directly in programming in my next job
IronEngineer: just curious on the use of Rust in the workfield. Heard good things, not sure if its worth the time
multii: hi
multii: sup
multii: lol
-AnOnYmOuS-: hi
jacek: good morning
AntiSquid: time for a breakfast clash?
jacek: want a link?
VizGhar: Yeah... Last Crusade Episode 3 finally done
DomiKo: gj
geppoz: python question:
jacek: :snake:
geppoz: there is a short way to read all input in one string?
geppoz: I mean "slurping" all stdin until the end
mraymun: i think u might use .split
seovs: open(0).read() reads everything. But I think this only works if you haven't read any input before
geppoz: ty
JohnCM: or you can try: http://chat.codingame.com/pastebin/7b3714cb-2654-4453-abaa-473132bd242a
JohnCM: the do_something() section you can like concatenate the string
geppoz: well I'm searching for shortcuts, that's really long :D
JohnCM: haha code golf?
jacek: !
Twelve0: Hey, I have a problem with my account I don't receive notifications on the platform , any ideas about how can it be fixed ?
mybk: click avatar (top right corner) >> settings >> Notifications
codingmasterN.1-: temperature의 현재 코딩 언어가 뭐입니까?
codingmasterN.1-: What is the current coding language for temperature?
struct: you can choose any?
codingmasterN.1-: I don't know
jacek: abode editor you can choose any language
jacek: programming language*
demnaty: which best source to practice a c language
demnaty: descriptor and types and other stuff ...
Xzoky174: what do you prefer? books, videos, or courses?
Golden_Pheonix: http://chat.codingame.com/pastebin/617e02e4-42c5-4cdf-bb61-be7f48586c1c
Golden_Pheonix: hi every one
Golden_Pheonix: i want to write test script in python
Golden_Pheonix: to test
Golden_Pheonix: printed output in python program
Golden_Pheonix: i don't know how to do
Golden_Pheonix: anyone can help me
Golden_Pheonix: yes, to check the printed word is as what i excepted
demnaty: @Xzoky174 anything, but should something advanced. please if you have
Golden_Pheonix: for example:
Golden_Pheonix: if input is "a"
Golden_Pheonix: i want to print the output "apple"
demnaty: you want to print for debugging
Golden_Pheonix: now, i want to write the test case to check whether the printed text is "apple"
Golden_Pheonix: simple print
Golden_Pheonix: not syntax for print
Golden_Pheonix: how to check the printed text is "Hello World" or not
Riku5720: morning
demnaty: https://stackoverflow.com/questions/3762881/how-do-i-check-if-stdin-has-some-data
geppoz: Riku5720 it depends
geppoz: :D
demnaty: i think that's one it can help you
demnaty: the idea is to read from stdin
Golden_Pheonix: ok thank you
Golden_Pheonix: i will check that
demnaty: check this one also https://www.askpython.com/python/python-stdin-stdout-stderr
Golden_Pheonix: ok
geppoz: hi
CrealStudio: I have no idea what this stuff is
CrealStudio: I just wanna imorove my skills
CrealStudio: Which language do you use?
demnaty: i have no idea about lua
demnaty: this is the first time i hear this name hhh
Riku5720: I used to use lua I only just started using python
jacek: where lua is used seriously?
CrealStudio: do u know roblox or core
CrealStudio: and itch.io was made with lua btw
jacek: oh!
CrealStudio: it also has a famous 2d game framework called love2d
CrealStudio: and its easy to use once you learn it
Riku5720: can someone explain something
VizGhar: Riku5720 dont ask to ask... just ask
Riku5720: yea one sec
Riku5720: are you allowed to ask about code btw
Riku5720: I need help on why my code on https://www.codingame.com/clashofcode/clash/report/17674411a902f3209bb2074410f4a5eb43afbe9 didnt work
jacek: we cant see the code
Riku5720: oh
Riku5720: n=int(input()) print(str(n) * n)
Riku5720: I also did
Riku5720: n=int(input()) print(str(n) * n - 1) and that just breaks it
Riku5720: with an input of 2 I expect 22 but I get 222
Riku5720: 3 = 333 but I get 3333, etc
jacek: really? it should work normally
JFB: str(n) * n ???
JFB: in what language? In Python iit is multiplication of string and intiger
Riku5720: python
jacek: "3" * 3 will give "333"
Riku5720: I just tried it myself and got 1, 22, 333
Riku5720: but on here it doesnt
Riku5720: it gives me 11, 222, 3333
jacek: no hidden print eh?
jacek: paste the all code
Riku5720: n=int(input()) print(str(n) * n)
Riku5720: I get 11, 222, 3333
Riku5720: I did
Riku5720: def func(n): http://chat.codingame.com/pastebin/b15cc032-fe94-4086-bc13-81ccbc574bd8
Riku5720: and then I got
Riku5720: 1, 22, 333
Riku5720: wait can you shift enter oh you can crap sorry for doing multiple messages
jacek: i wrote that in ide and i normally get 1, 22, 333 etc
Riku5720: yea
Riku5720: I tried it in codingame and got 11, 222, 3333
jacek: oO
JFB: and n * str(n) ?
Riku5720: im on a different clash ow
Riku5720: now
Riku5720: and it works regular in here
Riku5720: 1, 22, 333 here
Riku5720: but 11, 222, 3333 on the other one
Riku5720: maybe the input is done differently? same exact code
Riku5720: is there a way to check what contribution it was maybe I can report it
jacek: ¯\_(ツ)_/¯
Riku5720: im gonna head out cya
IanPoggers: I keep passing all the test cases, but getting 0% score
IanPoggers: Is this a bug or am I doing something wrong :(
JFB: Rather you doing something wrong. Score is calculated on test cases similar but a bit different that test cases you see.
TheBatMan_TM: hey guys
TheBatMan_TM: help!
TheBatMan_TM: how to save scripts (eg: nodemon index.js), in python, like how we do in a package.json file in nodejs
idan_idan: C: char t[4][4]; char** b = t: not working :( someone can help?
JFB: iden_iden : b[0][0] = t;
TheBatMan_TM: how to save scripts (eg: django-admin startapp api), in python, like how we do in a package.json file in nodejs
TheBatMan_TM: ?
JFB: TheBatMan_TM - I do not know nodejs so I do not know. In django you use python files simply placed on disk
JFB: iden_iden: sorry, my mistake :-) One moment
1415495: char (*b)[4] = t I think
JFB: true
1415495: (if you want b to be a pointer to an array of 4 char)
kurtesy: Dogecoin for the win
jacek: :thinking:
Greg_3141: le epic elon musk doge meme reddit money
MSmits: hey jacek, i did a simple toy experiment with xor just now. Trying to teach a NN to do xor with two types. negative xor and positive xor. Doing it with a two-hot version and a version where input can be -1, 0 or 1
MSmits: in this case it seems better to concentrate the input somehow
MSmits: inputs = [[0,0], [0,1], [1,0], [1,1], [-1,-1], [-1,0], [0,-1]] targets = [0,1,1,0,0,1,1]
MSmits: this
MSmits: vs
MSmits: inputs = [[0,0,0,0], [0,1,0,0], [1,0,0,0], [1,1,0,0], [0,0,0,1], [0,0,1,0], [0,0,1,1]] targets = [0,1,1,0,0,1,1]
MSmits: first version works better it seems
MSmits: cant draw any conclusions from this, but was fun experiment
MSmits: I used a single hidden layer. Basically the typical xor example slightly altered
VizGhar: It's swarming with NN since contest :D
Smelty: yes
MSmits: in my case has nothing to do with contest really, but you're right
ZarthaxX: annoying :P
VizGhar: :) I'm curious, when my time will come to try NNs
VizGhar: 3.5 very hard puzzles remaining, then I'll go after bot contests
ZarthaxX: :O
MSmits: you misspelled that, it's "fun" ZarthaxX
ZarthaxX: nice
ZarthaxX: *fun* as the one you have in a contest
ZarthaxX: where you struggle at the very end to stay high :P
MSmits: nah this is more fun :)
MSmits: relaxed, work without time limit
jacek: fun, or competetive
jacek: mutual exclusive
MSmits: well competitive can be fun, but i like it better in multi arena where i am not stressed to do everything within 11 days
therealbeef: that's personal preference I think
MSmits: sure
therealbeef: for me, the stress and competition makes it more fun
MSmits: yeah, you're not alone in that
struct: msmits already coding NN o.o
zonbita: http://chat.codingame.com/pastebin/79eebc03-d555-4dca-a377-3cd61e3d5b77
struct: you are fast
MSmits: i did not code much new though struct, i already had this xor example from jacek
MSmits: i just adapted it to work with a little bit more input and targets
MSmits: literally two lines changed
zonbita: i dont understand for quest
MSmits: now trying to make it work with relu
therealbeef: everyone joining the hype :D
struct: ah ok, im a slow learner
struct: So its taking me a while to udnerstand
struct: lots of new terms to me
MSmits: i started sooner than you. Maybe a month or so before contest, on and off
struct: ah right you already had some experience
MSmits: and of course a year of talking about it here on CG and watching YT
struct: ah ok, i started 4 days ago
struct: :D
MSmits: right, so dont worry :)
zonbita: when is supporter online?
struct: tech support?
struct: I dont think there is tech support
struct: usually chat helps with questions
MSmits: well there is a tech support forum thingy isnt there?
zonbita: i see a problem about calculator declare main, class with c#
therealbeef: zonbita, the input and output are connected, you just have to find it
MSmits: you dont need tech support i bet zonbita, you need debugging for your code
MSmits: how do you know
zonbita: using library and main, class
MSmits: show the code that doesnt work
zonbita: if dont have it that not run
MSmits: just paste it here
zonbita: http://chat.codingame.com/pastebin/43d0a2d1-9aba-4486-81a6-54484be13c33
zonbita: 620 character for declare
MSmits: what is the output?
zonbita: while python just have 39 character
MSmits: which puzzle is this?
MSmits: ohhhh
Smelty: e?
MSmits: you are complaining that C# has too many characters?
zonbita: for i in input():print(1-int(i),end=)
MSmits: then dont use it
MSmits: use python if you want less characters
Smelty: lolol
zonbita: i want use c# for recruitment
Smelty: its fine
Greg_3141: unless you're playing code golf it doesn't matter how many characters the code has
Smelty: i use python for shortest
MSmits: if you need to take out some screws and you're using a knife, dont complain that it's not going well
Smelty: but java for the rest
zonbita: i know python is the best
struct: Dont do CoC for recruitement
Smelty: lol
struct: You dont learn a lot from it
Smelty: for code gold recruiters should understand
MSmits: zonbita go here:
Smelty: but for others, use c#
MSmits: https://www.codingame.com/training
MSmits: use whatever language you like
MSmits: learn
struct: Which recruiters want code golfers?
Smelty: idk
Greg_3141: nobody i would guess
Smelty: but they shouldn't care about which language they use in code gold cuz its for shortest
Smelty: *golf and i op
Greg_3141: code golf is more of a hobby than a useful programming skill imo
Smelty: yes
MSmits: yeah nothing useful about it
Smelty: when i code gold with java, it looks horrifying
Smelty: one extremely long line of code containing everything
MSmits: unless maybe you want to put more weights in your nn and want to code to take up as little as possible :)
Greg_3141: what does that have to do with anything? You're not going to golf away the space required to store the weights
MSmits: eh part of the space, why not
MSmits: you have 100k characters more or less
MSmits: if your code is smaller, you can squeeze in a few more weights, if you even need them ofc
Greg_3141: because then the code quickly becomes unreadable if you golf the parts that can be golfed?
MSmits: you code locally in uncompressed form
MSmits: then convert it before you put it in IDE
MSmits: it'd be nice if you know how to make it as small as possible
MSmits: it's a kind of golfing
MSmits: not the same as coc ofc
Smelty: lol
Smelty: i first code it then golf it
Greg_3141: how are you gonna compress storing several 2D arrays anyway? Because that's how NN weights should be stored
struct: this is readable right? p eval`dd`.scan(/\d+/)*?+
MSmits: like a monster string Greg_3141
MSmits: you have a function that turns it into 2d arrays in the first 1 second of the game
zonbita: Top 1 in this web, How see him?
MSmits: decoding the string
struct: https://www.codingame.com/leaderboards/general/global
jacek: euler?
Smelty: lemme quickly code golf temperatures with java :rofl:
MSmits: zonbita if you see him you will be hypnotized
PatrickMcGinnisII: https://en.wikipedia.org/wiki/International_Obfuscated_C_Code_Contest
MSmits: zonbita go here: https://www.youtube.com/watch?v=zHU2RlSCdxU
MSmits: that's the nr 1
Greg_3141: ok but why though? You're going to save very few characters (if any at all) vs just having it in a 2d array to begin with
MSmits: because of codespace
MSmits: you can have 100k characters
MSmits: if you put a bunch of floats in there, they are going to be several characters each
MSmits: not to mention commas to separate in the array
MSmits: I think jacek uses 1 character per weight in his NN's
MSmits: thats a lot better than the 6 or 7 you would have in your 2d situation
MSmits: imagine a very long string with mostly Chinese characters
Greg_3141: makes sense ig for some languages
MSmits: each character holding roughly 16 bit, for a 16 bit float
MSmits: any language actually
MSmits: if you want to store something efficiently in small codespace
Smelty: Hydrazer wait a sec
MSmits: Greg_3141 this is part of my endgame book in Bandas: wstring book = L"겆푪䟨킎췎ᇘ㘰"
zonbita: wtf _Royale know all language
MSmits: each character holds 10 results (win/loss/draw) for a particular board configuration
MSmits: so 10 results in 1 character
MSmits: thats powerful
Greg_3141: makes sense, thanks
MSmits: np
Riku5720: hello
jacek: Automaton2000 where is your book
Automaton2000: way easier to get the same score
Smelty: lmao i got temperature code gold solved in 273 with java
Smelty: *golf
Smelty: Hydrazer
jacek: 273?
jacek: thats absolute unit
Smelty: huh coincidence
jacek: is it?
Smelty: well i removed everything i could and thats what i got
Smelty: either that or its a blessing from the lord
Smelty: import java.util.*;class Solution{public static void main(String args[]){Scanner j=new Scanner(System.in);int n=j.nextInt();int h=6000;for(int i=0;i<n;i++){int t=j.nextInt();if(Math.abs(h)>Math.abs(t)){h=t;}if(h==-t){if(t>0){h=t;}}}if(h==6000){h=0;}System.out.println(h);}}
Smelty: oh shoot
Smelty: it didnt censor
Smelty: http://chat.codingame.com/pastebin/8d9d437c-8baa-4e2b-96ca-e9a1d7a9cfdf
Smelty: http://chat.codingame.com/pastebin/9dc33dda-272d-4317-ab4e-ded418a5c880
Smelty: ok there
Smelty: umm uhh errrr
jacek: huh
Greg_3141: You might be able to make it shorter with functional features in Java
struct: o.o
Hydrazer: eeeeee
MSmits: in python you can do 6*"e"
struct: 6*?e in ruby
MSmits: whats the "?"
struct: idk but it works
MSmits: ruby is weird
jacek: my code summed up
MSmits: you code ruby?
jacek: "idk but it worksdk but it works
MSmits: oh right, you dont know why yours works
jacek: meh
jacek: can type today
jacek: t
MSmits: it's ok, I got it
struct: ok it was ?e*6
struct: my ruby skills are gonne
Smelty: i cant get my code to under 200 in don't panic :(
jacek: dont panic, youll get there
Smelty: sniffles
Smelty: im at 235
MSmits: it's hard
jacek: use something else than java
Smelty: im not using java
Smelty: im using python
Hydrazer: use cobol
jrke: which multi/
jrke: ?
jrke: *
casmith789: I just got to 200 in c++. feeling good until I see other people at 76 chars in c++
Smelty: confusion
struct: 76 is probably just system calls
MSmits: bash solution?
struct: yes or perl/ruby
Smelty: ok ill try
Smelty: *opens ruby* length: 1200
MSmits: first you need to make sure you exhausted all logic improvements
Smelty: hm
MSmits: sometimes you're keeping track of things you dont need to
struct: in your java solutions i saw some obvious reductions
Smelty: lol i just randomly typed up stuff
Smelty: also 237 was a nice number
Hydrazer: obviously
MSmits: I think it's an ok number
Greg_3141: you could get rid of some brackets, just realized that
struct: brackets abs for loop
thomasgonda3: are achievements supposed to unlock immediately when you do one
struct: sometimes it takes a while to trigger
thomasgonda3: i got 2200 on mars lander 2 optimization and it still hasnt given me the less than 400L on 5th test achievement
thomasgonda3: i dont think its possible to get 200 and not have the 5th test be over 400
thomasgonda3: 2200
struct: i think its possible to check the score you got on the testcase
struct: validator*
struct: ah im wrong
Smelty: well
Smelty: Hydrazer if you invite me to another clash i'll join
Hydrazer: ok im almost done
Smelty: k
Smelty: reee my code golf still at 230
thomasgonda3: ok nvm i figured it out, mars lander optimization and mars lander episode 2 are actually different things
thomasgonda3: even though theyre the same tests
jacek: mhm
MSmits: relu works quite wel on xor
MSmits: (for first layer)
jacek: eeyup
MSmits: i had some trouble first, because your xor example does sigmoid before sigmoid_prime as well, but you cant do that with relu
MSmits: so have to be careful converting code
jacek: hm?
MSmits: def relu(x): http://chat.codingame.com/pastebin/691c233f-3950-43bd-b58d-0165785a2423
MSmits: def sig(x): http://chat.codingame.com/pastebin/d405db34-8677-45c1-808c-c818273a430d
MSmits: node the "already sigmoided"
MSmits: note
jacek: oh
jacek: you can put already "relued x" it would be the same
MSmits: hmm, yeah i guess the > 0 would still work
MSmits: good point
MSmits: dunno why i thought it wouldnt
MSmits: i think my next test, i will try a one hot TTT vs a -1, 0, 1 TTT
MSmits: can just generate all states and train on that right?
struct: whats a -1, 0, 1 ttt?
MSmits: input
MSmits: -1 = 0, 0 = empty, 1 = cross
MSmits: first 0 = O
MSmits: you can also have a one-hot version
MSmits: with 3 inputs per cell
MSmits: for a total of 27
MSmits: so that would be 0,0,1 or 0,1,0
MSmits: or 1,0, 0
struct: I see
struct: 3*9 possible cells
MSmits: right
MSmits: thats how its done on CG generally, as i understand
struct: 3 possible inputs for each
MSmits: yes
Smelty: yes
jacek:
Smelty:
jacek: welp the way i do usually that would be 6 inputs for each
MSmits: because of who's turn it is?
jacek: yes
MSmits: you could also just have a single input that's on or off cant you?
struct: how does it make it 6 with turn?
MSmits: well, you have 0,0,1,0,0,0 or 0,0,0,0,0,1
MSmits: same state, different players turn
jacek: you can have separate input for turn, yes
MSmits: I prefer the flipping thing personally. It feels so bloated to have twice as many inputs. Might be irrational of me
jacek: but that would require more hidden units/layers to figure out that side to move changes things, especially in zugzwangish games
MSmits: ah ok
jacek: i think in oware flipping would work alright
struct: ah so you have 6 inputs 3 for each player?
MSmits: ttt might be different here, because the two players play a totally different game
jacek: i might test flipping vs doubling. if it works i may double the hidden units for better predictions
MSmits: why not double it anyways?
jacek: size limit
jacek: :unamused:
MSmits: oh, but you have two layers of weights dont you?
MSmits: only the input layer weights are affects
MSmits: affected
jacek: yes. and i have only 1 hidden layer
jacek: so double the weights effectively
MSmits: so from hidden to output stays the same with flipping, right?
jacek: yes
MSmits: is this a much smaller set of weights?
MSmits: oh right, you have very little output
MSmits: so i guess thats the case
MSmits: yeah, you definitely need to flip
MSmits: i am 95% sure of this :)
MSmits: but already rank 1... maybe you need to wait till robo does some new magic
jacek: no motivation though
jacek: yes
MSmits: i think this is a small change in the running of the bot. But you would need to retrain the bot and such.
jacek: but double hidden units means half speed, additional accuracy may not be worth it
MSmits: yes, but even if you dont double, you're doing less calculation arent you?
MSmits: it might just speed up the bot
jacek: calculations would be the same?
MSmits: oh right, because of the zeroes
Smelty: lol
MSmits: Robo explained this
jacek: hello
MSmits: well there is cache efficiency
MSmits: probably small gain there, but still
MSmits: it's funny, if i do the xor maybe 10 times with different random seeds, 1 time it will get stuck at 0,20 cost. That's a local minimum right?
MSmits: so it needs one of them tricks to avoid that
jacek: depending on random weights it may never converge
jacek: like all the outputs would be 0.6666
MSmits: yeah
MSmits: do you ever run into that problem, or are there just so many weights that its never a problem?/
MSmits: the xor example is small
jacek: i only ran into it for xor problem
MSmits: ah ok
jacek: especially with 2 or 3 hidden units
MSmits: yeah that makes it worse
MSmits: mmh should i do the TTT in python or c++. I am not sure which would be best
MSmits: i will eventually be training with python
MSmits: but will be running on CG with C++
jacek: why does it matter. it is easily translatable
MSmits: meh
MSmits: you're right
MSmits: I will do python, make a trinket out of it on trinket.io. Can add some graphics and share more easily
jrke: so after many months i went back to D&B :smiley:
jacek: :scream:
jrke: and discovered my current code in IDE is endgame solver with no bugs but can't solve a game having more than 15 chains under 100 ms
MSmits: yeah jrke i remember that
MSmits: it's quite hard to do an endgame solver that does all endgame boards within 100 ms
MSmits: (per board i mean)
MSmits: mine can do all but 1 in a million I think
MSmits: some are extremely complex
jrke: and i also remember that you can solve one game under 2-3 ms for majority games
jrke: right?
MSmits: yeah more or less
MSmits: and someone discovered a rare bug in the solver. I think it was you
MSmits: didnt fix that yet
jrke: yeah that was me
MSmits: too busy with other stuff
MSmits: thanks again for that, it's the best thing people can do for you on CG
MSmits: help you spot bugs
jrke: and also helping in fixing them
MSmits: well that too
MSmits: my solver is a beast though, no idea where to look. I will check it out when i get back to it and try some more approaches. It's so much weaker than the nr 1 bot
Smelty: Hmmm
MSmits: nr 1 bot plays the nim game better
MSmits: for now, i am focused on NN for a few months at least, maybe longer
jrke: yeah NN is best thing to learn
MSmits: it's fascinating. It does close some doors though. Sometimes I like writing a bot because it requires me to get into a game and understand it
jrke: btw i have an issue with my first NN code
jrke: http://chat.codingame.com/pastebin/68de9c47-d163-43da-b18a-6321acc84f76
jrke: when i set lr = 1
jrke: then weights gets to 'inf' then 'nan'
MSmits: mmh ok
MSmits: I see no activation function
jrke: yeah i removed that
jrke: cause its for sum
jrke: input 7,3 output = 10
jrke: weights get exactly near to 1,1,0
jrke: so a*1+b*1+bias*0=a+b
MSmits: oh, this is a sum NN
jrke: yes
MSmits: how does it learn?/
herrmann: You're diverging, probaby because the lr is too high
herrmann: Then your weights will grow a lot over time and go to inf
jrke: maybe the problem comes in 0,0,0
MSmits: not really
MSmits: that's ignored basically
MSmits: because any weight will be correct
herrmann: Make the lr something like 0.01 and give it a try
MSmits: ohhh
MSmits: you learn with a fraction of the error
MSmits: thats not backpropagation is it?
jrke: yup its error learning
MSmits: ahh ok
MSmits: not gradient descent then.
herrmann: It's still backprop, but with non-exploding updates
MSmits: I dont know how well this is supposed to work
jrke: this works good in lr=.1
herrmann: The best way to find a good starting learning rate for non-adaptive SGDs: https://sgugger.github.io/how-do-you-find-a-good-learning-rate.html
jrke: http://chat.codingame.com/pastebin/22312c4b-bcfc-435c-855a-6680b12e683e
jacek: too big near 1 lr would explode
MSmits: learning rate seems the perfect parameter to just binary search
MSmits: just try a few until you found the best one
MSmits: keep it small at first, because that would just make it learn slow, instead of exploding like jacek says
jrke: hmm
herrmann: There are optimizers like Adam which adapt the lr along the way
jacek: i mean this big lr could lead into inf or nan issues
herrmann: And in practice keep a lr per weight
MSmits: I did 0,5 LR for hexapawn :P
jacek: im simple man, i use just minibatch SGD + momentum and it works
MSmits: worked fine, but then again that was Q-learning and player 2 always wins
jrke: hmm great now i have an idea why it gets 'inf' or 'nan'
jrke: time to sleep
jrke: gn
herrmann: You don't need to binary search for a good lr... usually staring with a good one and having a low-high-low schedule during training goes a long way
MSmits: SGD + momentum, whats that?
MSmits: gn jrke
herrmann: https://d2l.ai/chapter_optimization/lr-scheduler.html
jacek: stochastic gradient descent, the same in that xor example
struct: https://towardsdatascience.com/batch-mini-batch-stochastic-gradient-descent-7a62ecba642a
MSmits: ahh ok
jacek: and you have momentum the same size of your weights, and you update momentum first, it really speeds up the traininng
MSmits: i'm not sure what momentum is in this context
herrmann: Like "inertia" for updates
herrmann: To skip local bumps in the loss surface
herrmann: And Adam is SGD with adaptive momentum
jacek: i may write the example right away
herrmann: There, giving away all the advantages I'd have in these challenges :joy:
MSmits: mmh, I have a feeling the best NN guys know this stuff already herrmann :)
herrmann: Definitely
MSmits: I know :poop: though keep it coming
herrmann: A friend (BrunoFelthes) introduced me to this platform and immediately asked "why don't people just go full AlphaZero?"
herrmann: Then "TotoZero" just appeared
Smelty: Hydrazer im coding rn next time ok
Hydrazer: ok
herrmann: (*I immediately asked)
Smelty: lol
MSmits: herrmann azero has been done in oware over a year ago
MSmits: toto is not the first
MSmits: I think Robo was first with it
jacek: MSmits https://pastebin.com/fsNq5F78
jacek: compare it with previous xor example and see how faster cost drops
MSmits: yay another one :)
MSmits: i'll check it out now
MSmits: yeah drops faster
MSmits: gonna go text compare to see whats different
MSmits: I see mo's and mom's
jacek: mom is lambda, mometum parameter generally in range [0.8,0.99]
MSmits: that's not a large range
jacek: herrmann and people would not go 'full alphazero' due to size limit and/or cpu limit
MSmits: which is why nn were late to arrive here at all
MSmits: let alone azero
herrmann: Not with online training I mean
MSmits: no even just running it, 100k characters is not much
MSmits: but people got good at packing stuff
herrmann: Just skimmed over reCurse's post-mortem, but in that sense
herrmann: Of course, with some preparation up the sleeves
MSmits: for a long time it was thought to be too hard to do NN here. Now, as reCurs e explains, you dont even need the full size
AntiSquid: what is your background with ML herrmann?
Smelty: http://chat.codingame.com/pastebin/6e3c0d03-35bb-4dc5-8d3d-947053387102
Smelty: oop
dbdr: recurs also said that contest was ideal, won't always be the case
Marchete: I still don't see the "easy" to pack
herrmann: I did research in Automated Planning, but nowadays I work with deep learning models and applied AI
Marchete: any little NN takes 80KB to me
AntiSquid: cool stuff HemersonTacon
MSmits: you can put a weight in a single character Marchete
AntiSquid: herrmann (mister man lol)
Marchete: float16 and then unicode?
herrmann: There are Planning competitions too, where *the game* is given as input
jacek: you need a diet to lower the weights
Marchete: that'd be 22KB
MSmits: Marchete yeah more or less, i did not do this myself, but i packed other stuff, like endgame books
Marchete: but you lose quality too
kovi: yep, for multiplayer boardgames its "easy" now but contests has more complex rules, and only 10 days
MSmits: those are integer based
jacek: a little less than 16 bits is more than enough
Marchete: one-hot takes a lot of space
MSmits: people forget though, that you dont need to use a NN to play a full game
Marchete: oware with just a Dense 64 -> 22k parameters
MSmits: even if the game is too complex to make a NN for, just do it partially
Marchete: wth
herrmann: @AntiSquid yes, ancestral family immigration typo probably :joy:
Marchete: I know you can just simulate the eval
MSmits: playing locam? Make a NN to draw cards :)
kovi: msmits, yes...but than you need to spend the same time to solve a pct of the whole problem/space
Marchete: he counts with endgame and such
Marchete: I guess
MSmits: i dunno about time, a smaller problem is easier to fix than a larger one. But NN is gonna take a shtload of time anyways, i would not dare try it in a contest
kovi: for locam we did transfer learning :)
herrmann: Speaking of Planning and how UCT comes up a lot here, I think a lot of you will appreciate this: https://dl.acm.org/doi/10.5555/2900929.2900981
MSmits: kovi is that stealing someone else's draw order?
MSmits: because, then... yes :)
Marchete: transfer learning :D
jacek: umm
AntiSquid: spot on
reCurse: Transfer learning :lmao:
reCurse: Good one
herrmann: (I was at the conference that year and must say Kolobov was speechless at how his highly tuned LRTDP lost to a (also tuned) UCT)
kovi: actually i did my own training...before and after closet...(not nn)
Marchete: I don't know what LRTDP is
MSmits: no idea what LRTDP is
Marchete: also I don't trust most papers
jacek: do you trust rocks more
herrmann: Trust this one
reCurse: Imitation learning might have been more correct :thinking:
AntiSquid: herrmann that link says UCT won, why should we care about LRTDP ?
dbdr: herrmann if LRTDP is iterative deepening, it means you need an eval?
AntiSquid: while a UCT-based planner, PROST, won the contest, an LRTDP-based system, GLUTTON, came in a close second
AntiSquid: -quote
herrmann: LRDTP in finite horizon problems propagates the reward from the end to the initial state
MSmits: dbdr many mcts variants use eval, when the depth is too great
MSmits: perhaps this lrtdp is better at this
dbdr: sure
herrmann: (GLUTTON was his tuned LRTDP)
jacek: where do I pay to get the paper? asking for a friend
reCurse: scihub
herrmann: @dbdr if the state space has loops, LRTDP will keep doing Bellman backups and things converge
MSmits: so, for example oware?
MSmits: though in practice loops take too many turns
MSmits: checkers better
MSmits: very short loops
herrmann: Let me check what oware is about
Lysk: jacek http://aiweb.cs.washington.edu/ai/pubs/kolobov-aaai12.pdf
AntiSquid: i already found the paper for free and doanloded , no weird websites either jacek
reCurse: Whatever you do don't pay the publishers :P Authors get nothing
jacek: phew. who would in their right mind pay for papers
struct: the link he posted had access to pdf
MSmits: :rage:
struct: you only had to click on "publisher site"
MSmits: one time!
AntiSquid: just get unpaywall extension it often finds for you official legal free alternatives so ...
herrmann: Oh, sorry, didn't see the paywall, but it's probably available somewhere else
AntiSquid: i guess some publishers want to make money from free stuff
MSmits: was just linked herrmann
herrmann: Don t pay! :upside_down:
herrmann: But in short: this is for probabilistic domains and from what I've seen most games here have deterministic actions, so, not that immediately applicable
MSmits: ah right
herrmann: But just to illustrate how a simple UCT can go a long way too
jacek: well simulatonous games could be 'probabilistic'
MSmits: well we have thousands of bots here using it :)
jacek: yeah UCT has many more applications than games
HemersonTacon: cool stuff where?! AntiSquad :grin:
herrmann: Yes, but with unknown opponent policies
MSmits: squid
MSmits: he's not a squad
Lysk: pro squad but anti squid
AntiSquid: spell it correctly if you want to ping :P
AntiSquid: well if it's probabilistic maybe it works for fog of war games herrmann
MSmits: yeah
jacek: cool stuff hidden units number vs performance http://www.scholarpedia.org/article/User:Gerald_Tesauro/Proposed/Td-gammon#Performance_Results
MSmits: nice!
reCurse: Hmm, I can't believe I'm asking this, but what's the best fog of war game
herrmann: If it's a (PO)MDP
reCurse: OOC?
jacek: blind chess
reCurse: On CG
jacek: spring challenge with crashed viewer
**jacek leaves quietly
**Smelty leaves quietly
jacek: pacman? wondev woman?
MSmits: ooc is quite good.
MSmits: ooc is the only game where the fog is central to the game
struct: ooc
MSmits: in wondev woman it's mostly a gimmick
MSmits: also in that crystal rush game
reCurse: Oh crystal rush too
reCurse: Hmm
reCurse: Good picks
herrmann: Fog of war is best modelled with partial observability, but keeping algorithms of this kind deciding good things in big state spaces under 100ms is a holy grail
AntiSquid: pacman has fog
MSmits: oh right pacman
reCurse: Pacman looks like a bad game
reCurse: Am I wrong
struct: no
reCurse: I skipped it almost instantly
MSmits: if you want the fog to be important though, then ooc is by far the best
AntiSquid: hanabi has fog, best game with fog
aCat: yeah ooc best with imperfect info
MSmits: reCurse pacman is ok if you're a new player and want to apply BFS and such
reCurse: Yeah OOC looks cool
jacek: and dont forget :notebook: :soccer:
reCurse: I'm curious about handling fog of war in RL
reCurse: Maybe I'll do that next
Smelty: r
jacek: :scream:
YurkovAS: dbdr how many rollouts you have in 2nd turn? and you use duct?
struct: will it work well on ooc?
reCurse: No clue
reCurse: Might not look into it before months anyway
AntiSquid: https://deepmind.com/research/open-source/hanabi-learning-environment (fireworks on CG)
Smelty: what is an underrated bot programming cg game
reCurse: Just food for thought
MSmits: ooc is a weird game, like dots and boxes is weird. Doesnt fit in the usual categories. But that might be what you're looking for
MSmits: clobber also seems interesting if you want more boardgames
reCurse: I'm also still interested into UTTT to handle how to play when you're down
MSmits: down?
reCurse: The whole "you know you lost but how do you still try to win" dilemma
MSmits: ohh that one
jacek: the 1p advantage?
reCurse: There has to be something
jacek: its annoying
MSmits: very annoying
MSmits: I searched forever to find a route for p2 to win. It never seems to exist if you go back far enough
AntiSquid: add steal move one first turn, that will fix it
reCurse: It's not really about fixing it
MSmits: p2 to draw I mean
reCurse: It's almost a philosophical problem
reCurse: The better you are in an imbalanced game
reCurse: The worst you play on the imbalanced side
reCurse: It's puzzling
jacek: all you can do is rank moves and choose the best even if all seem bad
Illedan: Predict points or which time you lose instead of just winning or losing?
reCurse: Time to lose doesn't mean it has more chance to win
struct: create a NN for each side
struct: ez fix
reCurse: Think of those sacrifice pieces uselessly to delay mate in chess
reCurse: Completely useless
Illedan: true
AntiSquid: if lose go for higher branching
MSmits: with minimax and iterative deepening you can play the last best move that wasnt solved as loss, so 1 iteration before solve
reCurse: AntiSquid you're on to something probably
1415495: it depends on what you mean to win when you should lose, the only way I see is to modelize the limitation of the opponent and then try to exploit them
jacek: delay the loss, you can always count the opponent will not see his win
MSmits: ye thats what i meant jacek
kovi: fireworks is weird because it is coop
reCurse: Fenrir true, but let's assume you try to stay 'generalist'
reCurse: There has to be a way to formulate "less chance to lose"
reCurse: I get a bit of the same intuition as to why minimax solving performs better if you go for lower branching first
MSmits: it might also depend on the game. if it is score based, it could be trying to get the highest net score.
reCurse: The something something number
reCurse: Theorem
MSmits: remember our discussion about seeds vs wins in oware
1415495: I tend to think: you try to degrade the opponent (branching factor) or go above it's horizon planning
MSmits: seeds would be better if you've lost
reCurse: Branching sounds like a fantastic factor yes
Lysk: maybe a regression head in the network trying to predict final score and use it when chance to win are all low
reCurse: There are games without final score
reCurse: Like uTTT
reCurse: Doesn't help there
MSmits: not really no, boards won is a bad estimator
reCurse: Or chess
reCurse: etc
PatrickMcGinnisII: https://www.youtube.com/watch?v=KXzNo0vR_dU
Smelty: .
jacek: hmm my learned n-tuple TTT bot wins more games against random bot than the perfect player. i think this is partly because the learned player maximize the traps set for the opponent
jacek: while perfec players see only draws and choose randomly
reCurse: That's part of the dilemma yes
reCurse: There are limitations to perfect play performance
reCurse: It's pretty interesting
reCurse: I started a new training with bugfixes on UTTT, winrate is so abysmal for P2 it's probably worse in the arena for it
1415495: maybe you want something that when lossing: try to choose the branch where a few mistake make you win, so training against an opponent that sometimes chose badly ?
jacek: dont worry, your bot loses as 1p as well
reCurse: Weird flex but ok
jacek: https://www.codingame.com/replay/559280196
jacek: :grin:
MSmits: btw, winrate difference p1 and p2 goes up with better bots
jacek: just like chess. the white advantage is bigger with better players
MSmits: with karliso it's over 90% when he plays vs himself i think
MSmits: for me usually 70-80% at most
1415495: this way: (with a few random bad moves): that create a value that it is not 100% loss, and with a higher and higher value for branch which require a more and more 'perfect' play
reCurse: Hmm
1415495: not sure I am clear
reCurse: I get the idea not sure how to formulate it though
MSmits: this is actually what mcts does with solver
MSmits: with random rollouts
MSmits: even though it's generally much worse, at least you have a score for lost nodes
MSmits: so you can choose the least bad node when you solved a loss
MSmits: also... I dont see the use in uttt reCurse, your NN solves quite late
MSmits: so when you solve it, your opponent sure has
reCurse: UTTT is the only game where I see real value in addressing that problem
MSmits: maybe you dont mean actual solving, just a low NN value score
reCurse: No I didn't mean solving
reCurse: The better you are, the higher your % as P1
MSmits: ah ok, then we're talking much earlier in the game
reCurse: Which leaves almost no value to learn from P2
reCurse: And little knowledge of how to play to swindle the opponent
MSmits: You might consider starting the game with worse positions for p1 in training
reCurse: That doesn't help though
MSmits: i wouldnt know
reCurse: The other idea I have is to give 5x more iterations to P2
Lysk: would making opp values homogeneous on purpose (like the description of what was happening in silver) help?
reCurse: Simulate an horizon
MSmits: hmm who knows, might work
reCurse: I don't know why, I hate uttt, I don't want to get back into it, but that problem fascinates me somehow
MSmits: just be careful about testing vs karliso... that's really a bad test
MSmits: these games are so deterministic
MSmits: keep seeing the same game over and over with you two
1415495: basically you want an 'optimistic' P2, I already saw that in RL but I don't remember seeing paper about the exact issue you want to address
reCurse: It would help if I knew the academic term for my problem
reCurse: It's usually half the battle
reCurse: Branching has limitation, e.g. obvious captures in chess
reCurse: In usefulness
reCurse: Now that I think of it
jacek: you have some love-hate relationship with uttt
reCurse: There is no love involved at all
reCurse: It just bothers me fundamentally that playing better makes you worse
reCurse: There's something missing
MSmits: it's much easier for games solved as a draw
MSmits: like othello, problem doesnt exist there
reCurse: It's like in the spring challenge where the bot would refuse to play because it only saw a lost position
reCurse: Some maps are terrible
jacek: learned helplessness eh
struct: so currently if its losing it doesnt know what to do?
reCurse: It doesn't see the point yeah
reCurse: It never won like that in training
reCurse: So there is no signal to reinforce
MSmits: btw, I think the uttt version where you dont count won boards where noone has 3 in a row, is solved as draw
1415495: reCurse: maybe https://www.microsoft.com/en-us/research/video/computing-mistake-exploiting-strategies-in-very-large-zero-sum-games/ help find the 'name'
MSmits: it's just too easy for p1, to have an extra won board
Lysk: could be a training data problem, too similar to opponents, keeping some replays coming from a regular mcts could help
reCurse: Hmm very interesting abstract
reCurse: Will watch later, thanks
reCurse: Lysk: Yeah I think there needs to be a minimum of 'skill gradation' kept somehow
reCurse: Either by simulating horizons like I was talking about
reCurse: or something else
reCurse: A second network trained against a weaker player could be interesting too maybe
reCurse: If the value gets too low use that one instead
reCurse: shrug
Lysk: so many hyper parameters to tune...
MSmits: GA !
reCurse: I'll be pretty busy so my computer needs company :P
reCurse: Waiting for training runs is so boring anyway
jacek: with summer at the corner?
reCurse: Right, not the best time to run hot
reCurse: I need to move further north :P
AntiSquid: june is in 8 days, still rainy and cold outside, wth
kovi: i like the idea of going against weaker player it may not need nn though...
byteful: kotlin is broken right? since people have been getting 0% with it
reCurse: Broken yes
byteful: is the JVM timing out>
jacek: arent we all
AntiSquid: have your cabin at the foot of a canadian mountain, you can get your gear up with a rail car when things get too warm
reCurse: Fantastic idea
kovi: thx dbdr...yurko pushed me down to 9 few days ago
reCurse: I think I'll tune training to give 5x more iterations to P2
reCurse: Seems like the best in terms of simplicity and expected results
reCurse: Forced balance
MSmits: If you really want to do some good testing, it might help to have some varying strength local opponents, for example, running mcts with different calculation times, maybe a minimax bot in there
moon_invader: something is wrong with the kotlin complier. I can't submit my code in Kotlin. all tests wrongs, but I am sure that it's not the case
YurkovAS: kovi i'm come back, when my duct start win vs classic mcts.
MSmits: as i said, relying on the leaderboard seems bad now, with so few players of similar strength
reCurse: Problem is it's difficult to have a firm grasp on if and how weaker a version is
reCurse: Giving arbitrary more thinking time seems very easy
reCurse: I could even find the correct number of iterations where P2 has 50% wr
MSmits: it's the simplest solution yeah
reCurse: That would be great
MSmits: but jacek and karliso are going to play the same game every time. Well.. jacek is known to have some randomness, not sure what his current version does
reCurse: Just to be clear
jacek: im not sure either
jacek: but i have randomness
reCurse: It's more about addressing this problem
MSmits: yeah but you want to good tests to know you've improved something
MSmits: (in this regard)
reCurse: I'm thinking of forcing randomness on P2 for submit
kovi: so nn imitating karliso can be top3?
MSmits: dont think that works kofi
MSmits: kovi
jacek: kofee
MSmits: he's deterministic in the sense that if someone always plays the same moves, he will only have a few variations, one or two being really common
MSmits: but since all his opponents are different.... how will you imitate him
reCurse: Good luck getting any data with CG crippling plays
reCurse: I'm still mildly upset I can't test UTTT easily now
MSmits: it's funny, when karliso loses to recurse, he loses usually at ply 25 because he forces a teccles move. If he didn't, he's winning at that point
MSmits: the teccles move is losing
reCurse: I really should just do ooc instead
reCurse: ugh
jacek: so many choices
MSmits: do whats fun/motivates you
MSmits: uttt is not in that category :P
reCurse: Sunken costs
MSmits: the only advantage that i can see is that you know the game well
reCurse: If I didn't find glaring bugs in the challenge
jacek: sunken? then this is ooc
reCurse: But since I did, now I want to know what happens with uttt
reCurse: And the idiot trap triggered
MSmits: btw, if anyone is interested. It's ply 28 here: https://www.codingame.com/replay/533570388 karliso plays teccles and loses, he was winning before that
MSmits: (I solved)
MSmits: it's just a bad heuristic
MSmits: so late in the game
MSmits: this game repeats a lot
reCurse: By the way I realized how amazing it is to have a game with random starts
reCurse: So much easier to have good enough variety for all kinds of reasons
reCurse: Local testing, training, etc
reCurse: Stupid board games
MSmits: I agree
MSmits: Onitama would be cool maybe
MSmits: also a challenge with the cards
jacek: did you know? we have chess960 for this reason
MSmits: :grin:
reCurse: It's just something else to see the benefits in practice
jacek: hmm during training in onitama p1 has 70% winrate
struct: amazons is simple enough
struct: jacek NN is waiting
reCurse: Onitama looks interesting in theory but I can't bring myself to like watching it
MSmits: jacek I am guessing this varies wildly with the particular start
MSmits: possibly more starts have p1 advantage
reCurse: OOC though, dealing with unknowns is pretty interesting
jacek: i have random starts, but statistically p1 is favored anyway
MSmits: a disadvantage to onitama is that every start is solvable quite easily, just not within CG timeframes
reCurse: Oh is it now
jacek: huh?
MSmits: yes
reCurse: That's a shame
MSmits: tric trac solved some within 100 ms
MSmits: and they were excluded
jacek: there were some 6 plies forced wins
MSmits: but i am guessing the others take at most an hour or so
jacek: but i tried most for 8 plies and i didnt find any
MSmits: maybe a few hundred billion gamestates possible, small statespace
MSmits: no, you may need an hour or so in some cases. Tric trac is pretty good with minimax
jacek: still there are 131k starts
MSmits: yeah in practice it is no problem
MSmits: same with bandas btw, also quite solvable for every board
MSmits: just not in 1 second
MSmits: probably can do every board within an hour
UnknownStranger28: i thought this was going to be just creating games
MSmits: no, you can create games here, but it's mostly about writing bots to play games
jacek: creating bots for the games
MSmits: we are too lazy to play games, so we make the computer play them
UnknownStranger28: do they have one for the dinosaur game
MSmits: are you talking about the google jumping t-rex
MSmits: dont know tbh
UnknownStranger28: i want to create a ai for that
MSmits: i actually had a student do that
jacek: MSmits what about this one https://www.codingame.com/share-replay/559292579
MSmits: there's examples for that, you can find
MSmits: does that one happen a lot jacek?
UnknownStranger28: wait your a teacher
MSmits: I dont have my meta mcts running. Let me dig it upo
jacek: no, just i won as p2 and wanted to show off
MSmits: ohh lol
MSmits: well done :)
MSmits: yes UnknownStranger28
UnknownStranger28: wait for a school
KelvinAndHubbles: what else are teachers for?
MSmits: yeah physics and computer science
MSmits: mostly 15-19 yr olds
PatrickMcGinnisII: Only be afraid of teachers who own fish farms ... fish food is life
MSmits: give a man a fish and he eats for a day
MSmits: teach a man to fish...
Lysk: give him a fish farm and he will destroy the environment
MSmits: right
PatrickMcGinnisII: oh, and cat-lady english teachers ... my GF..heh
jacek: cat lady? :thinking:
kovi: lysk: you mean recurse shouldnt share his nn fw?
therealbeef: give a man a fire and he will be warm for a day. set a man on fire and he will be warm for the rest of his life
Lysk: kovi, I was actually talking about fish in my last comment
PatrickMcGinnisII: I was referring to feeding people to the fish...so ... probably good for the environ
reCurse: ?
PatrickMcGinnisII: young people run from teachers... don't have to unless they own a fish farm
jacek: ?
PatrickMcGinnisII: smh, i knew a physicist who owned a fish farm ... scary dude
KelvinAndHubbles: What he'd do? Chuck the fish and calculate velocity?
reCurse: As long as it's not a pig farm
PatrickMcGinnisII: like old mob movie "feed 'em tot he fishies"
PatrickMcGinnisII: I'm sorry I'm being esoteric
Lysk: MSmits, in bandas do you get very high reading time of the inputs (I start a chrono upon reading the first line and measuring time after reading the last line sometimes gives me 133ms)?
MSmits: Lysk do you start after 1st line?
MSmits: or before?
Lysk: before
MSmits: do it after
MSmits: otherwise you include server time
Lysk: kk, let me check
MSmits: and opponent time
MSmits: try to think about what the while loop does
MSmits: you output a move
MSmits: then it goes back to the beginning of the loop and tries to read input
MSmits: but because you do it before the input, you start the measurement immediately after output
MSmits: while you are waiting for opponent and server
MSmits: thats why you do it after reading 1st input line
MSmits: or last... i usually do last, doesnt seem to matter
therealbeef: Snatch :-)
Lysk: noobish mistake, got it , thank you, now I only have my code bugs to account for
reCurse: Thanks therealbeef, was concerned no one got it :P
jacek: oh?
MSmits: btw, jacek, still analysing that replay of yours
jacek: oO
MSmits: I think karliso should have taken the won board at ply 22, but even then the WR is low after that, so mistake might be even earlier
MSmits: I keep hoping one of these days someone shows me a game where p2 can do a forced draw
MSmits: maybe this is it :)
PatrickMcGinnisII: reCurse i got it, scary AF too
MSmits: I have reasonable confidence karliso was winning until ply 20 where he played a bad move. Your bot must be really strong now jacek, to capitalize on a single mistake early on
jacek: or randomness kicked in
jacek: see how the eval still is low
MSmits: http://chat.codingame.com/pastebin/ab64460f-f2c4-4cf5-9e4d-a44e4f0a5061
MSmits: 0 3 is board 0 square 3. Thats what he played, but the other move seems much better
jacek: you have mirrored board
MSmits: yeah, i always rotate to lowest representation, its a bit annoying
MSmits: i should fix that
jacek: a bit
jacek: pun intented?
MSmits: no, but i'll take it
MSmits: running 10 games at once is sooo nice though
MSmits: this would have taken an hour otherwise
Fougayrre: Anyone having problem with kotlin currently?
MSmits: broken
MSmits: they'll fix it
MSmits: eventually...
Fougayrre: Oh
Fougayrre: :(
jacek: on monday
jacek: at best
MSmits: this might be a great opportunity to learn a new language
Fougayrre: :D
Fougayrre: Just wanted to prove to a friend I was better for a quick game :(
Ryunos: but you're not.
Ryunos: (hi i'm "a friend")
MSmits: oh, he's gonna think you're making excuses Fougayrre :P
jacek: oO
Ryunos: since we're both doing it in kotlin...
MSmits: oh nvm then :0
Fougayrre: Time to get the old python out
Ryunos: we were just bugging, reading the python code of the guys who were first and not understanding why our code wouldn't pass
jacek: MSmits another one https://www.codingame.com/replay/559300230 well at this point i can somewhat win with p2 against him
jacek: w00t? whos thies reLu guy
reLu: My test account
jacek: canadian :thinking:
reCurse: Woops wrong window
jacek: ban
reCurse: Well batches don't work anymore
reCurse: So sue me
reCurse: Seems better at least
reCurse: I'd be mildly upset if fixing bugs made things worse
jacek: is this with p2 5x times
reCurse: No
reCurse: Just the challenge version
reCurse: With bug fixes
reCurse: And improvements
reCurse: And medium length training
reCurse: There's room for more refinement I think
MSmits: http://chat.codingame.com/pastebin/3c30d15b-0ea3-4611-9f23-e1b270c1b020
MSmits: karliso made mistake at pl 32, he could have won if he made the right move there, i solved it
MSmits: you had already lost when you took the first miniboard
MSmits: but he didnt see it, so... good one :)
jacek: now checkout this reLu guy
struct: Ive heard of that word before
MSmits: i wanna get back to solving connect 4 9 x 7 :P
Lachrymosa: Hey CG, a friend is asking me for advice/help on starting to learn Python. When I learned it I used code academy, but thats when they were free. Do you all have any free beginner courses you'd recommend?
struct: https://wiki.python.org/moin/BeginnersGuide/Programmers
Lachrymosa: :thumbsup_tone1:
MSmits: Lachrymosa I dont think python3 was ever free on codecademy, i think their python2 course was
MSmits: might be mistaken though
Lachrymosa: Thats probably true cause I learned with 2
MSmits: ah ok
jacek: whats the different except you need () for print :v
MSmits: there's some other small differences like that, but i bet when you're using advanced stuff you will notice many more
Lachrymosa: Theres quite a bit lol, but its all minor
jacek: that ands bytes/unicode string stuff
MSmits: at work i use a lot of trinket.io. We embed it into a our learning environment (moodle) and make exercises with it
MSmits: thats how we teach python
jacek: oh my, will karliso go down
MSmits: recurs e always had 50+ % wr vs karliso
Scarfield: Lachrymosa https://www.youtube.com/playlist?list=PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU a channel full of python tutorial/explanation etc
MSmits: but it's mostly RPS i think. Karliso had better wr overall
reCurse: You're reading it wrong
reCurse: That new bot is doing terrible vs him
reCurse: It's always been finnicky finding a good version for him anyway
MSmits: yes, that makes sense
reCurse: But at least on all other aspects it's doing better I think
reCurse: So no regressions yay
reCurse: Much happier to have something without all the hacks of the previous one
MSmits: I would ignore the results vs karliso
jacek: not even logistic regression? nice
reCurse: I'll submit a random version next
reCurse: See what happens
MSmits: cool
reCurse: And let the training run tonight probably
reCurse: Maybe there's more elo to squeeze
MSmits: at least that gives you some confidence vs karliso, if one of you does some random
struct: elo gains on sf looking hard to get
struct: https://m.nextchessmove.com/dev-builds
reCurse: I'm fortunately nowhere near as optimal
reCurse: So elo gains are still achievable overnight
jacek: welp they have problem passing new nets
struct: they uodated their net I think
struct: updated*
jacek: recently yeah
struct: https://github.com/official-stockfish/Stockfish/pull/3474
jacek: but even if the new net is better, the search params are optimized for the old one
struct: I see
jacek: so not only train new net, but optimize other things around it. more resources are required
reCurse: As expected random openings are garbage
jacek: random? as in not center?
reCurse: Random as in use visit count as stochastic policy
reCurse: For first few moves
jacek: kids these days with their 'policy'
Smelty: e
Zenoscave: "lash them until they are. there is no transgression darker" A small snippet of some text generated based of the works of ayn rand.
Zenoscave: "Scarcely any hesitation in acceding to the last. Recovering himself, however shortly, he turned to her"
And one from pride and prejudice based text
Zenoscave: I think the model is overfit. Those are too close to actual lines
Lysk: can you have samples at the end of an epoch (or n steps) to see the changes?
Zenoscave: No it's just a stochastic model of (part-of-speech, word) tuples
Zenoscave: Perhaps it just doesn't have enough data to show variance in data
B-612: is anybody know haskell
B-612: i got a question for recursive function and i couldnt solve it
B-612: anybody can help ?
B-612: its looks like easy to solve with for loops but idn how to make this with recursive functions
B-612: btw problem is maze problem
Greg_3141: There might already be a builtin function for your specific need. If not, you can rewrite a 'for' loop as a recursive function which takes the iterator as an argument
B-612: okey I'm gonna try
Riku5720: hello
KelvinAndHubbles: is it normal that theres like 5000 people in the fall challenge wood league and like 2.5k not in wood league?
KelvinAndHubbles: I guess it's just a lot of people who start, but don't really want to start, but still
KelvinAndHubbles: Seems wacked
Westicles: Sometimes it is a one-liner to get out of wood, sometimes you have to build a framework first
Riku5720: is "statement" on reviews new?
Smelty: hi mr.fruit
p0int3r: 1337
p0int3r: hi
p0int3r: cool welcome
shitizen: Mourning Yuan Longping:sob:
KelvinAndHubbles: I like how the Nurikabe puzzle, one of the hardest puzzles with only 4 solves total, gives an xp reward of 50, equal to that of a single easy puzzle
KelvinAndHubbles: not complaining though, really fun puzzle to try
NotSureWhyThisWorks: should you read post mortems from previous contests while you are doing the contest?
NotSureWhyThisWorks: it feels like cheating
BlackDereker: why people use C/C++/Java/C# for the shortest mode?
BlackDereker: it's like 200 characters just for the base code
Riku5720: cause they used to it
Riku5720: python is easiest imo
Riku5720: for shortest
BlackDereker: I use python
Riku5720: same
BlackDereker: but I think Ruby can be shorter in some cases
Riku5720: I saw someone win with perl
BlackDereker: this website should cut the base code
Riku5720: nah u can edit it if u need to
BlackDereker: but C doesn't work without its main function
BlackDereker: samething with Java and it's Solution class with the main function
Riku5720: o
Westicles: if enough people care the language will evolve to please them
BlackDereker: I'm not talking about the language, I'm talking about the website stripping the base code from the character count
Westicles: I think the last release of C# needs less overhead?