Chat:World/2022-07-08

From CG community
Jump to navigation Jump to search

struct: hi

eulerscheZahl: good morning

DaffarelAdyadmaWinuradmaja: morning

DanialK: hello

PatrickMcGinnisII: finally gonna submit this thing again after so many months...or is it years? https://www.codingame.com/replay/650156857

PatrickMcGinnisII: kewl, promoted to silver

struct: grats

PatrickMcGinnisII: over 900 in silver, omg

PatrickMcGinnisII: ok, rank 506 ... from over 1.4k in rank. I'll take it ... for now

Default avatar.png Mr_Zhao-xin: For the first time, who can help me:smile_cat:

jacek: huh

Default avatar.png Mr_Zhao-xin: don‘t huh, I‘m, rookie Xiaobai

Default avatar.png Mr_Zhao-xin: Is there anything you can refer to?

Alec801: :eye::lips::eye:

Default avatar.png Mr_Zhao-xin: ah, algorithms, games, I thought it was Js

derjack: it is many languages. python, java, c++..

Default avatar.png Mr_Zhao-xin: yes,l see

Default avatar.png VictorVale: yo

Default avatar.png Mr_Zhao-xin: why can't I set the PNG format of upload avatar? What format does it support?

jacek: it supports PNG. :thinking:

Default avatar.png Mr_Zhao-xin: I choose PNG image, but it prompts unsupported file

Default avatar.png Mr_Zhao-xin: why?:sweat:

jacek: too big?

Default avatar.png Mr_Zhao-xin: I don't know. my picture is only 12.4kb

jacek: :shrug_tone1:

Default avatar.png Mr_Zhao-xin: Well, pictures above 2m are OK:scream_cat:

jacek: is it really png

Default avatar.png Mr_Zhao-xin: I chose png

Default avatar.png Mr_Zhao-xin: forget it, continue to learn Vue project, and stop fishing

TimeEngineer: Maybe you can try another image :thinking: and see if it works

Default avatar.png Mr_Zhao-xin: I've tried many, but I can't. It's estimated that the file is too small

TimeEngineer: Scale it ?

Default avatar.png Mr_Zhao-xin: By the way, how big are the avatars you uploaded?

Default avatar.png Aldoggen: about 400 by 400

TimeEngineer: 185x185 14.4kB

Default avatar.png Mr_Zhao-xin: Mine is 500x500 12.1kb why not :sob:

jacek: does imgur.com accept it?

Default avatar.png Mr_Zhao-xin: I uploaded a 2.61mb image, and the personal settings are displayed. Is there an audit?

DrunkeyCPP: in ruby: eval "010+2" = 10

DrunkeyCPP: could someone explain me why?

Default avatar.png Aldoggen: 010 probably evaluates to octal

Default avatar.png Aldoggen: so it would be 8

Default avatar.png Aldoggen: idk tho

Ayza: yea it's what you said

j4at: yeah if a number starts with 0 then it gets evaluated to octal

DrunkeyCPP: oh I see, thanks

pluieciel: http://chat.codingame.com/pastebin/0507296d-3ea7-43c6-9a7d-73fad88cebb4

BlaiseEbuth: :think:

pluieciel: Hi, I have a question. When we need to search for a path BFS/DFS from Start to End, what is the difference between begin from Start and begin from End. What should I google to find something related? Thanks a lot

DrunkeyCPP: well one may take more time than the other depending how you built your graph

MSmits: plutieciel you can have multiple ends or multiple starts but not both

MSmits: pluieciel

MSmits: so if you have 1 start, you can have multiple ends

MSmits: or 1 end, with multiple starts

MSmits: it just finds the closest one

pluieciel: if i am sure there is only one Start and one End

pluieciel: fyi, i am doing The Fall

MSmits: then it is like DrunkeyCPP said. If for example., the start has an enormous amount of branching, starting there is slower

MSmits: because you're going in all directionds at once

MSmits: just to be clear, i never did anything other than starting at the start. Didnt even consider starting at the end

Default avatar.png Mr_Zhao-xin: today is historic moment?

jacek: MSmits depends if you start from opening books or ending books

MSmits: lol

MSmits: btw, I now have versions that beat my old uttt bot 55% but are worse on the leaderboard (overfitted :( )

MSmits: gonna need to put some random in old bot and new bot

MSmits: I'm sure the teccles heuristic doesnt help with this either

MSmits: same first 20 moves every time

MSmits: well for p1 anyways

jacek: yeah it sucks when it overfits

jacek: i have locally c4 version that beat my bot 80% but its much worse in leaderboard

MSmits: yeah, i underestimated the overfitting that is possible in uttt

MSmits: probably because of the heuristics

jacek: thats why i kept different versions of bots for green circle

MSmits: smart

jacek: one of early attempts https://i.imgur.com/IxDRaQf.png

jacek: blue one is vs random and red one is vs 1st action

MSmits: ohh ok

jacek: you can winrate drops to below 20% even while it beats the stronger bots

MSmits: yeah

jacek: more stable learning https://i.imgur.com/bEYrN8c.png

MSmits: what did you do differently with that one?

jacek: bigger model and better gamma parameter

MSmits: ah ok

Default avatar.png User_xin: I can't open it. Maybe my Google should decorate something

jacek: i have several such graphs each for some different hyperparameters

MSmits: right, that helps

TimeEngineer: jacek, is that normal my dqn can't reach 90% draw against himself with eps = 0.1 ? (Tic Tac Toe)

jacek: helps because my q-learning implementation sucks and was 1-core only. so i ran several tests in parallel

Default avatar.png User_xin: mogul?

jacek: could be. personally i never did dqn for TTT but i read it can be quite messy

jacek: well, i did q-table and it worked perfectly

TimeEngineer: :thinking:

MSmits: mmh you just put all states in a table?

MSmits: that works, but is a bit trivial :)

MSmits: I guess it may give better results than minimax though

jacek: quick search https://the-mvm.github.io/deep-q-learning-tic-tac-toe.html and https://medium.com/@carsten.friedrich/part-4-neural-network-q-learning-a-tic-tac-toe-player-that-learns-kind-of-2090ca4798d

TimeEngineer: Yeah, if I need a proper solution, I prefer minmax

MSmits: yeah but minimax doesnt deal with suboptimal players very well

MSmits: it will have more draws

jacek: they cant achieve perfection despite big models

jacek: yeah my 1-ply ntuple has more wins against random than the perfect player against random

jacek: https://github.com/jdermont/tictactoe-ntuple

jacek: simply because it chooses center at the beginning which leads to more losing states for random players

MSmits: ah yes

MSmits: not vs human btw

MSmits: humans tend to memorize how to counter center start

MSmits: so randomly starting as p1 is good

TimeEngineer: Maybe a random among the best move

MSmits: thats what i usually do

MSmits: starting moves for p1 are all solved as draw

TimeEngineer: http://chat.codingame.com/pastebin/9c9b183d-7be7-43a1-911d-724718d13a65

MSmits: so thats basically randoming 1st move

TimeEngineer: wut

TimeEngineer: http://chat.codingame.com/pastebin/62114c2a-e6ad-44f4-b94b-fe6f89831518

TimeEngineer: Ok ._.

BlaiseEbuth: :popcorn:

jacek: i totally agree with whats written there

Default avatar.png User_xin: well

Default avatar.png User_xin: Off duty, everyone

jacek: oO

Default avatar.png User_xin: The weekend begins

jacek: :tada:

jacek: time to deploy into prod

BlaiseEbuth: No more chat

MSmits: whwn?

MSmits: when

TimeEngineer: Thanks jacek and MSmits

MSmits: for?

BlaiseEbuth: They said "next week" last week, so today. Or it's again reported...

TimeEngineer: For the explanation

MSmits: oh ok np

jacek: maybe french week is different

Default avatar.png User_xin: lol

MSmits: could be they have a siesta like Spanish people, only it's the whole week

MSmits: this is my working theory

Default avatar.png User_xin: france: are you polite?

Default avatar.png Aldoggen: in belgium we call this vacation

BlaiseEbuth: Perhaps in Montpellier :thinking:

MSmits: Pfft die Belgen, altijd op vakantie

Default avatar.png Aldoggen: ik wist dat je een nederlander was ;)

MSmits: hehe lets stop

Default avatar.png Aldoggen: okay, back to english

MSmits: or the mods tick off

BlaiseEbuth: First warning MSmits

Default avatar.png Aldoggen: yep, I was thinking it too

MSmits: :P

Default avatar.png Aldoggen: you have no power here BlaiseEbuth

BlaiseEbuth: No more...

Default avatar.png User_xin: Can I speak Chinese??

Default avatar.png Aldoggen: yes, but not in this chat lol

MSmits: how do you know he can?

MSmits: I can't

Default avatar.png Aldoggen: hehe :)

Default avatar.png User_xin: 周末到了

5DN1L: User_xin use #cn channel for Chinese please

Default avatar.png User_xin: is the weekend is here

Default avatar.png User_xin: i Know

Default avatar.png User_xin: goodbye, everyone. see you next week

