Chat:World/2021-05-22

From CG community
Jump to navigation Jump to search

Westicles: ANEO is being deleted anyhow

Smelty: oh.

NguyenThanhTam: vietnamses no1

Default avatar.png dulguuncodes: hello world

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?

https://twitch.tv/senamonry

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

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

Default avatar.png Voudrais: yo whats up

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

Default avatar.png Voudrais: how are you?

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

Default avatar.png adila: hi, how can I see all the puzzles i did

Default avatar.png adila: anyone there?

aCat: you can only see puzzles you did at each difficulty: easy, medium etc

aCat: hey are shown at the bottom

Thyl: happy Birdsday

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

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

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

Default avatar.png IronEngineer: just curious on the use of Rust in the workfield. Heard good things, not sure if its worth the time

Default avatar.png Srijandev: :grimacing:

multii: hi

Default avatar.png Armman: hello

multii: sup

multii: lol

Default avatar.png Armman: lol

-AnOnYmOuS-: hi

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

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

Default avatar.png DeAdPOOL15019: hi?

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

Default avatar.png codingmasterN.1-: temperature의 현재 코딩 언어가 뭐입니까?

Default avatar.png codingmasterN.1-: What is the current coding language for temperature?

struct: you can choose any?

Default avatar.png codingmasterN.1-: I don't know

jacek: abode editor you can choose any language

jacek: programming language*

Default avatar.png demnaty: which best source to practice a c language

Default avatar.png demnaty: descriptor and types and other stuff ...

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


Default avatar.png demnaty: anything

Golden_Pheonix: anyone can help me

Golden_Pheonix: yes, to check the printed word is as what i excepted

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

Default avatar.png demnaty: you want to print for debugging

Default avatar.png demnaty: or just simple print

Golden_Pheonix: now, i want to write the test case to check whether the printed text is "apple"

Golden_Pheonix: simple print

Default avatar.png demnaty: print("Hello World")

Golden_Pheonix: not syntax for print

Golden_Pheonix: how to check the printed text is "Hello World" or not

Riku5720: morning

Default avatar.png demnaty: ah, I understand now

Default avatar.png demnaty: https://stackoverflow.com/questions/3762881/how-do-i-check-if-stdin-has-some-data

geppoz: Riku5720 it depends

geppoz: :D

Default avatar.png demnaty: i think that's one it can help you

Default avatar.png demnaty: the idea is to read from stdin

Golden_Pheonix: ok thank you

Golden_Pheonix: i will check that

Default avatar.png demnaty: check this one also https://www.askpython.com/python/python-stdin-stdout-stderr

Default avatar.png demnaty: you're welcome

Golden_Pheonix: ok

Default avatar.png CrealStudio: hi

Default avatar.png CrealStudio: im new

geppoz: hi

Default avatar.png CrealStudio: honestly

Default avatar.png CrealStudio: I have no idea what this stuff is

Default avatar.png CrealStudio: I just wanna imorove my skills

Default avatar.png CrealStudio: Which language do you use?

Default avatar.png demnaty: i am using c

Default avatar.png CrealStudio: i use lua

Default avatar.png demnaty: i have no idea about lua

Default avatar.png demnaty: this is the first time i hear this name hhh

Riku5720: I used to use lua I only just started using python

Default avatar.png CrealStudio: why did u switch

Default avatar.png CrealStudio: from lua

jacek: where lua is used seriously?

Default avatar.png CrealStudio: umm

Default avatar.png CrealStudio: do u know roblox or core

Default avatar.png CrealStudio: and itch.io was made with lua btw

jacek: oh!

Default avatar.png CrealStudio: it also has a famous 2d game framework called love2d

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

Default avatar.png WanderingG37: whad up

Default avatar.png IanPoggers: I keep passing all the test cases, but getting 0% score

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

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

Default avatar.png idan_idan: JFB what?

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

Default avatar.png zonbita: http://chat.codingame.com/pastebin/79eebc03-d555-4dca-a377-3cd61e3d5b77

struct: you are fast

Default avatar.png zonbita: wtf what question

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

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

Default avatar.png zonbita: when is supporter online?

struct: tech support?

Default avatar.png zonbita: yes

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?

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

Default avatar.png zonbita: not mistake for me

MSmits: how do you know

Default avatar.png zonbita: using library and main, class

MSmits: show the code that doesnt work

Default avatar.png zonbita: if dont have it that not run

MSmits: just paste it here

Default avatar.png zonbita: yeah

Default avatar.png zonbita: http://chat.codingame.com/pastebin/43d0a2d1-9aba-4486-81a6-54484be13c33

Default avatar.png zonbita: 620 character for declare

MSmits: what is the output?

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

Default avatar.png zonbita: yes

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

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

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

Default avatar.png zonbita: yaya

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

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

Default avatar.png zonbita: see him in clash

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

Default avatar.png zonbita: the hell

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"겆푪䟨킎췎ᇘ㘰"

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

Default avatar.png boiifyoudont: hello

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?

Default avatar.png Ahmedk-n: free_palastine


Default avatar.png Ahmedk-n: free_palastine


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?

Default avatar.png boiifyoudont: .

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

Default avatar.png elisaado: hi

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

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

Default avatar.png UnknownStranger28: do they have one for the dinosaur game

MSmits: are you talking about the google jumping t-rex

Default avatar.png UnknownStranger28: yeah

MSmits: dont know tbh

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

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

Default avatar.png UnknownStranger28: wow

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

Default avatar.png MrFruit: ?

Default avatar.png MrFruit: What does that mean?

Smelty: hi mr.fruit

p0int3r: 1337

Default avatar.png tebby: hello

p0int3r: hi

Default avatar.png tebby: me new

p0int3r: cool welcome

Default avatar.png tebby: i need tips on coding

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

Default avatar.png NotSureWhyThisWorks: should you read post mortems from previous contests while you are doing the contest?

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