Chat:World/2021-09-11

From CG community
Jump to navigation Jump to search

Westicles: Solving Vox Codei 2 and struggling with ASCII art is how he knows

MiyamuraIzumi: :(

Default avatar.png gggsfjw: whats the best thing to learn first in python?

Illedan: Good morning

Illedan: eulerscheZahl, how is that contest going?

eulerscheZahl: that's how, Illedan https://yare.io/replay/ai0gvj2ao2l7

eulerscheZahl: devs don't see an issue, will just increase the HP of the base from 5 to 8. which doesn't matter when I destroy all enemy units

eulerscheZahl: you can play 3 different shapes. squares can rush the other 2

Illedan: Lol, rushing is just that strong

Illedan: xD

BlaiseEbuth: Zeeerrrggg!!!!

eulerscheZahl: a more serious gameplay: https://yare.io/replay/ncggvu0111q4

Illedan: Only rushing if close?

eulerscheZahl: i have a rush vs other shapes. but disabled that feature on the 2nd replay

NinjaDoggy: is yare.io fun? :D

eulerscheZahl: not really searchable, more of a heuristic contest. probably some rock paper scissors

eulerscheZahl: hard to test, as you can only fight against opponents that are online and 2 test bots that aren't completely stupid

eulerscheZahl: it's not a full bot game

eulerscheZahl: you can update your code during the match. and even add some UI elements to interact, if you want

eulerscheZahl: to give commands via clicking or whatever you can think of

eulerscheZahl: but https://yare.io/tournament

eulerscheZahl: huge prizepool

NinjaDoggy: :O

eulerscheZahl: too late to join now. the contest was linked on CG discord. that's how I found it

NinjaDoggy: not too interested anyways :P

NinjaDoggy: gonna spend some time learning CGZero to prep for fall contest ;)

Illedan: date launched?

eulerscheZahl: i like your optimism

eulerscheZahl: no date yet

eulerscheZahl: toad prediction date: November 11th

NinjaDoggy: doesn't really matter anyways right

NinjaDoggy: as long as it's not cancelled it'll be 2 a year

NinjaDoggy: longer wait = shorter wait for next one :P

BlaiseEbuth: You think CGZero will works for cgescape? :/

eulerscheZahl: i'll link it again, should bookmark it https://forum.codingame.com/t/solo-contests/1114/3

eulerscheZahl: that's what I meant with "optimism"

NinjaDoggy: Doesn't CGZero work for literally any game if you write a simulation + search algo that makes use of an eval function :P

NinjaDoggy: even if it's not MCTS there's no reason why you can't train it on just game state -> win rate right?

BlaiseEbuth: NinjaDoggy https://www.codingame.com/cooperate

NinjaDoggy: ?

eulerscheZahl: we speculate that the next contest might be an escape room and not a bot game

NinjaDoggy: pls no...

NinjaDoggy: surely 2 multis a year isn't too much to ask for :(

eulerscheZahl: "The format of the challenge hasn’t been decided yet." https://forum.codingame.com/t/codingame-fall-challenge-2021-details-please/191792/6

eulerscheZahl: there was also this test contest "finding sherlock"

eulerscheZahl: https://www.codingame.com/forum/t/finding-sherlock-coding-escape-community-event-on-july-7/191634