Default avatar.png Afraaz1: for the easy rock paper scissor lizzard spock challenge

Default avatar.png Afraaz1: is there a way to work out who wins without lots of if statements?>

MSmits: nope

MSmits: well you can do a lookup

MSmits: put the information in an array[5][5]

Default avatar.png Aldoggen: you could identify each of the things with a number mod 5

MSmits: right

Default avatar.png afstydfb: yo

Default avatar.png afstydfb: i need help

Default avatar.png afstydfb: im stuck on the space ship thing

Default avatar.png Aldoggen: but I did it with some if statements

Default avatar.png afstydfb: the code doesnt work

Default avatar.png afstydfb: it literally doesnt

Default avatar.png afstydfb: help pls

Default avatar.png afstydfb: send help pls

Default avatar.png Aldoggen: what error does it give?

Default avatar.png afstydfb: one sec

**BlaiseEbuth send help.

Default avatar.png afstydfb: Timeout: the program did not provide 1 input lines in due time...

Default avatar.png **Aldoggen sends flowers

Default avatar.png afstydfb: or

Default avatar.png afstydfb: attempt to concatenate a nil value (global 'nextCheckpoint') at /tmp/Answer. on line 25 at in main chunk. on line 25 at in ?. on line 0

Default avatar.png afstydfb: Thats It

Default avatar.png afstydfb: I cant

Default avatar.png afstydfb: fix it

Default avatar.png Aldoggen: afstydfb first error means your program runs slow

Default avatar.png afstydfb: i use lua btw

Default avatar.png Aldoggen: maybe you have an infinite loop

MSmits: or maybe he uses lua :P

Default avatar.png afstydfb: hgow

Default avatar.png Aldoggen: hehe :)

MSmits: j/k

Default avatar.png afstydfb: lua is ez for me but yes

Default avatar.png afstydfb: this one is hard

MSmits: puzzles should work in any language

Default avatar.png afstydfb: idk why

derjack: mad pod racing?

Default avatar.png afstydfb: right

Default avatar.png afstydfb: YES

Default avatar.png afstydfb: map pod racing

Default avatar.png afstydfb: lua landuage

Default avatar.png afstydfb: :grimacing:

Default avatar.png Aldoggen: so nextCheckpoint is nil

Default avatar.png Aldoggen: hmm

Default avatar.png afstydfb: can i share this

derjack: huh? is this default code?

Default avatar.png Aldoggen: was your pod almost at the end?

5DN1L: should be something like nextCheckpointX. nextCheckpointY?

Default avatar.png Aldoggen: ah right

Default avatar.png afstydfb: wrong

Default avatar.png afstydfb: i tried that earlier

5DN1L: what's nextCheckpoint

Default avatar.png Aldoggen: uninstantiated variables are probably nil

Default avatar.png Aldoggen: well rip

Default avatar.png afstydfb: should i try add more checkpoints?

5DN1L: we don't know what nextCheckpoint holds in your code

Default avatar.png afstydfb: hm

Default avatar.png afstydfb: ok

5DN1L: we can't advise based on your description so far

Default avatar.png afstydfb: wait

Default avatar.png afstydfb: ill try sum

Default avatar.png afstydfb: YES

Default avatar.png afstydfb: the pod moves to checkpoint 3

5DN1L: If you're in Wood 3, you just have to amend the line of code where you print stuff

Default avatar.png afstydfb: but then flies over

5DN1L: shouldn't be necessary to change anything else

Default avatar.png afstydfb: how can i share replays

Default avatar.png afstydfb: i got the code

derjack: there is share icon under the replay screen

Default avatar.png afstydfb: but it flies over ther check point

derjack: you can share code using pastebin.com

Default avatar.png afstydfb: k

Default avatar.png afstydfb: sorry guys i gtg

Default avatar.png afstydfb: but i think i fixed the code

Default avatar.png afstydfb: so yea

Default avatar.png afstydfb: cya

derjack: :tada:

NglQ: Guys, I'd like to ask something to you: at the beginning when I signed up to this platform there used to be a button called "get a job". Now I cannot find it anywhere. Some of you guys knows what happened?

5DN1L: removed

NglQ: Why?

derjack: everyone got a job

5DN1L: 🎉

NglQ: @5DN1L I'm serious why did you removed it?

5DN1L: I didn't remove it

5DN1L: I'm not CG staff

NglQ: OK

NglQ: So you don't know why?

5DN1L: i was searching

5DN1L: i found the reason told by Thibaud in Discord

5DN1L: 29/03/2022 "this service is going to end very soon, as we've decided to shut it down. "

NglQ: Thank you

5DN1L: np

BlaiseEbuth: It's not a reason... :thinking:

5DN1L: ending the service is a reason for removing the button

5DN1L: they could also have said for asethetic reason :shrug:

BlaiseEbuth: Yeah...

Lachrymosa: H O W D A R E

derjack: :upside_down:

MSmits: I turned off teccles heuristic and added 1% randomness to my best bot and now evalbot has 75% WR against it...

MSmits: not sure if testing like this is better :P

Lachrymosa: what game?

MSmits: uttt

Lachrymosa: Man, I tried my hand at that one. I still struggle with simulation and state evaluation for MM and similar algos

MSmits: state evaluation is hard in uttt

MSmits: but simulation is a safe option as long as you have no bugs

derjack: 1% randomness?

derjack: 1% to make totally random move?

MSmits: no add max 0.01 to value of move

MSmits: tiny randomness

MSmits: but if i look at some early game output it's like this:

MSmits: move 7 6 value: 0.329956 visits: 7968 [-1,1] move 7 8 value: 0.326269 visits: 7128 [-1,1] move 8 6 value: 0.322324 visit

MSmits: so 0.01 could do the trick

derjack: youre addin that during final move selection?

MSmits: yes

MSmits: it plays worse, so i guess it worked

MSmits: losing the teccles heuristic may have hurt more though

MSmits: ohh I have an diea

MSmits: idea

MSmits: maybe I should give my best bot more calc time

derjack: you have the same time or iterations?

MSmits: time

MSmits: gives a bit more randomness than iterations does

derjack: if you use xorshift make sure your seed isnt 0...

MSmits: it's not =)

Lachrymosa: Is there a way to see a "Last logged in" stat on a user?

5DN1L: I guess not. You may try checking out their profile on the forum, but that's correct only if they visit the forum when they last log in

Lachrymosa: I just miss SamSi and wish they'd log on sometime. Haven't seen them in like 5-6 years now though

5DN1L: ah I remember they created some puzzles here

struct: derjack do you use normal UCB1 for your NN MCTS?

jacek: yes

jacek: or jacekmax

MSmits: might be worth it to use other formulas. There are better ones but they are much more expensive. With the low number of rollouts that might not be a problem

MSmits: Thomsen sampling is one

jacek: i havent investigated those

jacek: well i was reading about them when i used non-nn mcts

jacek: since nn stuff is expensive anyway, why not try

MSmits: yeah

Default avatar.png krishna636: krishna636 06:42ᴾᴹ hi guys, is there any exercise for learning java Builder

MSmits: I dont think so

MSmits: not here

Default avatar.png krishna636: ok thanks!

jacek: builder pattern?

MSmits: mostly puzzles are not aimed at learning the basics. They are mostly aimed at using what you know and becoming better at it

Default avatar.png krishna636: yeah builder pattern

MSmits: they are also language-agnostic. You dont learn specific language features here

Default avatar.png krishna636: I saw somewhere code like new Class.Builder().setVariable() like this

jacek: puzzles here generally dont teach you about programming patterns

MSmits: they do motivate you to look for them elsewhere

Default avatar.png krishna636: hmm got it:thumbsup:

MSmits: CG motivates you to visit stack overflow

Default avatar.png krishna636: although I'm finding puzzles here very tough

Default avatar.png krishna636: CG?

MSmits: just try a bunch of easy ones until you find one you can solve

MSmits: codingame

Default avatar.png krishna636: ok

MSmits: when i got here i had problems solving puzzles too

MSmits: now i can pretty much solve them all if i take the time. Some do take a lot of time, most dont

Default avatar.png krishna636: should I start with algorithms?

Default avatar.png krishna636: or data structure :sweat_smile:

MSmits: thats not really a clear question

MSmits: everything is am algorithm basically

MSmits: an

MSmits: CG does allow you to practice algorithms a lot

Default avatar.png krishna636: I accidentally stumbled in this website

Default avatar.png krishna636: is this better sorted than leetcode or geeksforgeeks

MSmits: data structure i dunno. I guess in a way you do need to have an easy to use datastructure for every puzzle and arena, but they wont look like structures you would use at a dev job

MSmits: sorted? you mean by difficulty?

MSmits: if so, then no, its not very welll sorte

Default avatar.png krishna636: I mean does CG have better questions to crack interviews

Default avatar.png krishna636: or just for fun

jacek: there are categories but some easy puzzles can be more difficult than others

Default avatar.png krishna636: I mean does this help me with my dev job

MSmits: there are lots of dev jobs

Default avatar.png krishna636: I just want to improve my quality of code

Default avatar.png krishna636: in jav

MSmits: if your dev job is web dev, then this site is useless to you

MSmits: except for fun

Default avatar.png SatelliteMaster1337: do both you need dara structure to solve algorithm but if you just do data structures its dry and out of context

Default avatar.png Martini310: siema!

MSmits: if you are going to do stuff with neural networks, or data science and such, then this site would be nice practice

Default avatar.png krishna636: ohh.. I see

Default avatar.png krishna636: but I will give it a try

Default avatar.png krishna636: seems like nice community

MSmits: sure is

MSmits: this chat will go away soon though, but the discord will be there

Default avatar.png krishna636: yeah I will join discord :slight_smile:

sakib_shahon: I can solve some of the problems with algorithms or math. But I can't really find any step by step guide for developing more advanced stuff like genetic algorithms or training neural networks.

MSmits: i think i should adapt my meta mcts framework to fit params, like a GA or something

sakib_shahon: Any Idea where I can find good resources for that?

struct: There is a huge gap between ga and NN

MSmits: i know

Default avatar.png krishna636: meta mcts?

MSmits: if you learn what mcts is, i can tell you what meta mcts is krishna636

MSmits: otherwise it is too much at once

jacek: sakib_shahon try https://www.codingame.com/learn

struct: sakib_shahon https://www.geeksforgeeks.org/genetic-algorithms/

Nerchio: meta mcts is when you take mcts and add meta to it

struct: I think this one is decent

MSmits: struct, i mostly mean to use the GA or whatever, to train params locally

struct: I only tried ga once tbh

MSmits: not to train nn

struct: i was talking to sakib msmits

jacek: i managed to train nmm with GA before switching to nn

MSmits: it would be much better than the current brute force uttt arena i use, it often hangs and it slow and single threaded

sakib_shahon: Well I know the theory of this stuff... But I am really bad at learning without coding it out.

MSmits: ahh ok

jacek: single threaded :scream:

sakib_shahon: For both ga and nn

MSmits: yeah my meta mcts can run 12 processes, np. But this program is old

MSmits: It'd be nice to have a GA that also gives some intermediate results, maybe some of those pretty graphs jacek makes

sakib_shahon: Is there a chance to look at others codes for the same game I am playing here?

MSmits: I could use a single bot that it starts an instance of and then feeds it param values

MSmits: which game? PRobably not

sakib_shahon: mad pod

struct: http://files.magusgeek.com/csb/csb_en.html

sakib_shahon: or code vs zombie

struct: https://github.com/Inoryy/csb-ai-starter

struct: that one is mad pod racing

MSmits: csb is the old abbreviation, before renamed

MSmits: code vs zombie can be hardcoded

MSmits: i just have a simple sim and monte carlo that reaches like rank 300

jacek: games are 'competition', there are no codes from others. but some people share and you may find some of them in github

MSmits: but hardcoded solution is top 30

sakib_shahon: I am getting stuck after bronze . And improving the code seems too hacky for case. A lot pro's seems to know stuff I haven't even heard about

jacek: try -3vel

sakib_shahon: *for my case

MSmits: a lot of pro's do, but they also hardcode

struct: a lot of pros just sim the game and run a search

MSmits: and yeah try -3vel for mad pod racing if you want a nice rank before moving on to a different game

MSmits: (mid gold)

MSmits: it's a cheesy trick

sakib_shahon: Any youtube channel or blogs to follow thats particularly good?

jacek: or no to waste a time on incomplete rules leagues

BlaiseEbuth: Hey hey. use my starter and go legend. ezpz

struct: I dont really know any channel that explains this stuff usually I just search the algo I want to use

sakib_shahon: Thanks guys for helping out. One of the reasons why I love the tech communities is that there's always helpful people around. And somehow the more they knows the more helpful they are.

MSmits: talking to people gives you ideas often

jacek: i dont know any book, i just randomly search stuff on the internet ;d

MSmits: yeah and sometimes the stuff he searches is about coding

sakib_shahon: I might be hardcoding things for quite some time i guess.

MSmits: if you want to learn a real search algoritm, do a simple boardgame like ultimate tic tac toe and then learn minimax and monte carlo tree search

Default avatar.png WoBo727: Free my man ASHLEY1

Default avatar.png D1LAN: FREE ASHLEY 1

MSmits: its good to start there because the game is simple and the algorithms require no adaptatiom

sakib_shahon: Ok I guess I will start with minimax and monte carlo

MSmits: nono

MSmits: monte carlo tree search

MSmits: monte carlo is something else

MSmits: the tree search is important

sakib_shahon: monte carlo tree search

sakib_shahon: got it

MSmits: yes, mcts

Astrobytes: though it might be better to start with flat MC

MSmits: not in uttt i think

MSmits: probably better to try minimax firt

Astrobytes: for learning purposes

MSmits: less buggy

Astrobytes: aCat was high gold with flat mc in java

MSmits: nice

MSmits: then yeah it might be good too

sakib_shahon: It would really be nice to have one or two purely educational and introductory games for some of the common techniques .

Astrobytes: just thinking in terms of difficulty gradient

MSmits: ok so monte carlo -> minimax -> monte carlo tree search

MSmits: thats the right order of difficulty i think

Astrobytes: Yes sakib, we thought about that before

struct: maybe I can make normal TTT

Astrobytes: still think it's a good idea tbh

struct: where you play vs minimax

BlaiseEbuth: Simple mc excercise ?

struct: but as a puzzle

Astrobytes: bunch of simple board games just to test on

MSmits: sounds good struct

MSmits: btw gotta go train arriving ttyl

struct: cya

Default avatar.png Aldoggen: ttt as a puzzle exists already?

sakib_shahon: I'll stick to this than : monte carlo -> minimax -> monte carlo tree search

Default avatar.png Aldoggen: yo

struct: not interactive Aldoggen

Default avatar.png Aldoggen: oh

struct: i mean turn based I guess

Default avatar.png Aldoggen: yep

struct: This is a decent video for minimax sakib

struct: https://www.youtube.com/watch?v=l-hh51ncgDI

Astrobytes: ah Sebastian 'The Accent' Lague

Astrobytes: yeah he's very clear and easy to understand

sakib_shahon: thanks struct

jacek: wood league of UTTT is TTT

Astrobytes: Yeah but something specifically designed with noobs in mind would be better

BlaiseEbuth: noobs

jacek: i can make a boss :imp:

Astrobytes: lol

Default avatar.png Aldoggen: I think if you implement some proper algorithm, you'll be out of wood really quickly

Default avatar.png Aldoggen: so it doesn't give much time to explore

Astrobytes: you can get out of wood in UTTT by doing much less than that

Astrobytes: so even less time to explore

Astrobytes: I wish CG had got on board with the 'noobs corner' idea

BlaiseEbuth: Not a priority.

BlaiseEbuth: But he told the devs about it. :ok_hand:

jacek: oh my, japanese former pm died

eulerscheZahl: he got shot, didn't he?

jacek: by former marine

Westicles: they should ban homemade guns

eulerscheZahl: if someone really wants, they'll find a way. but that doesn't mean that you have to make it easy for them. i'm in the "ban guns" fraction

BlaiseEbuth: :popcorn:

eulerscheZahl: and 2nd amendment was written at a time with wild animals and no police. it's ridiculous to still argue with it

eulerscheZahl: maybe they think they can defend themselves against the corona virus with a gun :thinking:

BlaiseEbuth: Nah. They've bleach for that

Westicles: there are a bazillion deer in the US, they are begging us to shoot most of them

Westicles: plus the canadians could attack any time

eulerscheZahl: then build a wall and make Canada pay for it?

BlaiseEbuth: :see_no_evil:

Westicles: I wouldn't want to get in a knife fight with a German, you guys are evolving into vicious killers

Westicles: over a million stabbings in Germany just last month

darkhorse64: ??

BlaiseEbuth: Well. With almost 250 mass shootings since january 1st, we can nothing but observe the benefits of guns on the US public security...

struct: enough of this non sense

BlaiseEbuth: Non sense ?

struct: Yes you are right, but this is not the place to discuss this stuff

BlaiseEbuth: eulerscheZahl was first!

Westicles: Retro typewriter art is amazingly popular for an ascii art puzzle

struct: good rating

struct: this puzzle is far better than the previous one

Westicles: yeah, definitely

Kellthazar: i'm curious to see the bests "block the spreading fire!" solutions.

Astrobytes: You will remain curious.

BlaiseEbuth: :grin:

Astrobytes: (they won't be released)

BlaiseEbuth: Fortunately...

Crosility: Stay curious ;]

Psyho: Kellthazar: hardcoded all of the solutions

jacek: :unamused:

struct: its friday and we still have chat?

struct: o.o

Astrobytes: indeed

struct: but we all know 1 week of dev = 1 month

Astrobytes: :D

jacek: darn inflation

Westicles: we pushed it out to after Bastille day in the morning meeting

jacek: bastille day?

darkhorse64: 14th July

jacek: 14th july?

Astrobytes: 15th is Pastille Day, when everyone is hoarse from drinking and shouting and must take throat-soothing lozenges