NinjaDoggy: the wild conspiracy theory is seeming more likely :(

eulerscheZahl: and RAIC will be delayed until February

Default avatar.png Fenris.: escape room? what's that like?

eulerscheZahl: go to youtube, search for "codingame escape room" (might contain spoilers)

eulerscheZahl: you are supposed to play these with a group of multiple people. as a team

Justin-Truong: play escape room?

ProCoder03: yup..

Justin-Truong: could you invite me

Default avatar.png Fenris.: is it any good for newbs? I'm not exactly a full newb but I have not been coding for quite a while.

eulerscheZahl: the escape rooms require less coding skills than clashes

Justin-Truong: yeah

Default avatar.png Fenris.: okay cool

Serpi90: i hate shortest mode clashes

Default avatar.png Fenris.: how and when can I try it out?

Justin-Truong: i played with myself clash all of this afternoon

ProCoder03: Its just a harder reverse...

Serpi90: nah, they are useless in real life

Serpi90: and you end up doing dirty hacks to use 2 less characters

eulerscheZahl: just go to activites->cooperate at the navigation bar at the top

Justin-Truong: nah the hardest for me is fastest

eulerscheZahl: and find some friends willing to play with you

Serpi90: i don't hate them because they are hard, i hate them because they are pointless

ProCoder03: or go to discord channel for CGescape

Justin-Truong: is it hard

ProCoder03: what's hard ??

eulerscheZahl: right. i muted that discord channel the second it was created

Default avatar.png Fenris.: thanks

Justin-Truong: https://escape.codingame.com/game-session/w4c-5eP-MXt-i5H

Justin-Truong: play coding escape

Default avatar.png 0ffset: Hi I have a doubt regarding the dice puzle

eulerscheZahl: which of them?

eulerscheZahl: dice duel? codindice?

eulerscheZahl: probability dice?

BlaiseEbuth: Miami dice

BlaiseEbuth: Dice city

Default avatar.png 0ffset: The probability dice

Default avatar.png 0ffset: The thing is that i dont get to fully understand the fact that they want something that follows a normal distribution...

eulerscheZahl: do you know what normal distribution is?

Default avatar.png 0ffset: yes, but isn't it overcomplicating things?

Default avatar.png 0ffset: otherwise i guess i'm not fully understanding the problem

eulerscheZahl: it's not totally trivial to solve, if that's what you ask

Default avatar.png 0ffset: the point is that i know what a normal distribution is but i dont know how to implement it

eulerscheZahl: how I solved it: when I see d6, i generate 6 strings: "1", "2", "3", ... to replace it

eulerscheZahl: then evaluate each of them

Default avatar.png 0ffset: that's way more trivial that what i imagined

eulerscheZahl: it's possible that the substituted string still has mode "d"s in it. in this case i will recursively replace those too

eulerscheZahl: too me a total of 18 lines in python (including 2 empty lines and an import)

Default avatar.png 0ffset: okay, i guess that I'm overcomplicating things then

geppoz: or you can use qbits :D

jzen: Is it possible to reopen a closed clash chat?

Justin-Truong: yes

Justin-Truong: oh no

eulerscheZahl: yes. open the clash itself again

eulerscheZahl: you can find it in your last notifications

geppoz: it's saturday, so why not to talk bad of js ?

geppoz: someone can explain me why that split() limit is so silly in js?

geppoz: any brained would have implemented it as: "after the limit, return remaining in last element"

geppoz: not just "throw away the remaining"

geppoz: or it is just me?

MiyamuraIzumi: so the point is "limit meaning"

geppoz: yes, and his usefulness in that silly way

MiyamuraIzumi: why do you think that others will think like you

geppoz: since serious languages, like java, think like me :D

MiyamuraIzumi: not really

geppoz: ofc if I want just first elements, I can slice()

Default avatar.png Ocho: can someone help me with C?

geppoz: the usefulness is to stop the parsing

geppoz: not just throw the remainder

geppoz: hi ocho , try to ask, let's see if someone can

Default avatar.png Ocho: appreciate it

geppoz: MiyamuraIzumi you don't think that, implementing in "my way" you will have all needed cases, and nothing less and something more?

MiyamuraIzumi: as always

MiyamuraIzumi: those support javascript will say

MiyamuraIzumi: why Java is doing like that

geppoz: you have the stop of the parsing, if the problem is the computational weight, so you can just after take only the first elements if you want, but you will also have the remainder, so you can do more things

MiyamuraIzumi: it make the last element of split not really following what they expected

geppoz: because you have more thing at same price, and nothing less

geppoz: on the contrary, if you want to do something with the remainder, you are in trouble, since you don't have where to start

MiyamuraIzumi: so as what say, it's depend on the pov of the language designer

MiyamuraIzumi: or api designer to be extract

geppoz: well, you can't just say "that's my pov", there are better pov than others

geppoz: I'm just sayng, for me, that's not an useful pov

geppoz: express yourself freely, that's a friendly environment :D

BlaiseEbuth: Everybody can have his opinion. But I'm the one who's right.

MiyamuraIzumi: :D

geppoz: ofc

MiyamuraIzumi: i am not the author, but I think that not everyone will suport Java idea

BlaiseEbuth: Or even Java

MiyamuraIzumi: they api just meaning, I want to split this string with this limit

MiyamuraIzumi: yes

MiyamuraIzumi: so maybe javascript say, so it is limit => the out of lime will be truncate as what "limit" always be

littlebear: when I refresh sometimes I am losing some chats

MiyamuraIzumi: so "limit" again

eulerscheZahl: entire chat rooms or history of single rooms?

MiyamuraIzumi: haha

littlebear: clash chats

MiyamuraIzumi: even private chat

MiyamuraIzumi: only store some of the recents

MiyamuraIzumi: just a bit

MiyamuraIzumi: so MCTS share some characteristic of negamax, is this correct?

MiyamuraIzumi: can anyone help me on this?

MiyamuraIzumi: I mean MCTS sovlver

eulerscheZahl: have some demo code: https://tech.io/snippet/UGXgTEg

eulerscheZahl: formula at line 100 is wrong, should use the direct parent instead of root node for N

eulerscheZahl: afk lunchtime

ProCoder03: what is the difference between MCTS and MCTS solver ??

MiyamuraIzumi: thank you

BlaiseEbuth: solver

MiyamuraIzumi: I am leaning solver

MiyamuraIzumi: so I don't really know for now

ProCoder03: :unamused: Ikt BlaiseEbuth

ProCoder03: Okay

bear314: hi :D

ProCoder03: :wave:

sprkrd: http://chat.codingame.com/pastebin/888a998f-1861-4569-a8d4-2f31c765ed9c

sprkrd: And I've been pastebinned :)

ProCoder03: Thank you sprkrd

ProCoder03: :joy:

sprkrd: just search for MCTS solver and you'll find the paper

ProCoder03: OK...

ProCoder03: LoA means Line of Attack, right ?? and what does it mean ??

sprkrd: http://www.ru.is/faculty/yngvi/pdf/WinandsBS08.pdf

ProCoder03: I am new to these algos :sweat_smile:

sprkrd: As far as I known there's just one paper describing it, and then very small references to it in other papers (the classic references you do to fill the "Related work" section of the paper without paying too much attention to it), so I don't think MCTS solver is a raging success, at least yet. However, it can tell you (in some instances) whether you're following a path that leads to victory or to defeat

sprkrd: Yeah, LoA = Lines of Attack

ProCoder03: "whether you're following a path that leads to victory or to defeat" Wow...... Seems Interesting....

sprkrd: It's the thing some people use to set the messages of their bots to something like a smiley face if they know they're gonna win of to a frowny face if they're gonna lose :joy:

ProCoder03: sounds cool :sunglasses:

sprkrd: Btw, LoA = Lines of Action, I got carried away before

ProCoder03: yeah.. you mentioned it...

sprkrd: No, I said Lines of Attack

sprkrd: it's not attack, it's Action

ProCoder03: Ohhh.....

ProCoder03: what does it mean ??

sprkrd: dunno, don't know the game. It seems somewhat similar to Othello? Never cared enough to learn the rules

ProCoder03: Its game related!! Okay Thanks sprkrd

Default avatar.png duckymirror: I just did a Clash of Code where nobody got more than 25%. Can I look at the solution the author uploaded?

Default avatar.png JBM: the answer to the question doesn't depend on the sentence before it

ProCoder03: You can't

Default avatar.png duckymirror: Hmm. Okay, thanks!

BlaiseEbuth: You can...

BlaiseEbuth: If you pkayed enough clashs

BlaiseEbuth: *played

Default avatar.png duckymirror: Do you know how many that is?

ProCoder03: is it 500 clashes, BlaiseEbuth

BlaiseEbuth: Yes.

Default avatar.png duckymirror: That's a lot. I'm going to do a few then. 😀

Default avatar.png duckymirror: *a few more

_NikJ: How on earth did these people solve Temperatures in 29-30 characters? And Chuck Norris within 50 characters? o.o

ProCoder03: That's the art of code golfing !!

ProCoder03: writing shorter but uglier code...

_NikJ: No, I get THAT.

_NikJ: But 29 characters?

_NikJ: Come on

_NikJ: How do you take input and solve it within 29 chars lol

ProCoder03: Bash..??

geppoz: the only "cheat" I found in that, is when they write some language solution as "exec" of a bash

geppoz: that ruins real competition in a language

ProCoder03: you mean running another language from bash

geppoz: no, i mean exec bash from any language

geppoz: so you have one short bash solution, and use in all languages

geppoz: (or almost all, which have "exec" command)

ProCoder03: ohhh.... I thought it was the other way around....

_NikJ: Yeah.. I mean, doesn't seem legit that code that in 30 chars in C no less

ProCoder03: Now, 30 chars in C is not even legit...

ProCoder03: The include and main itself will come to around 15 chars

_NikJ: you don't need includes

_NikJ: but yes, idk how :d

ProCoder03: how will printf work without stdio.h

_NikJ: I guess the validators used to be much weaker before, so that even "wrong" solutions would pass them all

_NikJ: It can be done in C

_NikJ: you can write main(){printf("hi");} and it will work as expected

ProCoder03: What!! Then why does GCC throws an error when I try it locally

_NikJ: probably a compiler flag

_NikJ: here: https://stackoverflow.com/questions/2199076/printf-and-scanf-work-without-stdio-h-why

ProCoder03: will check

ProCoder03: Thanks

_NikJ: but anyways, yeah, the input+the algorithm in like 30 chars in C? :open_mouth:

ProCoder03: Impossible, Unless He is a master in it...

ProCoder03: *He/She

_NikJ: I actually think it's this " guess the validators used to be much weaker before, so that even "wrong" solutions would pass them all"*pasted from above*

BlaiseEbuth: There's a rerun when validators are modified.

Westicles: It isn't clear how one becomes a state-of-the-art golfer in bash. Lots of weird, undocumented knowledge involved

BlaiseEbuth: HCF

Illedan: (╯°□°)╯︵ ┻━┻

sprkrd: "state-of-the-art golfer" sounds way too serious, like it will have any implication in computer science

eulerscheZahl: Illedan in chat. of course he's submitting FB

Westicles: I would put bash golf high on the list of the last things human outperform machine intelligences

EngineHeart: how to make the console to give all the output ???

Default avatar.png Rag3ar0ck: hello

MSmits: damn i hate it when this happens, bug on release, but not in debug mode. I am guessing it's an uninitialized var somewhere

struct: Hi

MSmits: hi

Illedan: Always eulerscheZahl

Illedan: Had a major bug, which kinda worked out xD

MSmits: i was not returning from an expansion function... oops

MSmits: only c++ thinks thats fine

MSmits: debug mode makes it return 0 i guess

jacek: ohai

struct: hi jacek

MSmits: hi jacek

struct: you are working on Yavalath Msmits?

jacek: welcome back, yavalath runner up

MSmits: yeah applying some stuff i learned since that old version

MSmits: I know jacek

MSmits: thanks for the headsup

jacek: :scream:

MSmits: saw it a few days ago

struct: im sure you learned a lot in that time

MSmits: not a lot, but some things are helpful. Trying to get a better hashing scheme to work

MSmits: was using unordered set

MSmits: also, on expansion i was automatically reserving 61 - depth hexes. Which is a bit wasteful on forced moves

MSmits: i kept instantly lost moves as children

MSmits: so every time on selection, these were iterated over

struct: why do you need to reserve hexes?

MSmits: on the node pool

MSmits: as children

struct: ah 61 nodes

MSmits: i basically had no expansion function, i just set a block of memory to 9

MSmits: to 0

MSmits: cheap on expansion, but expensive for selection

MSmits: will be a while before I get anything working. I am adapting my local version + meta mcts before getting a new leaderboard version

MSmits: oh btw, the expansion thingy i had before was terribly bad at finding chains of forced moves, because whenever a forced move happened, it would be something like 50 losses and 1 continued game, so that makes that move really unattractive to explore

MSmits: now it just has 1 child so it can keep going

struct: These little things should help

MSmits: Yep. These NN's on Y are really RPS anyway. Royale had a bot that beat me and then Robo resubmitted and beat Royale harder than me

MSmits: but I want to try getting an opening book that's not countering any specific player. I am kinda past that exercise

jacek: oO

MSmits: Y is the only game where i still have one of those

MSmits: only thing I still do is that when it seems like my bot is not finding countermoves locally, I increase the exploration param

MSmits: but that's similar to changing a NN hyperparam

Default avatar.png Jamez707: hi

Default avatar.png Jamez707: hru guys

MSmits: hot russian guys?

MSmits: I'm not russian

Default avatar.png Jamez707: what lol

BlaiseEbuth: ngl

MSmits: but hi Jamez707

Default avatar.png Jamez707: hi

Default avatar.png Jamez707: u play minecraft

Default avatar.png Jamez707: im bored

MSmits: are you coming to codingame to pickup minecraft buddies

MSmits: ?

struct: I don't

Default avatar.png Jamez707: imstuck soooo

MSmits: I stopped playing minecraft. I was too awesome. Wasn't fair to everyone else

Default avatar.png Jamez707: ive just started learning java and i skipped a level by accident and now im stuck

Default avatar.png Jamez707: lol

BlaiseEbuth: ngl

MSmits: skip a java level?

MSmits: how do you do that?

BlaiseEbuth: Better skip java

Default avatar.png Jamez707: i dont know

Default avatar.png Jamez707: i kindof just happend

MSmits: you were an accident?

Default avatar.png Jamez707: yes but so was the level skip

MSmits: this convo is all over the place

BlaiseEbuth: Condom for the win

_Royale: MSmits: you are first on C4 now ;)

MSmits: oh, what did you do?

MSmits: also congrats on all your NN success, are you still building on marchetes work? Or doing your own?

_Royale: I pushed another NN that loses 100% against you

Default avatar.png Jamez707: invalid input. Expected 'x y power' but found '28000'

MSmits: ahhh i see

Default avatar.png Jamez707: its saying that but its not in the code

Default avatar.png Jamez707: as far as i can see

MSmits: you are outputting 28000 somehow, check the output i guess

Default avatar.png Jamez707: http://chat.codingame.com/pastebin/6ac6f74a-8075-4cc0-83ab-bd7a192631da

_Royale: MSmits: I still use my own version (no AVX) but learned a lot thanks to the community

Default avatar.png Jamez707: sorry its a link

MSmits: ahh ok, well gj. Yeah community is great for this

MSmits: Jamez707 you are just adding them all up before output

MSmits: so it's a single number

struct: you dont use avx on c4 _Royale?

Default avatar.png Jamez707: so should i change the 3000 and 9000

MSmits: it should be nextcheckx + " " + nextchecky + " " + 100 or something

MSmits: thrust being 100

MSmits: the " " is to separate the output, because otherwise you're mathematically adding

MSmits: struct he doesnt use avx in his NN framework, which he also uses on c4

_Royale: struct: no I rely on auto vectorization