BlaiseEbuth: Chat's alive! \o/

BlaiseEbuth: Auto delete at midnight

Astrobytes: timebomb eh

BlaiseEbuth: Or next certificate update... Or next chat crash... :thinking:

Astrobytes: whatever the reason, it's still here for now

Westicles: How's chelengalileo coming along?

Astrobytes: just checked that actually, nice work Blaise!

jacek: huh

Astrobytes: not signed up yet jacek?

jacek: huh

Astrobytes: https://cheloniangall.com

BlaiseEbuth: The webchat is unavailable atm. I'm changing the client

jacek: if i logged in, wheres the chat

Astrobytes: it's more functional than it was when I checked before though

BlaiseEbuth: In which way?

Astrobytes: when I logged in there was something there

Westicles: we took that offline after the morning meeting

Astrobytes: List of users on the right etc, the menu button

BlaiseEbuth: Yes. So why 'more' ?

Astrobytes: It wasn't there yesterday

Astrobytes: for me

BlaiseEbuth: :upside_down:

Astrobytes: actually, wait a sec

Astrobytes: doesn't work on Chrome, win10

Astrobytes: for me

BlaiseEbuth: Now it's normal. As I said

BlaiseEbuth: But it was still online 2 hours ago

BlaiseEbuth: And was since 3 weeks

Astrobytes: no, literally nothing shows up at all

Astrobytes: I log in, nothing is there

Westicles: right, he turned it off for now

jacek: :no_mouth:

BlaiseEbuth: Astro don't read what I say... :(

Astrobytes: I do, but it shows in opera

BlaiseEbuth: Pic or fake

Astrobytes: https://imgur.com/a/VgsRpDu

BlaiseEbuth: Oh!

BlaiseEbuth: Cache probably.

BlaiseEbuth: Cause I dropped it server side

Astrobytes: first time I logged in on opera

Astrobytes: weird

Westicles: Blaise always messes up friday updates

BlaiseEbuth: When did you logged in?

Astrobytes: but still, every time I've logged in with chrome there's been nothing there

BlaiseEbuth: JS blocker perhaps ?

Astrobytes: just a few minutes back, first time was maybe 10 or so?

Astrobytes: meh, I don't care, as long as I know it works somewhere it's fine

Astrobytes: will probably end up using ext. client anyway

BlaiseEbuth: Could you try back on opera please Astrobytes?

Astrobytes: sure, 1 sec

Astrobytes: gone

BlaiseEbuth: OK. Thanks.

Astrobytes: np

BlaiseEbuth: The script was still in the page so I removed it. But the binding between the login form and the chat was already dropped, so I don't get how you were able to reach the chat... :thinking:

Astrobytes: tech works in mysterious ways...

BlaiseEbuth: :imp:

Astrobytes: ghost-turtle in the machine

BlaiseEbuth: *in the shell heh

Astrobytes: how did I miss that joke :(

BlaiseEbuth: :D

Astrobytes: been a long day, that's my excuse and I'm sticking to it

BlaiseEbuth: Fair enough.

Astrobytes: hehehe

Astrobytes: btw, got gold in the green circle game

BlaiseEbuth: Gg!

Astrobytes: My code is hideous

BlaiseEbuth: As always on CG...

Astrobytes: hey, some of my bots are quite nice. Not this one... :D

BlaiseEbuth: Crooked environments require crooked explorers...

jacek: now, defeat the boss!

jacek: oh, right... :(

Astrobytes: Yeah, I'm still annoyed about not getting to fight Boss Jacek

struct: jacek next contest submit on last day please

struct: or after legend opens

Astrobytes: nah, tough gold bosses are where it's at

jacek: i told you you wished wala was the boss

Astrobytes: only 84 people left in this gold league btw

BlaiseEbuth: For once CG communicates (more or less), informations are wrong... :sweat:

jacek: hm?

BlaiseEbuth: Chat deletion was planned for 'mid-june' in early june, then 'next week' last week, and it's still here...

Astrobytes: Maybe they forgot

BlaiseEbuth: My guess is that they can't find how to delete it.

Astrobytes: without breaking a lot of stuff? Possibly.

Astrobytes: anyway, not bothered about the reason tbh, lets enjoy while it's still here

BlaiseEbuth: Like a tumor it spreaded everywhere in the infrastructure. :imp:

BlaiseEbuth: Yeah of course

BlaiseEbuth: ^^

Astrobytes: Automaton2000 what do you think?

darkhorse64: act like a surgeon

Automaton2000: that would make it to gold

BlaiseEbuth: Chat is terminal Astrobytes. Too late for CG... :(

BlaiseEbuth: * darkhorse64

BlaiseEbuth: sorry

Astrobytes: we only call T.O.D on actual death

jacek: http://images6.fanpop.com/image/photos/35000000/It-s-Terminal-doctor-cat-comics-35064308-1920-1080.jpg

Astrobytes: early caturday

BlaiseEbuth: TOD?

Astrobytes: time of death

BlaiseEbuth: Ah.

jacek: https://i1.kwejk.pl/k/obrazki/2022/07/Xue4jmwl3bpkJr9q.jpg

Astrobytes: :frog:

Astrobytes: that's a damn fine cake

BlaiseEbuth: Oh... That's not a real one... Décevant

jacek: not real? :(

TobiasA: when you guys use NN model made in python in c++

TobiasA: how*

MSmits: a NN model is just a bunch of weights

MSmits: you just need to make sure it is outputted and inputted correctly

jacek: its just bunch of floats

MSmits: and the math in the python model needs to correspond to the same math in the c++ forward

jacek: and you need to make NN forward only

jacek: :rage:

MSmits: you can take a break jacek, i can handle it from here :P

Astrobytes: lol

struct: dont forget to avx it

jacek: nah, just autovectorize it

jacek: compilers smart

MSmits: if you want to use 8 bit floats, it takes some doing

TobiasA: oh so you have to make a NN from scratch in c++ but with only feed forward?

struct: or try both ways

MSmits: yes TobiasA

MSmits: it's not that much work, the work is in figuring out how to put the nn weights in the c++ file, encoded and decoded properly

struct: wdym by 8 bit floats?

MSmits: you can't just dump a bunch of numbers

struct: dont you convert them to normal floats when reading them?

TobiasA: damn i figured it will be something like that but I was hoping there will be a shortcut:cry:

MSmits: no, 8 bit float math is faster and can be avx-ed better

MSmits: afaik

struct: ah ok

MSmits: robo does it

struct: The forward part is the easy part

struct: The rest is the hard part

MSmits: TobiasA use marchetes github

MSmits: he did all this work for you

MSmits: just copy it and try to understand it

jacek: its good to have slaves eh

TobiasA: please do you have the link

MSmits: https://github.com/marchete

struct: https://www.codingame.com/playgrounds/58137

MSmits: those links lead to the same thing

jacek: no :?

MSmits: well imeant the playground has the github

Astrobytes: eventually they do

MSmits: i figured the github has the playgroubnd

Astrobytes: converge

MSmits: but i dont see it

jacek: liar

MSmits: https://github.com/marchete/CGZero

MSmits: this does

Astrobytes: https://github.com/marchete/CGZero

Astrobytes: dammit

Astrobytes: MSmits->score++;

MSmits: :bow:

TobiasA: thanks

MSmits: I am a bit frustrated fitting params for my uttt eval bot

MSmits: I was hoping i'd get further brute forcing fitting them

struct: still rank 9

BlaiseEbuth: Make a NN to fitt them for you

MSmits: but all I do is get ridiculous winrates vs my rank 9 bot

MSmits: thats my old bot

MSmits: my eval bot can get like 60-70% WR vs it

MSmits: but not vs the rest

MSmits: so it's overfitted majorly

MSmits: I can get rank 12 with evalbot

TobiasA: wait is it possible to use tensorflow on CG

MSmits: no not directly

MSmits: you use tensorflow locally

MSmits: and export the model

MSmits: then import into your c++ bot

MSmits: marchete has a working implementation for you

TobiasA: oh thanks

MSmits: there's like 10 marchete clones on oware leaderboard

MSmits: I was going to say you can recognize them by being ranked above me

MSmits: but i forgot i counterbooked them all

TobiasA: I thought I had to create a NN from scratch

MSmits: nope, well thats what jacek did

jacek: all the cool kids in top15 use NN. and MSmits

MSmits: and msmits doesnt :P

jacek: there are cool kids and there is MSmits

MSmits: i got the message jacek, but thanks for clarifying :P

BlaiseEbuth: MSmits is a cool adult

MSmits: thanks BlaiseEbuth

Astrobytes: confirmed by your old student who was on here

Astrobytes: who said you were a cool teacher

MSmits: ah yeah :)

jacek: especially when he was watching

Astrobytes: thiesjoo(s)?

MSmits: thats him

MSmits: https://www.codingame.com/profile/10ee8cd5f145e8d13cb00f959b10e5881665643

Astrobytes: I only remembered the joo part

Astrobytes: very dutch

MSmits: yeah

MSmits: He has a bunch of friends from my school but i dont even know them all

MSmits: on CG i mean

Astrobytes: hope they keep active

Astrobytes: at least you showed them the way

MSmits: doubt it, at that age life is busy

MSmits: yeah

Astrobytes: true

struct: They should be making NNs by now

PatrickMcGinnisII: I can't figure out how to bitb Counting TTT, any hints? I'm stuck with one long array atm

Astrobytes: just crash

Astrobytes: or whatever does it

MSmits: I cheat in that game PatrickMcGinnisII

Astrobytes: that game is broken

MSmits: I copy opponent

MSmits: until i can solve the game

MSmits: solver is reasonably good, so that works vs weaker players

MSmits: draws vs strong

struct: PatrickMcGinnisII the game is solved as a draw

MSmits: well thats not a real problem

struct: even php can do it

MSmits: the problem is that is is always solved by copying

struct: ofc yeah

Astrobytes: hence broken

MSmits: yeah, serious oversight

Astrobytes: did the author refuse to fix it or just never responded?

PatrickMcGinnisII: huh, i musta missed something ... mirror moves?

MSmits: yes mirror

jacek: read the forum

Astrobytes: yes thanks dad

MSmits: i guess you can look at it the way RPS tournaments work

Astrobytes: I was looking for a faster answer

MSmits: if you do the copy thing, you can never get 1st

MSmits: unless everyone copies

struct: maybe I can train a NN for RPS?

struct: o.o

MSmits: if 1 guy doesnt copy, he beats other peoplee that dont copy and are weaker

MSmits: so gets a better rating

MSmits: so in a way counting ttt still works

Astrobytes: copy with enough variation and you'll win

MSmits: how do you copy with variation?

Astrobytes: at the end

struct: ok maybe I cant, it sounds too hard

Astrobytes: copy, vary the end

MSmits: right, thats what i do with the solver

jacek: ezpz struct https://github.com/dennylslee/rock-paper-scissors-LSTM/blob/master/README.md

Astrobytes: like in RPS, copy first few times, then throw them with a different move

MSmits: but then the other guy can still copy

MSmits: you cant beat copiers that way

Astrobytes: Also: regarding "how do you copy with variation" -> see DNA/RNA

PatrickMcGinnisII: end game still needs streamlined gamestates ... unless I do/undo on same board

struct: im too dumb for this jacek

MSmits: too smart i think struct

Astrobytes: MSmits: you can, copy judiciously and play variations based on what they are expecting

MSmits: in counting TTT?

MSmits: what stops them from copying you?

Astrobytes: oh I thought we were still talking about RPS

MSmits: ohh ok,

MSmits: i wasnt

MSmits: i was just saying that counting TTT is like RPS

Astrobytes: I gathered that :D

MSmits: the copy guys all draw against eachother but get no wins

MSmits: the other guys fight amongst themselves and the best wins

MSmits: that person is at the top of the leaderboard

Astrobytes: Yes, hence the need for the variation, as in RPS :P

MSmits: so in that sense the game is not broken

Astrobytes: It's just lame

MSmits: yeah it takes the fun out of it

PatrickMcGinnisII: ok, it's 100 turns ... how far from the endgame can yall reach?

MSmits: I don't remember. Only a few turns i think

MSmits: maybe 10?

Astrobytes: donno, never bothered with it after that

struct: if draw bots gets spam submited the leaderboard will be all equal

MSmits: I can check, sec

MSmits: https://www.codingame.com/replay/649029716

MSmits: solved at frame 187

MSmits: thats why i win with +2

MSmits: but if he kept copying me after i solved, we would have drawn

MSmits: wait, no he messed up at the start

MSmits: if you notice the leaderboard, tric trac and royale are way higher rated. They don't copy

MSmits: rating-wise you see a whole bunch with 33, then above that, two 37s

PatrickMcGinnisII: hmm, I'm still sure there's a way to quick bitblt the 3 in a rows

MSmits: probably

struct: now i want to know how to multiply 32 floats at once

jacek: like nnue?

struct: yes

jacek: https://github.com/glinscott/nnue-pytorch/blob/master/docs/nnue.md#quantization

MSmits: value += float(FastRand(100)) / float(10000); This adds max 0,01 to my node value right?

MSmits: I am surprised my WR goes from 45% down to 25% if i do this, it's devastating

jacek: max 0,0099

MSmits: yeah

MSmits: but it's really devastating to my bot

MSmits: this surprises me

jacek: is it cumulative

MSmits: I thought i'd generate some extra random this way

MSmits: nope

struct: MSmits on node value?

struct: or on select?

MSmits: just at the end of the 100 ms

MSmits: final move selection

PatrickMcGinnisII: tx MSmits, looks like u found solution at 12 turns to end in first setup, then 7 til end in second ... but the advantage was only by 2 points...wow

jacek: it should do nothing unless all your moves are withing 0.01

MSmits: thats because i copy almost the whole game

jacek: then its problem somewhere else

MSmits: well to be fair a lot of moves are within 0,01

MSmits: in the early game

jacek: why dont you introduce randomness in ucb like me

struct: This is why you need rollout N depth MSmits

MSmits: i tried today struct

struct: didnt work?

MSmits: WR went down massivel

struct: lol

MSmits: 65% became 45%, then 30%

struct: I remember that I read it on a bt paper

struct: but cant find it anymore

jacek: ept?

struct: thats where I got the idea from

MSmits: i remember from oware i had a random rollout parameter

struct: I guess so jacek

MSmits: when my eval wasnt fitted very well, 4 or 5 deep was good

struct: they recommended 6-8 depth on rollout then eval

jacek: https://www.researchgate.net/publication/300114670_Early_Playout_Termination_in_MCTS

MSmits: as the eval became better, 0 was best

MSmits: think of it this way: Wat is the best rollout depth with perfect eval?

MSmits: what

MSmits: 0 right"?

MSmits: so as eval gets better, your rollout depth should go to 0

MSmits: and this is why NN's use 0

MSmits: because their eval is amazing

struct: yeah my eval is bad thats why it worked

MSmits: yep

MSmits: which means my uttt eval is pretty good i guess

MSmits: only it's still overfitted

struct: my eval never goes above 0.1

struct: but the rollout makes it be 1 sometimes

struct: So thats why it worked I guess

MSmits: mmh

MSmits: maybe you need to think about your param values

struct: probably

MSmits: they need to be in good relation with the exploration param

MSmits: i usually keep the exp param at 1

struct: I do score_1 - score_0

MSmits: and then fit the other ones to a good value compared to that 1

struct: Which make it pretty bad

jacek: in oware?

MSmits: with ucb1, you can pick 1 parameter to act as independent, preferably the most important one

MSmits: you never change that one

MSmits: exploration parameter makes sense for this

Default avatar.png hacker535646: okay

MSmits: you have this degree of freedom, because if you multiply all parameters by the same value, your bot stays the same

struct: I see

MSmits: so you might as well pick 1 value you never change

jacek: like you make pawn score fixed

MSmits: this assumes your eval is linear

MSmits: yeah

Default avatar.png hacker535646: hiiiiiiiiiiiiiiiiiiiiiiiiiii

jacek: good evening

Default avatar.png hacker535646: yea

**PatrickMcGinnisII has been pwned by NNs, smh

MSmits: I have a theory about my random value addition problem

jacek: hm?

MSmits: uttt is super sensitive to calculation time, if you double it, you get like 10-15% WR

MSmits: so that means that if you have more calc time, the average value will probably change a little bit, so you can detect stuff that happens at great depth

MSmits: these will only be tiny little changes in node value

MSmits: but enough so 1 node that is bad, goes below a good node

MSmits: in early game that is

MSmits: so i am screwing this up majorly by adding +0.01

MSmits: i think i should probably just have 10 different bots with different calc time instead of adding random

PatrickMcGinnisII: I know nothing... but couldn't you flip a param like 1-p and run it like a binomial. ok I'll shutup

MSmits: the problem is that my testbot doesnt have params

MSmits: it's just mcts, all it has is an exploration param

jacek: add some randomness in ucb

Astrobytes: don't flip that

Astrobytes: (c that is)

MSmits: so that it explores differently jacek?

struct: yes

MSmits: hmm might be good

jacek: i have random[0.9; 1.1] * eval + exploration

Astrobytes: where were you adding the random before MSmits?

struct: i think the was adding on node.score = eval * rand()

MSmits: final move selection

Astrobytes: ahhh

MSmits: it makes it horribly bad

Astrobytes: no that doesn't seem a good idea

MSmits: even if only 0.01

jacek: struct only in selection, no randomness in nodes

struct: yeah

struct: only on ucbn

struct: ucb1

MSmits: i will try that then

MSmits: jacek, choosing child with most visits is still safe right?

MSmits: the random bonus or penalty should average out

jacek: yes

MSmits: ok

jacek: i chose visits + score, but its mostly a hack for solved nodes

jacek: instead of using ifs

jacek: score + log(visits+3)

MSmits: i usually do value, but i read somewhere visits is better for low calc time

jacek: youre more confident about them

MSmits: yeah, if you do value, you risk picking a node that hasnt been explored much, maybe it started going up in value right at the end

jacek: what i do i interpret is that you choose most visited nodes unless better node is order of magnitude better than visits done

jacek: somewhat like lower confidence bound

MSmits: well... i did a test just now

jacek: :scream:

MSmits: my ucb with random lost 32 in a row

MSmits: 36 now

jacek: ready for production then

MSmits: float adjustedWins = wins * (0.9f + float(FastRand(200)) / float(1000));

MSmits: this is right?

jacek: sounds right

jacek: but really its weird

MSmits: hmm yes it's weird

jacek: yours 0.01 shouldnt have that impact either

MSmits: maybe uttt is just different

struct: maybe because its slower

struct: i lose like 25% of rollouts if I do that on c4

jacek: but you said rollouts count doesnt matter in c4

struct: and it doesnt

struct: but uttt might be different

MSmits: it is

MSmits: i tested it earlier

MSmits: doubling calc time means 10-15% WR

MSmits: +

MSmits: this is why people obsess over simcount in uttt

struct: maybe I should try to opimize mine

struct: its kinda slow

MSmits: i messed up something else though, i think it may not be the random. Even if i turn it off now, it loses

MSmits: lol

MSmits: else if (bestPes <= -1 && value > bestVisits)

MSmits: i am comparing value with visits now in final move selection

MSmits: so i think the ucb thing could work if i fix this

jacek: oO

MSmits: it works!

MSmits: yay

MSmits: no more overfitting

MSmits: :cry: it wrecks my eval bot now

MSmits: well thats what i asked for :P

jacek: wrecks?

struct: the non eval

MSmits: 60%

struct: wrecks the eval

struct: its normal

MSmits: so my mcts beats my eval bot

struct: since it overfited

MSmits: because it's no longer overfitted against

MSmits: so now i can do serious fitting without worry

MSmits: thanks to your + 0.2 rand

MSmits: anyways, gotta go. Ttyl

struct: cya

jacek: is chat dead

DomiKo: no

DomiKo: still there

Westicles: chat can't die until wonton brings back the tacos

PatrickMcGinnisII:

taco: Westicles

Crosility: TAAAACCCOOOOSS!!

Crosility: Sorry, you got me excited.

jacek: Automaton2000 :taco:

Automaton2000: makes me want to puke

BlaiseEbuth: :grin:

jacek: Oo

BlaiseEbuth: Good bot

**BlaiseEbuth patpat Automaton2000.

Automaton2000: i mean i probably did but at that time

jacek: Automaton2000 do you eat :taco:

Automaton2000: i think it's the same

Default avatar.png DevMarcao: friday is tacos day

Default avatar.png DevMarcao: or pizza

PatrickMcGinnisII: Automaton2000 :hot_pepper:

Automaton2000: yeah, it's not the most important

jacek: taco tuesday

Default avatar.png visionspider: you guys talking about the mongodb party?

Default avatar.png visionspider: in NY

Astrobytes: what?

Default avatar.png visionspider: they are doing taco tuesday

jacek: https://i.imgur.com/eaAeuKq.png

Default avatar.png visionspider: https://nychappyhourwithmongodb.splashthat.com/

Astrobytes: thanks jacek for the palindromic greatness

Default avatar.png wolfinj: can some1 tell me how i can get next level boss?

Astrobytes: The Hudson is far from me I'm afraid, though some of my ancestors went there

jacek: mad pod racing?

Default avatar.png wolfinj: y

Astrobytes: hit it with a stick

jacek: click test in arena and wait until it finished the battles

Astrobytes: stick == -3vel

jacek: it seems youre at 25% battles

Crosility: That was a fun puzzle. Thank you Westicles :]

Crosility: Just did your Annihilation Puzzle.

Crosility: https://www.codingame.com/training/easy/annihilation Fairly Easy Collision Detection Puzzle for anyone wanting to spend some time on it :D

Astrobytes: wPuzzleComplimentsInChat++;

Crosility: fprintf(stderr, "%d\n", wPuzzleComplimentsInChat); >

jacek: not do the french kiss the girls

jacek: now*

Crosility: French.. kiss the girls?

Crosility: Don't tell me that's a puzzle? O.o

jacek: https://www.codingame.com/training/easy/kiss-the-girls

Default avatar.png afstydfb: guys

Default avatar.png afstydfb: can anyone help me with the map pod racing

Default avatar.png afstydfb: in lua language

Astrobytes: No, that's evil.

Crosility: Oh my gosh, well, I try to do a puzzle a day, guess this is my puzzle for tomorrow jacek.

Crosility: Monkeypox.. oh gosh.

Astrobytes: wShockFactor++;

Crosility: How many of you here, follow industry/open source formatting standards for your code?

jacek: the what

Crosility: Like - for example, the ANSI standard for C curly braces.

Crosility: Placing them on a new line, versus maybe, omission in an if statement with one following statement, or on the same line as the if expression.

Crosility: https://www.gnu.org/prep/standards/html_node/Writing-C.html For Example, one standard.

Astrobytes: I go with func() { }

Astrobytes: I can do func() { } if needed but it's harder to read imo

jacek: :rage:

struct: void func ()

struct: { }

struct: :smiling_imp:

Astrobytes: I forgot my return type, oops.

Astrobytes: Perfection struct

Crosility: So, Astrobytes, I take that as a yes, you standardize your code?

Astrobytes: lambdas though, what do you do struct

Astrobytes: Crosility: only to my own standards but I'm consistent (not a dev by trade)

Crosility: Okay. :), same. Technically not a dev by trade either. I assume most here are not. But that's also why I'm curious. If some try to keep consistency, or if they don't care, and just write stuff to the screen & submit.

Astrobytes: If I don't keep to some kind of standard I'll never be able to read others code of any other standard

DomiKo: I follow google style guide

Astrobytes: that's cause you're interning at google

DomiKo: no

DomiKo: I'm doing it for almost a year now

Astrobytes: (it was a joke :P )

Crosility: Thanks DomiKo, you just taught me that Google has a giant repository of Style guides for languages.

DomiKo: yeah they have :D

Crosility: Didn't know they had their own.

DomiKo: Astro ;P

Crosility: https://google.github.io/styleguide/cppguide.html And it's stupid-level comprehensive.

DomiKo: it's good to have some doc with rules, so you won't change your own rules

DomiKo: there are some rules that you don't have to follow, like 80 chars line limit

DomiKo: or 2 space indents

DomiKo: but overall it's great

Astrobytes: I actually recently converted to snake case, I'm not a fan of hungarian notation and I like my braces like I say. Indents must be tabs.

Astrobytes: (tabs == 4 spaces)

Astrobytes: (preferably)

Crosility: Snake case?

Astrobytes: I can work with anything though

Astrobytes: snake_case

Crosility: Aw, I see.

Astrobytes: CamelCase

Astrobytes: *camelCase better

DomiKo: I found it really helpful to have camelCase for functions and snake_case for variables

Crosility: I forget, but wasn't camelCase a function naming convention, snake_case for variables, and CAPS for static variables?

Crosility: Hahaha, DomiKo .. said the same thing.

DomiKo: and I have to say that after some work I might change from 4 spaces to 2

Crosility: Well, that reassures my thinking I guess.

struct: I just write w/e, there is no rules here

struct: 1 space indent

Crosility: DomiKo - 2 space tab?

DomiKo: yes

Crosility: Is that even .. a noticeable indent to be readable?

DomiKo: about a week agou I would say no, but now I say yes

Astrobytes: DomiKo: regarding camel and snake usage yes!

struct: yes 2 indent is readable

struct: you just need to get used to it

struct: I still prefer 4

DomiKo: anyone know how to play paper soccer? xd

Astrobytes: I keep constants with either all CAPS or PascalCase and enums PascalCase

struct: domiko i heard its a popular game in poland

Astrobytes: lots of BFS

DomiKo: yeah it is

struct: ah how to play on what strategy to use

struct: NN

struct: when in doubt NN

DomiKo: really???

struct: no

DomiKo: ehhh

DomiKo: rule of thumb I see

struct: Jacek must use minimax there

Astrobytes: jacek used some modified BFS stuff at least as an example

Astrobytes: you'll never get a straight answer unless you play it though

DomiKo: making sim for that seems hard

struct: BT is your NN will shine

struct: is where your*

Astrobytes: indeed DomiKo

Crosility: So, with formatting. I do this a lot in the puzzles, but would never do in my own programs. - Does anyone else do this :

Crosility: int H, W; scanf("%d%d", &H, &W); fgetc(stdin);

DomiKo: I don't really want to train NN now :( it's so hot

Crosility: They will condense the initialize, and scan to one line, if it's just a couple variables.

DomiKo: I never mix C with C++

Crosility: (Well, I'm a C programmer primarily)

DomiKo: ohhh right

Astrobytes: "never mix C with C++" - CG says otherwise

Crosility: But I find most puzzles, I start them, and the first thing I do is half the number of lines of code I'm given.

DomiKo: :scream:

Astrobytes: come on, half our C++ bots are basically C

Astrobytes: with c++ parts for convenience.

k4ng0u: you guys never use the std lib?

Crosility: Haha, C logic is easier to read.

DomiKo: I use the std:: lib

Astrobytes: careful with that

k4ng0u: I was hopting you say otherwise, could have blamed my performance issues on that :p

DomiKo: :joy:

Astrobytes: I don't in sim/search based code

Astrobytes: if speed is an issue

DomiKo: yeah true

Astrobytes: otherwise with the pragmas and whatnot it's fine

Astrobytes: just don't go resizing vectors on the fly etc

k4ng0u: I usually use a GameState class and vector/array without pointers. could be the problem as everything is copied for each node. But I feel like it would just be a nightmare to code otherwise

DomiKo: there is a good rule for any language: you can only allocate memory in the first turn, and you will be fine

Astrobytes: ^ exactly

Astrobytes: k4ng0u yeah for a lot of things that works fine

struct: even reserving memory for vectors helps a lot

Astrobytes: but if perf really matters it's better to think clever

Astrobytes: yeah struct

Astrobytes: reserve more than you need if you think it might change, otherwise just reserve the max. DON'T change it during runtime

DomiKo: mostly it's not only the CG things, if you want performance you need to know that memory is BIG problem

Astrobytes: true, caching etc

struct: this is why mcts is slow

DomiKo: boys

DomiKo: Mean Max, Cyborg Uprising, Galleon Wars, Code4Life or Code a la Mode?

DomiKo: I have to start something :(

BlaiseEbuth: No more memory! Alzheimer for computers!

DomiKo: help me decide

BlaiseEbuth: Cyborg +1

Astrobytes: Cyborg or MM

Astrobytes: C4L is boring, CalM was shit, Pirates is OK though

struct: i have no idea how to make an AI for cyborgs

struct: so I vote for cyborgs

Astrobytes: (Galleon Wars == Pirates)

DomiKo: :/

BlaiseEbuth: That's the point. It's different

struct: let me think again

Astrobytes: Graph game!

DomiKo: I know some papers about that game

struct: Go mean max ill also compete

DomiKo: really?

DomiKo: 2 days contest?

BlaiseEbuth: Yeah MM was fun

struct: we can do cyborgs

DomiKo: we can

struct: your choice

DomiKo: I have like a whole weekend for that

struct: ok

Astrobytes: I should improve my cyborgs and MM and Pirates

BlaiseEbuth: Fight!

DomiKo: because I don't want to go outside

Astrobytes: hot eh?

struct: why not?

**BlaiseEbuth takes :popcorn:

DomiKo: hot and I need to do some CG :D

struct: if I win you must go outside

Astrobytes: and film it

struct: lol

DomiKo: :confounded:

Astrobytes: #DomiKoMelts

Astrobytes: you could set up a gofundme afterwards for post-sun cream

struct: its not that hot there

Astrobytes: well it was 20C here and people were walking around with their tops off (men)

struct: 25ºC vs 36ºC

PatrickMcGinnisII: 100F at 3:30pm here ... two hours ago

struct: Way hotter here

Astrobytes: I was kinda cold tbh

struct: DomiKo ok, so which game do you want to do?

DomiKo: but if I would go outside then I should go to mountains

Astrobytes: mountains > most things anyway

DomiKo: struct let's go with Cyborgs

struct: you can do w/e, you don't even need to go outside if you don't want.

struct: ok

DomiKo: Astro kinda true

Astrobytes: though I love the sea

struct: Im bronze there I think

DomiKo: i'm silver

struct: but its pretty weak bot

Astrobytes: Me too I think

DomiKo: so I have a little head start

struct: I never did graph puzzles

struct: good luck for me

Astrobytes: you're above me struct

Astrobytes: Maybe I'll do some for fun over the weekend

PatrickMcGinnisII: wth is Cyborgs?

DomiKo: https://www.codingame.com/multiplayer/bot-programming/cyborg-uprising

Astrobytes: DomiKo: you doing topcoder marathon next week?

struct: ghost in the cell

PatrickMcGinnisII: oh GiTC, love it

DomiKo: I've never done topcoder

**PatrickMcGinnisII never said his bot is good tho

Astrobytes: optim games are the ones we do

Astrobytes: Once a month

DomiKo: any link?

Astrobytes: one sec

Illedan: TC :raised_hands:

Astrobytes: illedan, got the link handy?

struct: https://www.topcoder.com/challenges?bucket=openForRegistration&tracks[DS]=true&types[]=CH&types[]=F2F

Illedan: Nope

Illedan: I don't do links

k4ng0u: I'm interested by the "only allocate memory in the first turn". Does it mean that during the first turn you create enough objects so that each turn would never require more than that amount of node? If so guess it would require a rather light state structure (when I read people stating they can have 200k sim a turn) Or maybe do you have a recycle mechanism for unused nodes?

struct: this link?

Astrobytes: me neither :rofl:

Illedan: I wait for euler

Illedan: Yes k4ng0u

struct: k4ng0u for example when i use MCTS I allocate 40M nodes on first turn

Astrobytes: Yeah. You can reuse+overwrite sometimes, depends on the algorithm

DomiKo: just allocate around 600MB of memory and here you go

struct: and i make it static so i still have 1 sec on the turn

struct: I dont know how it works tbh

struct: but it does

k4ng0u: :O what is the memory limitation of CG again?

DomiKo: struct what is this

DomiKo: 768MB???

DomiKo: something around it

Astrobytes: 768mb

struct: 768 is the limit

DomiKo: I knew it!!!!

struct: my nodes are 16bytes

DomiKo: first guess lol

struct: on C4 I allocate 45

Astrobytes: sometimes you need to be smart about packing

struct: domiko did you copy the entire link?

Astrobytes: othertimes not so much, but it's better to have more

DomiKo: yes

struct: its future competitions on topcoder and ongoing I guess

struct: https://clist.by/

struct: marathon starts on 13-07

struct: which should be optimization I guess?

DomiKo: I don't see a contest from topcoder at 13-07

Astrobytes: yeah. Click on the '15' on that to see the whole list

k4ng0u: oh well I would have though that the look up for nodes would slow down the app more than creating them. 40M seems really a lot, and cache miss could happen very often, but I guess I was wrong xD

DomiKo: ohh found it

struct: i get cache misses but you either get cache misses on mcts or run out of nodes

Astrobytes: wait til you see the topcoder website

struct: or use a NN

struct: and maybe it will fit

Astrobytes: k4ng0u: any memory allocation/deallocation is very expensive on CG

BlaiseEbuth: topcoder website :scream:

Astrobytes: k4ng0u: you do java right? Check out some of wala's posts in the forum

Astrobytes: regarding memory allocation/gc etc

k4ng0u: I usually code in C++ on CG :) but my knowledge is very limited

Astrobytes: Right. In that case: never allocate memory past first turn. Ever.

k4ng0u: I don't even know how to compile C++ code haha

Astrobytes: :rofl:

BlaiseEbuth: Click 'build' ezpz

Astrobytes: F6

DomiKo: make

k4ng0u: you guys have an C++ editor? ;)

DomiKo: VSCode ofc

Astrobytes: VS build all is F6

Astrobytes: but my F6 key broke

BlaiseEbuth: Spam submit doesn't work in vscode Astrobytes

struct: I use VS

k4ng0u: very interesting, for now I am just not using new, still times faster than java/js (which are my main languages)

PatrickMcGinnisII: getting my projects and directories always screws me up ... oh that's eclipse

Astrobytes: VS not VSC BlaiseEbuth

BlaiseEbuth: Same

Astrobytes: Visual Studio that is

Astrobytes: PatrickMcGinnisII: Please tell me you don't use eclipse

PatrickMcGinnisII: for Java, yes I have ... I think I needed Beans at the time

Astrobytes: Argh.

PatrickMcGinnisII: VS for C ofc

a-Rye: My favorite is Sublime, but I just like the pretty colors. Depends on the language though...Python I use vim and a Kali Linux box, Java I use Eclipse, JavaScript I use codepen. I used VS for the first time in a long time the other day for an interview lol

k4ng0u: PatrickMcGinnisll use intellij for java, much better than eclipse ;)

Astrobytes: I had to use what was it called... netbeans? once, that was better than eclipse but IDEA is nice

PatrickMcGinnisII: oh I have that ... I do mobile apps on it

PatrickMcGinnisII: ^ intelliJ

Astrobytes: hi a-Rye! I like Sublime for general quick editing of anything and used to use it a lot. these days not so much, just me

BlaiseEbuth: jetbrains stuff is good. Sad only the bad languages suites are free...

PatrickMcGinnisII: as i remember there's a few different eclipse builds, I think it's called Luna. Obviously i haven't used it in awhile

Astrobytes: wellll, y'know, as long as you're productive in whatever you use it's cool

k4ng0u: Intellij handles java/js/ts quite well (I think they have PyCharm as well for python) but it will always depend on how you code, some people are just very good at remembering the code base and vim is faster for them than the IDEs

Astrobytes: ^ my point exactly

PatrickMcGinnisII: VS Code, hmm... might have to try

PatrickMcGinnisII: support for php ha ha ;)

DomiKo: a lot of people use VSC

DomiKo: and companies

PatrickMcGinnisII: well if it has less overhead that the regular VS... hmm

k4ng0u: vsc is fine but not that polished, it's really good at text search, but regarding autocompletion, link to package, I feel it's a bit weak (maybe too multi purpose)

Astrobytes: yeah the linking is messed up

Astrobytes: it's nice though, don't get me wrong.

k4ng0u: it's nice AND free

Astrobytes: anyway. Time for beers and no code.

Astrobytes: Indeed it is

PatrickMcGinnisII: Cannot GET /%7Bversion%7D/win32-x64/stable

Astrobytes: gn all

PatrickMcGinnisII: jerks

PatrickMcGinnisII: oh, gn

struct: gn

DomiKo: gn all

struct: gn

Default avatar.png lsimon: p11[>'52.length;

struct: Anyone knows what a graph where all edges are connected to each other is called?

MSmits: you mean all nodes?

PatrickMcGinnisII: complete

struct: yes

struct: I guess i meant nodes

struct: I dont know graph theory

MSmits: complete graph yea

struct: thanks

MSmits: https://en.wikipedia.org/wiki/Complete_graph#:~:text=In%20the%20mathematical%20field%20of,(one%20in%20each%20direction).

struct: :thumbsup:

struct: I just learned what an adjacent matrix is

struct: I guess ill use it for cyborgs

MSmits: the you know more than i do

struct: adjacency*

struct: im sure you know what it is MSmits

struct: maybe just dont know the name

MSmits: thats possible

struct: I never was into graph problems

struct: because I have no idea what tod o

MSmits: i only really know them in the context of pathfinding and tree search and maybe a few other problems i ran into

PatrickMcGinnisII: MSmits got up to rank 1 wood3 in CTTT w/ 1 depth. now to minmax the darn thing

MSmits: gj

struct: are you going to use the draw thing patrick?

struct: play draw until you find a win?

PatrickMcGinnisII: i did up til turn 89 ... seems like last 11 moves is the pivot

struct: minmax might even be better to solve than mcts solver for cttt

MSmits: i think i did minimax

PatrickMcGinnisII: simple eval didn't get me over boss, smh

PatrickMcGinnisII: boss 20.93 me 19.18

PatrickMcGinnisII: better than what i had, i was doing random b4

PatrickMcGinnisII: ;)

struct: I try to avoid games with bosses now

MSmits: why?

struct: ptsd from last contest

MSmits: oh ok

struct: im joking :p

struct: sry MSmits

MSmits: lol

struct: its still so hot

struct: Must be around 30º outside

MSmits: i cant get my *best* bot to provide sufficient challenge to eval bot :(

struct: wdym?

MSmits: i gave it 500 ms turns and it still lost to my 70 ms turn evalbot

struct: I can give you my bot if you want

MSmits: somehow it is still overfitted

struct: but you will probably destroy it aswell

MSmits: my evalbot wrecks it yeah

struct: it wrecks mine too?

MSmits: yes

struct: ok so there is no point I guess

MSmits: you are now rank 18

struct: I just need to resubmit

MSmits: yeah

struct: Only bt leaderboard is fully gone

struct: hard to recover it

MSmits: evalbot is rank 9 now

MSmits: pretty much same as mcts bot

struct: wow

MSmits: bot locally mcts bot gets obliterated

MSmits: but

struct: cant you play against eval and add rand to it aswell?

struct: or it wont work?

MSmits: i think it will work for a little while, but it will overfit

MSmits: i think i need to ga it

MSmits: have a whole population of different bots

struct: I have something similar on bt

struct: everytime I build on VS it copies the bot and saves it renames it date and time

struct: renames it to date and time*

MSmits: http://cgstats.magusgeek.com/app/multi-tic-tac-toe/msmits

MSmits: this is evalbot

struct: good w/r vs karliso

struct: so you pretty much beat every1 except stronger evals

MSmits: yeah i guess so, didnt notice, it is only a few games though

PatrickMcGinnisII: recurse on the crack

MSmits: yeah i suspect it is 8x the same game as p1 and 8x the same game as p2

MSmits: two deterministic bots

struct: ah

struct: maybe I should add rand to my select

MSmits: didnt check though

struct: to avoid you

struct: :D

MSmits: possibly :)

MSmits: considering this bot is still very poorly fitted, i should be able to do better

struct: did you fit everything by hand?

MSmits: i barely fitted anything, a few by hand, the rest just guesses

struct: i would have no idea what to eval there tbh

struct: even worse than breakthrough

MSmits: well you eval what makes you win

MSmits: have some kind of calculation that represents the chance to get 3 in a row on the mainboard

struct: ok miniboards, probably eval miniboards that will give me a free move

MSmits: how do you mean

struct: oh its not really possible

struct: since you dont know if you will play there

struct: the opponent will play*

MSmits: no, you just look at the current state

struct: yeah

MSmits: i dont even do anything with the next board to play on

struct: still maybe you can give a score that if the opponent plays there you get a free move

MSmits: i just look at whats currently on the board

MSmits: ah yeah i have something with that

MSmits: dont know if it works well

MSmits: barely changed param

struct: if you ever do a NN I guess you can use this eval to help at the start

MSmits: you mean to kick off supervised?

struct: yes

MSmits: yeah jacek did that

MSmits: I guess i did prove eval totally works on uttt

MSmits: not just with nn's

struct: would it be a good idea to give minimax eval to start supervised?

struct: Like give the eval that the state would be in 6 plies

MSmits: yeah i think jacek did that on bt

struct: yeah top 10 is impressive

struct: Ok I have jacek ideas

struct: now I just need jacek skill

MSmits: he took his time to learn

struct: ofc

MSmits: i think you just need his determination

struct: yesterday i found something for mcts selection on NNs

MSmits: you're skilled enough as a coder

struct: I dont know if its any good but I shared it with him anyways

PatrickMcGinnisII: what is faster? (x-2)>>1 or (x==2?0:1) ... if x can only be 2 or 4

MSmits: oh the ucb formulas?

struct: http://eprints.fri.uni-lj.si/4033/1/Vodopivec.pdf

struct: check page 117

struct: its win rate vs UCB

MSmits: branching is usuall slow PatrickMcGinnisII

struct: basicly it makes it play better with lower rollouts

struct: since I dont think they dont do many rollouts here it could help

struct: The author calls it Sarsa-UCT

struct: Never heard of it before

PatrickMcGinnisII: crap, I need to eat ... x>>2 would be fine

struct: But the win rate seemed interesting enough

MSmits: good stuff struct

MSmits: these improved formulas work when their calculation cost don't dominate the overall performance

struct: yeah

struct: I think ja fica uses Thompson sampling + UCB

struct: or something like that

struct: for C4

MSmits: yeah i remember

Darkcodi: Can I turn off "shortest" clash of code? My language is C# and it's quite verbose. I can't compete with JS/Python in terms of "short code" (at least until Codingame adds support of .NET6's top-level statements)

Darleanow: hello, does the block the spreading fire counts as a contest ?

Darleanow: did*

Inferno_dragon: yep

Inferno_dragon: i will give you some point

Inferno_dragon: some codepoint

Inferno_dragon: some how the velocity could not play with the search race, Illedan puzzle cool

Default avatar.png AdeelAtta: join clash

Inferno_dragon: really

Default avatar.png prof.choi: Join Clash

Inferno_dragon: deebidap

Darleanow: because i didnt get the sucess from the ranking etc

Thorcode: cuz the base of block the spreading fire just 1390 what do you expect dude

Thorcode: *1910

eulerscheZahl: i still see green circle as the most recent one giving up to 10000 points

eulerscheZahl: not sure if it will get updated or the optim doesn't count

Darleanow: u didn't understood Thorcode

Thorcode: the max you can have is 1910 code point

Thorcode: and you need code point to rank up

Darleanow: it's still not what i'm asking for :)

Darleanow: you have ranking success !

Darleanow: mb, achievements

Thorcode: and also the block the spreading fire not a contest

Darleanow: oh !

Darleanow: yeah that was my question

Darleanow: thanks ! :)

Darleanow: if i'm right those are just puzzles

Thorcode: I feel kinda miss when i didn't pay attention at the green circle

Darleanow: euler, do you know the frequency of contests ?

Thorcode: that is optimization you can earn some code point

Darleanow: yeah i've seen

Darleanow: i don't really care of the ranking x)

Darleanow: i'm an achievements farmer

Thorcode: I just care about ranking

Darleanow: if i remeber correctly

Darleanow: you can get 1k cg points

Darleanow: with each puzzle of code optim

Darleanow: its your 5 best languages

Darleanow: and you should do more challenges :)

Thorcode: that the code golf dude

Darleanow: f

Darleanow: i'm a bit tired mb

Thorcode: geez how the hell the search race suck i almost get the half rank and the point i earn only 7

Darleanow: xD

Darleanow: it's weird formulas

Thorcode: yeah

eulerscheZahl: "euler, do you know the frequency of contests ?" no