struct: But you dont need a sim anyways MSmits?

Default avatar.png Jamez707: http://chat.codingame.com/pastebin/bdb47ce4-5cac-4cfc-b31f-c0ad05f3c929

MSmits: ohh, you mean in the sim. I don't think that matters for NN's. Sim speed is not a bottleneck

MSmits: very small speedup if you avx that part

struct: ah I see

struct: Jamez707 follow the tutorial

Default avatar.png Jamez707: i understan approximately 3 words of that

Default avatar.png Jamez707: i started like 2 hours ago

MSmits: perhaps it's better to just do some easy puzzles

MSmits: csb isnt the best tutorial

MSmits: if easy puzzles don't work, then you're not ready to use java on CG

Default avatar.png Jamez707: it wont letme till ive done this

MSmits: wait, do you know any language?

MSmits: is java just a new language, or your first?

Default avatar.png Jamez707: do i sound like i do?

MSmits: i don't know

Default avatar.png Jamez707: first

MSmits: ok, well this is not a good place to learn your first language. It is a good place to practice using your first language though

MSmits: assuming you already know the basics

MSmits: but it seems like you're stuck on the basics

Default avatar.png Jamez707: um yeah

MSmits: you need a real java tutorial

Default avatar.png Jamez707: i got told to start on this website

MSmits: do you really need to learn java btw?

MSmits: or can it be any language?

MSmits: personally I like python and C# better for starting out

Default avatar.png Jamez707: i was told it was the best starter language

MSmits: mmh, well that's an opinion I guess

Default avatar.png Jamez707: my source is a bit of an idiot tho

Default avatar.png Jamez707: r u on pc

MSmits: yes

struct: starting on this website might not be the wisest choice

MSmits: the thing about coders is that they quickly forget how hard it was to learn the basics of their first language and to learn computational thinking

MSmits: so it's easy to make the mistake of referring people to CG when they have no basis

Default avatar.png Jamez707: can we message on steam this is really glitchy for me

Default avatar.png Jamez707: makes sense

MSmits: sorry, I only chat here

struct: message on steam?

Default avatar.png Jamez707: thats fine

MSmits: yeah steam has some chat thingy i guess

struct: Yeah but why not use this chat?

MSmits: well he's right that it can glitch sometimes

Default avatar.png Jamez707: bc it doesnt work very well 4 me

struct: my recommendation is to learn the basics first

Default avatar.png Jamez707: i will thanks guys

Default avatar.png Jamez707: i gtg walk my dog now anyway but another time

MSmits: code.org is ok if you don't know any computational thinking at all, but may seem a bit childish to you. I kinda like it though

MSmits: at least you'll be able to solve most of their exercises and they have minecraft stuff =)

Default avatar.png Jamez707: i dont care if its childish as long as it helps

Default avatar.png Jamez707: thanks guys

MSmits: will not help with written language, but with solving skills

Default avatar.png Jamez707: i will see you i dont know when

MSmits: you can convert your block code to real code though

MSmits: sure, have fun

Default avatar.png Jamez707: u too

jacek: aww you made a new friend

Default avatar.png CoderSpeedRoll: WWWEWE

eulerscheZahl: what's that? drunken Thor wandering around the map?

MiyamuraIzumi: what is different between "unroll-loops" vs "unroll" flag?

MiyamuraIzumi: for GCC optimize?

BlaiseEbuth: loops

MiyamuraIzumi: :(

MSmits: sorry, the trollforce is strong today =/ I don't know or would say

jacek: untroll flag?

MSmits: :trolleybus:

MSmits: that's the bus for the trolls

MSmits: fyi

jacek: i dont have the ticket

MSmits: don't need, just have to open your mouth and say something :P

BlaiseEbuth: Happy Jenga day! :tada:

jacek: happy 0.(81)

MSmits: what does that mean jacek

jacek: youre not trolly enough

MSmits: I know :(

eulerscheZahl: https://linux.die.net/man/1/g++ the best I could find

eulerscheZahl: but it only mentions unroll-loops and unroll-all-loops. no unroll alone

MSmits: euler been looking all this time

jacek: why would they want to linux die :(

eulerscheZahl: just a short break from yare

MSmits: yare?

jacek: yare yare, ara ara

MSmits: pirates?

eulerscheZahl: https://yare.io/replay/8ksgv1192o152

MiyamuraIzumi: thanks :D

MSmits: very minimalistic

MSmits: no idea what it all means

eulerscheZahl: it's a contest starting soon (qualification closed)

eulerscheZahl: harvesting energy which you can use to build new units or attack the enemy

eulerscheZahl: and it's somewhat interactive. you can change the code during the game. or even build your own UI for manual control

MSmits: whoa... bots and manual combined?

MSmits: thats new

MSmits: this is what i need to get nr 1 at Y back :)

eulerscheZahl: wasn't screeps similar?

MSmits: dont know screeps

BlaiseEbuth: Is it euler? Thought it was bot only

MSmits: I can see this being useful for games with lots of logistics. Bot handles that part and big decisions can be handled by player manually

eulerscheZahl: never played screeps myself

eulerscheZahl: i wonder how the contest format will look like (details not determined yet)

BlaiseEbuth: Me neither, the possibility to buy things sound too much "pay to win" for me

eulerscheZahl: i didn't see why I should pay when I have CG as an alternative

eulerscheZahl: with more language flexibility

BlaiseEbuth: For now

eulerscheZahl: :(

jacek: you pay with a soul

BlaiseEbuth: Yeah... :/

MSmits: doesn't seem like PTW to me

MSmits: just has some expenses

MSmits: but people copy github bots for it

MSmits: different issue

MSmits: Sayonara!

eulerscheZahl: pay to play the game. and then just copy what others did

eulerscheZahl: smart move, really :smirk:

MSmits: yeah

BlaiseEbuth: My concern is more about extra CPU you can buy.

eulerscheZahl: that's like buying a PC game and then watching a youtube let's play instead of playing yourself

MSmits: on community servers it is free BlaiseEbuth

MSmits: it's just the servers they provide

BlaiseEbuth: Hmmm

MSmits: also, there is a maximum amount you can spend (quite high still)

MSmits: i've seen PTW games where people spend 1000 a month to get ahead

MSmits: this game is not like that

MSmits: i can kinda understand having to pay for the official servers. You can't expect them to provide infinite calculation time after the initial price. I think that's what it is about mostly

MSmits: normal games don't require much calculation per player, but coding games are different

MSmits: anyways, that's what i get from the steam store page, havent played it myself

struct: yeah it would be similar to cg charging like 5€ to month or something

struct: for servers

eulerscheZahl: ok, that sounds fair

eulerscheZahl: it's just that i can't keep the pace to play everything on CG. and I play some other contests too. I matter of time

eulerscheZahl: and it looked more like a heuristic game, which isn't exactly my cup of tea

struct: yeah, its not a game I would enjoy

struct: also I would need to use js

eulerscheZahl: perfect summary of yare :D

eulerscheZahl: one player managed to code in Rust with WASM

eulerscheZahl: and shared a starter bot

jacek: rust addicts :unamused:

struct: I never used wasm tbh

BlaiseEbuth: Addicts these days

**Chairmanfmao hello

Skynse: Rust do be addictive

Default avatar.png Rag3ar0ck: resolve in python?

MSmits: I prefer wasd to wasm. The m is too far away

struct: (╯°□°)╯︵ ┻━┻

MSmits: :grin:

Illedan: (╯°□°)╯︵ ┻━┻

struct: hard to make improvements Illedan?

MSmits: hard to improve on nearly perfect

struct: 7.0 points difference is not perfect

MSmits: nearly

struct: nah

struct: im only 27 points behind

struct: :p

struct: What rank did you get on the fb copy Illedan?

Illedan: Sogeti?

Illedan: 3rd

struct: yeah

struct: nice

struct: How well does your fb bot performs without spells?

Illedan: Poor

struct: > top 10?

Illedan: Didnt try

Illedan: I can do a test

struct: pb4 was top 10

struct: before you submited your bot

Illedan: :P

struct: I mean his bot that uses no spells

Illedan: I know

struct: Might be worth a try just to get an idea

Illedan: pushed

struct: :thumbsup:

Illedan: This version had 35 points with spells

jacek: facebook?

Dr_Monkey: fantastic its i think

Dr_Monkey: bits

jacek: tits?

Illedan: Language!

Dr_Monkey: exactly

jacek: im using C++

Dr_Monkey: i use python

BlaiseEbuth: language!

Dr_Monkey: bit late but ok

BlaiseEbuth: Late? Its an answer to the message just before, so no.

Illedan: 70 ish I guess struct

Dr_Monkey: wdym

struct: Maybe you can play with eval with this version

struct: I think thats what pb4 did

opitt: If you like a simple game, please approve mine - if you like it. https://www.codingame.com/contribute/view/7204a06363301568107e0e98085cfc40eb6a


MSmits: tb wdym seems much worse than wasm. As I said, use wasd

MSmits: tbh

MSmits: well... for lategames my hashing thingy drops solving time by around 30% in Yavalath

MSmits: over unordered set that is

jacek: jokes on you, lategames in yavalath are rarew

MSmits: not when my bot plays them

jacek: :smirk:

MSmits: but yeah in general you're correct

struct: you sovled 2 moves right?

struct: solved*

MSmits: Yeah, center 7. It's 2 moves when considering symmetry

MSmits: it's really not hard, anyone can do it

MSmits: center move is an hour or so, the ones around that a day or so if you have a reasonable algo

MSmits: all the others seem unsolvable

MSmits: which basically means there is no way to avoid going into the very late game where either player runs out of safe moves

MSmits: you can see why that would be hard to solve

struct: yeah

MSmits: however, if you start with 3 2 for example, there are only 2 followups that aren't solved

MSmits: and only 1 that is strong

MSmits: a lot of these starting moves that arent solved have most of their replies solved

MSmits: which turns a game with high branching into a manageable game

struct: forced moves also help right?

jacek: eeyup

MSmits: yeah and trap moves

MSmits: typically you have maybe 3-5 options to survive a trap

MSmits: i should say, a trap that is coming. You either block the trap or play an available forced move

MSmits: once the trap happens and you didn't prevent it, you've lost

jacek: if you start playing game, you already lost

MSmits: nooo, that is when the fun begins!

MiyamuraIzumi: can a solver improve much on mcts of UTTT?

MiyamuraIzumi: my solver seems quite dump, is this mean, I have done wrong?

eulerscheZahl: i don't know. for connect4 it didn't make much of a difference

eulerscheZahl: Scambaiter got access to some cameras this time https://www.youtube.com/watch?v=tpzUjYYUp-Q

MiyamuraIzumi: yeah, I am trying to make thing

struct: solver took me from 100

struct: to top 50

struct: on uttt

MiyamuraIzumi: I am around 105, and solver make me to 160 :(

MiyamuraIzumi: so that must be my implement problem

struct: probably

MSmits: solver cant really hurt you if you do it right. It should only kick in on games that end in your expansion function

MSmits: so otherwise it should not cause slowdown

struct: unless is solver is very expensive

struct: his*

MSmits: yeah if you do it right, it should not be

struct: i have no idea how mine performs tbh

struct: its hard to test

struct: you cant really test solver vs non solver

struct: because you will end up using diferent paths

MSmits: you can profile your solver. That gives you enough information

MSmits: see how much % of total calc time it takes

struct: True

MSmits: it will likely be < 2%

struct: Not sure if I did that

MSmits: < 0.1% for early game

MSmits: big question is whether to backprop solved games

MSmits: i mean backprop the statistics

MSmits: or only solve

MSmits: if(ended) solve else backprop

struct: i do backprop

MSmits: sometimes that seems bad

struct: Never tested the other way

MSmits: because you will also backprop paths noone would ever take

MSmits: like a move thats insta loss in Y

MSmits: might depend on the game

struct: if you never took it you will never go into that node

struct: because it was not expanded right?

struct: Like if its a losing mvoe

struct: on c4

MSmits: well if your expansion function is really restrictive, the point is moot

struct: moot?

MSmits: there's no point

MSmits: you already fixed the problem

struct: ah

jacek: hm? backprop solved when available

MSmits: as win/loss stats jacek?

MSmits: or just for the solver?

jacek: backprop solved states as high as possible

MSmits: thats not what i mean

MSmits: do you both solve it and backprop it as win/visits

MSmits: if(ended) solve else backprop

MSmits: or

MSmits: if(ended) solve

MSmits: backprop

jacek: i just overwrite solved if thats what you mean

MSmits: i just mean do you do both things, the solver function and the backprop function, on a solved expansion

MSmits: or just the solver

jacek: just solver

MSmits: ah ok, me too, mostly

struct: maybe im the one doing it wrong

MSmits: not really, there's no rule that says either way is wrong

MSmits: i can argue both ways

MSmits: might depend on game

MSmits: best thing is to try it

MSmits: it's difficult for EPT though

MSmits: if you backprop eval instead of win/loss stats

MSmits: because what is the eval of a solved game?

struct: 1

struct: I see what you mean

MSmits: really? What if a good game state for me has an eval of 10k

struct: i normalize the game state

MSmits: i don't

struct: my bt eval is always between [-1,1]

MSmits: at least i don't think so, in most cases

MSmits: extreme results average out mostly

MSmits: i tried using tanh to get it in a fixed interval

MSmits: wasn't better for onitama

MSmits: slightly worse

struct: I dont use tanh

struct: I do some weird stuff

MSmits: i also tried clamping

struct: might not even be good

MSmits: clamping was better than tanh actuallyu

struct: like if there is a max of 16 pawns

struct: its easy to normalize(?) it

struct: current/16

struct: then I apply score to it

MSmits: yeah but your eval has many more parts

struct: ofc

struct: I do this for every part of it

MSmits: ah

MSmits: still hard to compare it to a won or lost game

struct: true

Astrobytes: tanh worked for me in oware, can't remember if I still use it

MSmits: oh it works fine, just when I did a lot of testing it was a small winrate drop

MSmits: who knows what that meant, could be RPS

Astrobytes: I would guess so yeah

MSmits: back then a small alteration to any param would change my winrate against a specific NN from 20% to 70% or vice versa

struct: one day ill finish breakthrough eval

Astrobytes: I really should rewrite that oware bot, it looks like a dogs breakfast

struct: I wont touch oware

struct: or yavalath

MSmits: hah thats what i am doing with my Y bot, but I am not touching the sim. It's so complicated

MSmits: I do weird stuff with pdep and pext

Astrobytes: always fun looking back on those :D

MSmits: at least I understand my oware bot

MSmits: oh Astrobytes I did that hash table thingy, got 30% improvement on solving speed. For Y

Astrobytes: Aha, see ;)

MSmits: yeah i knew it worked from other games, but this bot is old, hadnt tried yet

MSmits: well i tried it before, but not with the loop that looks for empty spot

MSmits: marchete explained that part to me

Astrobytes: I remember

Astrobytes: Many ways to do it, stick with what works imo

MSmits: yeah

MSmits: btw, I have 40 million games now in my loca meta mcts tree for oware

MSmits: not a single loop yet

MSmits: they must be really long

Astrobytes: wow, that's impressive tbh. Not 1 loop?!

MSmits: nope, not in a selection phase I mean

Astrobytes: Yeah I remember you explaining before

MSmits: I go 50 deep in some places

Astrobytes: When are you going to unleash the beast?

MSmits: i keep increasing exploration param too. It keeps hitting solved states

Astrobytes: Intriguing

MSmits: it's at 120 now. Based on seed gain

MSmits: so a value can be +1 meaning expected net seed gain is 1

MSmits: 120 is crazy high

Astrobytes: gotcha

MSmits: i unleashed the opening book from this on the leaderboard already, well a 30M version

MSmits: it helps a bit, but it only goes to 36 seeds

Astrobytes: Ah, I still haven't looked, other priorities atm

MSmits: after that it needs a NN trained

MSmits: and i havent done that yet

MSmits: so it's really just an opening book

Astrobytes: Yeah, quit procrastinating with Yavalath :P

MSmits: not an option :)

Astrobytes: hehehehe

Astrobytes: anyway, off for some guitar. See ya later or tomorrow.

MSmits: but it's cool to see games vs Robo that use moves from books like 30 plies deep until it's down to 36 seeds

MSmits: bye Astrobytes

struct: cya

struct: your oware is with end game book right?

struct: how many seeds?

MSmits: yeah locally 36 seeds, in game 9 seeds

MSmits: ingame includes turn limit, locally assumes no limit

jacek: he may have slight chance with 48 seeds endgame

MSmits: :)

darkhorse64: re ept, I have used sigmoid for normalization. It failed for onitama and did wonders for checkers

MSmits: oh

MSmits: i never had a good eval for checkers though

MSmits: also hi darkhorse64

darkhorse64: hi

MSmits: did you get around to the whole nn thing yet?

MSmits: not sure if you were going to

jacek: oh my 3rd in checkers :(

darkhorse64: no, I am reluctant to spend months before getting decent results. I love too much writing engines. For checkers, I picked the eval on Internet. You can already get something good by just valuing material

MSmits: ahh, i guess i did that too, my rating is the same as yours

jacek: i think material value will give you top30

MSmits: I'm 8 with it

MSmits: really fast sim though

struct: scoring pawns on bt was top 20 I think

MSmits: not sure how much that helps

struct: the amount of pawns

MSmits: I think i did like 100 score for men, 120 or 150 for kings

MSmits: thats all

darkhorse64: I have spent a lot of time on movegen

MSmits: same

MSmits: we probably ended up with something similar, like we did in c4

struct: my movegen on bt is just a lot of while loops

MSmits: most movegens of mine are that

darkhorse64: It's a crazy bitboard thing. My eval is a bit more sophisticated but material is still hugely valued

MSmits: yeah i have a crazy bb thing also

MSmits: doing moves and jumps in parallel

struct: on bt I dont think pawns are that important because you can have pawns that can be stuck for almost of the rest of the game

darkhorse64: You use a skewed bitboard pattern ?

MSmits: i think so yeah

jacek: huh

jacek: welp i have simple bitboard, movegen speed isnt that crucial to me

MSmits: struct yes material count is much less important in bt than in checkers

MSmits: bt is very positional

jacek: in bt, forward pawns are better, but protected forward pawns are betterer

MSmits: like chess

darkhorse64: We looked at the same things, then

jacek: what the same thing?

jacek: like that oware eval thing?

jacek: but for checkers?

MSmits: this is a piece of it darkhorse64

MSmits: http://chat.codingame.com/pastebin/b61e69ac-0d0a-404e-850b-ecfd00eb5c67

MSmits: it basically finds all jumps in one go and then does a while loop over the possible loops to create the children

MSmits: possible jumps

MSmits: makes more sense for moves i guess, since there usually arent that many possible jumps

Default avatar.png Kairu111: I have a problem with the Chuck Norris Quest My code says that % in binary is 100101 In the Chuck Norris job, the % binary is represented as 0100101

struct: http://chat.codingame.com/pastebin/8cb18057-cca1-4540-82fc-045845ad6779

Default avatar.png Kairu111: P.S Google translate

struct: I do stuff like this for bt

struct: Kairu111 its 7bit binary I think

struct: You need padding zeros

MSmits: oh, you make a move array!

MSmits: I always immediately make children, skipping any intermediate array. Isn't that faster?

struct: i get moves then create the children

MSmits: yes, but the children come from the moves, so why not immediately get the move and make the child, without storing it

struct: ah I see what you mean

MSmits: without storing the move i mean

struct: Never tried it

MSmits: it might be a negligible difference

darkhorse64: My implementation is completely different but the algo is the same. jacek: look at http://www.fierz.ch/checkerboard.php as a starting point

MSmits: as long as you're not using vectors that are being resized and such

struct: yeah

struct: stockfish does it this way

Default avatar.png Kairu111: Can you tell me how to convert a 7-bit ASCII string to binary? thanks

MSmits: then it's probably fine

struct: but they use minimax

jacek: oh that guy finally used n-tuples for his checkers

MSmits: nn also didnt he?

jacek: no, just tuples + eval

MSmits: oh it's his competitor then, that uses nn

MSmits: it has some good information on creating endgame books also

jacek: Kairu111 you need to add 0 at the left

darkhorse64: Yep, that a thing I should do to speed up things for some old bots of mine

darkhorse64: oops, scroll

MSmits: yeah i was wondering what you were going to do with that extra 0

Default avatar.png Kairu111: jacek I don't really understand how this works, since when converting 'C' to binary, 0 is not appended to the left. And when I convert '%', it adds

jacek: python?

Default avatar.png Kairu111: yes

jacek: use .zfill(7)

Default avatar.png Kairu111: Thank you

MSmits: thanks *python knowledge increased*

darkhorse64: for checkers bitboarding, see https://www.3dkingdoms.com/checkers/bitboards.htm

MSmits: seems different from what i did. This uses a little bit more ops, but i am guessing cheaper ones, because I use pext

jacek: i have very basic 'bitboard'. 64bits for 1 player. actually it doesnt differ much from 2d array approach, except i use long instead of the array

darkhorse64: I use 32 bits and no pext

darkhorse64: 32 bits for pawns and kings, so it's actually 64 bit for one player

MSmits: yeah same

MSmits: mmh for yavalath, is it ever worth it to play on a hex that can't contribute to a win and can't be played on by opponent?

MSmits: except when there are no other options

MSmits: seems like a way to speed up solving if this is a correct rule

jacek: maybe it will pay off in endgame if opponent doesnt have free hex

MSmits: yeah but thats why i said, cant be played on by opponent

MSmits: so its already a losing hex for him

MSmits: i cant win on it and he cant play on it

jacek: youre the most qualified person to answer that :)

MSmits: yeah i guess so, I was just wondering if i am missing something

MSmits: noone else shares my obsession :(

MSmits: I guess you all have different ones.

Dr_Monkey: anyone wanna look at my clash of code idea

darkhorse64: Using domain knowledge to have a sort of quiescence search during expansion or rollout is very rewarding. Combined with a solver, it rocks. I remember solving completely a C4 position at move 48 in less than 800 searches

struct: i do a sort of quiescence search during rollout on bt

MSmits: mmh how do you do a quiescence search on c4?

MSmits: i mean i keep expanding if there is only 1 possible move

MSmits: that's sort of similar i guess ?

struct: I would say so

struct: I dont think I do it in my current submit

struct: I kinda lost track of versions

MSmits: it's pretty easy to implement. Just put a while loop in for when you expand. While (selected->childcount == 1) etc.

MSmits: break on solved nodes

struct: yeah I have it implemented

darkhorse64: Yes, that's what I meant

struct: just not on this versions

MSmits: ahh ok darkhorse64, i just never thought of it as quiescence. That's usually mentioned in the context of minimax type searches

MSmits: but yeah i see the parallel

struct: my qs on bt rollout is like add 2 more depth

struct: if a pawn is capruted

struct: :d

struct: or if there is a forced move

MSmits: 2?

struct: i increase max depth sorry

struct: Yeah 2 more turns will be played

struct: Dont know why I put 2

struct: It might even not do much at all

MSmits: for checkers it's worth it for sure

MSmits: bt prolly also

MSmits: because capturing isn't that helpful if you get captured right back

darkhorse64: I tried the same on checkers but it failed. It may be me

MSmits: it is a basic feature for checkers minimax

MSmits: but dont know how well it would work for mcts

darkhorse64: With C4, it works

MSmits: http://chat.codingame.com/pastebin/abcbed0f-e26f-433c-83cb-9801648eb015

MSmits: just coded this for y

MSmits: the quiescence thingy

MSmits: should be good for series of forced moves

darkhorse64: Yes, I should revisit this bot. I have learned a lot since then

MSmits: yeah that's what I am doing

MSmits: sometimes it takes people beating you to do that :)

**jacek

Tiberiusen:

Default avatar.png BigBallBing: shut up cunt

MSmits: :scream_cat:

BlaiseEbuth: https://www.youtube.com/watch?v=9RRhKrrbFwE

69razer69: any news abt contests

struct: no

Dr_Monkey: anyone want to look at my clash of code contribution

BlaiseEbuth: no

struct: I dont really do coc so its hard to evaluate them

struct: seems easy enough

jacek: just put it in contributions and wait

BlaiseEbuth: ^this

struct: I had a contribution waiting for years

BlaiseEbuth: Clash ?

jacek: yinsh?

jacek: no one made a sim for it ~

struct: im joking

struct: I rewrote yinsh I think

struct: https://www.codingame.com/ide/demo/8320154e02a9d71f3762bace58879164b46899

Default avatar.png noobroso: Lo.cC.ut.Us share pls

Default avatar.png noobroso: thanks mate

Justin-Truong: coc best

Default avatar.png C26_1: Um hi

Default avatar.png C26_1: My question didn't related to programming but what website can I put Math paper in here?

Default avatar.png C26_1: I mean in that website

Code_Turtle108: hi

ProCoder03: :wave: