Chat:World/2020-11-29

From CG community
Jump to navigation Jump to search

Default avatar.png henrykhosasih: hello

Default avatar.png kg1427: :kissing_smiling_eyes:

Default avatar.png Mr-DillinG: Hi

Default avatar.png DevonLarratt: clash of code is an insane way to learn a new language damn

pucck: Best solution ever

VizGhar: just tried OCAML language on onboarding puzzle. OMG is there really any person on this planet using this language?

eulerscheZahl: it felt easier to me than Clojure

VizGhar: Cojure was pain too :|

eulerscheZahl: indeed :D

Default avatar.png R2B2: @VizGhar: yes, Ocaml is widely used. Functional programming languages are more robust than most others, and are therefore used where security is an important concern (you can check the OCaml website if you want to learn more).

VizGhar: I'll check for sure. To be honest I haven't used functional languages that much.

VizGhar: I really love the concept of pure functions. I just took different path in my youth :P

Default avatar.png BoBot: so...you took a path of impurity? :O

VizGhar: no... talking just about OOP vs FP

VizGhar: but yes I wrote that strangely :D

JohnCM: euler, you there?

JohnCM: wanted to seek help on how to generate entire list of permutations in c++ for bulls and cows 2

rockstar555: hii

eulerscheZahl: ping JohnCM

eulerscheZahl: just a recursive function that loops over each next digit given a bool[] of already used digits

Default avatar.png BoBot: @VizGhar no you did not wrote it strangely, I was just joking :D

Default avatar.png Magnitik: can sombody give me a hint about Power of Thor Epizode 1, pleas:cold_sweat:

Default avatar.png JBM: remember where you are

Default avatar.png Magnitik: thanks

rockstar555: if you think you got answer

Default avatar.png Magnitik: no, i didnt)

rockstar555: and consentrate

rockstar555: also

Default avatar.png msd9126: https://www.twitch.tv/msd9126

Default avatar.png msd9126: pls. come it is fun

PrO_Ogrmr: yes

PrO_Ogrmr: :0

Default avatar.png msd9126: We are live again!

Default avatar.png msd9126: https://www.twitch.tv/msd9126

JohnCM: thanks euler, i know how to do it already

Default avatar.png msd9126: We are live! https://www.twitch.tv/msd9126

Default avatar.png msd9126: https://www.codingame.com/clashofcode/clash/14832855b21c1982f3cff89fee284daeb720307

AntiSquid: dude stop pasting same link over and over again msd9126

AntiSquid: also no clash of code links in here

AntiSquid: #clash

rockstar555: okk

rockstar555: you are saying right

Default avatar.png msd9126: Sorry

rockstar555: AnitiSquid

rockstar555: msd9126

rockstar555: you send link

rockstar555: by private message

AntiSquid: rockstar555 you keep writing random gibberish btw, can't figure out what you're on about

Uljahn: i guess that guy is spaming him in pm

AntiSquid: rockstar555 just use google translate for a bit if english is difficult, it's fine .

Doju: Oh hey my search is finally sometimes going to depth 2

Doju: that's improvement, i guess :d

Uljahn: the entrance to the rabbit hole

AntiSquid: now you can take it deeper! exponential thinking doju!

Doju: Well, the problem at the moment is python

rockstar555: soory

Doju: so if im gonna take it deeper i'm gonna have to move to c++

rockstar555: why

Doju: It's just so slow

rockstar555: ohh

rockstar555: so you can move to c++

Doju: if i have the time

AntiSquid: do it doju . it might seem difficult but it's worth it .

Default avatar.png AM.80: Hi budies

AntiSquid: or Rust or even D-lang master race

Doju: i have another programming project on my hands at the moment

jrke: yeah c++,rust,java,D are good choices for fall challenge

rockstar555: if u writing a short code

Doju: I think i'm gonna go with c++ since i want to learn it anyways

rockstar555: then go with

rockstar555: ruby

rockstar555: otherwisw

Uljahn: python is slow by design but you can make your code optimized and a bit faster with knowledge of python internals

Doju: sure

rockstar555: yeah

JohnCM: ha just learn c++

Doju: im gonna try a few things first

JohnCM: so far all competitions top tier is c++

rockstar555: it saying wright

jrke: the worst thing you can face on CG - "STUCKED IN TOP GOLD AND TRYING FOR LEGEND :("

Uljahn: with c++ it's a no-brainer i guess, add more pragmas

Default avatar.png msd9126: #clash

AntiSquid: no . don't spam that chat room link either . if someone wants to play clash they will . msd9126

Default avatar.png msd9126: Thanks!

AntiSquid: you don't see anyone continuously asking you to join one of the multiplayers, do you

tibithegreat: out of curiosity: What is the memory limit on multiplayer games? (Ultimate Tic Tac Toe for example)

Uljahn: 768Mb

tibithegreat: wanna see if it's worth spending time deleting stuff

rockstar555: hey i have some problem in code vs Zombie

Uljahn: https://www.codingame.com/faq

jrke: memory limit ??whats that

tibithegreat: @Uljahn thanks

AllYourWhat: how many objects you can create

AllYourWhat: or memory you can allocate

Default avatar.png msd9126: https://www.codingame.com/clashofcode/clash/14833137c912982793d41326c6b0ecc0e20e148

Default avatar.png msd9126: We are live on twitch

Default avatar.png msd9126: join us at https://www.twitch.tv/msd9126

Default avatar.png msd9126: Sorry, by mistake wrote it here

tibithegreat: dude, you were warned several times not to spam the chat with clashes

Sinux1: get him

Default avatar.png msd9126: sorry guys

Default avatar.png msd9126: I realized as soon as i wrote it

Default avatar.png msd9126: no way to delete it

tibithegreat: Kratos Voice "Don't be sorry, be better"

tibithegreat: :)

Westicles: It seems I have a mortal enemy. One guy rejecting both my contributions

Doju: Oh huh

Doju: it's actually faster to make a bunch of small tuples than a bunch of small np arrays

Doju: even though i do some vector math

AllYourWhat: i could see that if your tuples are small... maybe the overhead of allocating a numpy array and calling into a c function for every operation isn't worth it?

Doju: yeah, that's probably the case, AllYourWhat

jacek: use c++ [solved]

Doju: yup

Doju: that's the correct solution but i don't have the time to rewrite everything in an unfamiliar language

Doju: aw man

Doju: when deepcopying gamestates, i get 244 nodes in my tree

Doju: when not copying, i get 851 nodes

Uljahn: btw do you have __slots__ defined in your class?

Doju: No. In fact i didn't know that that existed

Doju: Im gonna have a look

Uljahn: can make some boost to performance

AllYourWhat: wow thats interesting, thanks for sharing Uljahn!

Doju: I need to rewrite my deepcopy method but __slots__ seems really useful. thanks Uljahn

Default avatar.png ProMikeSundays: let's go

Doju: Also i'm storing a bunch of useless values

Doju: tomeIndex and taxCount for already learned spells, for example

Doju: Okay i think i figured out a way to improve performance by a lot

Westicles: Fight the power!

MadKnight: fight the #1 !

AntiSquid: #resist

HooKOnFire: привет долбоебы

HooKOnFire: как жизнь

HooKOnFire: как сами

HooKOnFire: как хуй стоит?

wlesavo: ban

Default avatar.png AM.80: ننبابل

Default avatar.png AM.80: کسقل

eulerscheZahl: this is an English-only channel

eulerscheZahl: but as I see HooK decided to continue the trolling on #Ru already

Andriyko: dmitro ovoshch

Andriyko: :baby_tone5:

Default avatar.png funlock: andriy viydi z pornhub

Andriyko: zvidku

Andriyko: ?

Andriyko: what

Default avatar.png utf-8: hello world

HooKOnFire: andriy ne drochu

HooKOnFire: piska ne vurosla sche

wlesavo: Uljahn

eulerscheZahl: i kicked already

eulerscheZahl: and AntiSquid did the rest

wlesavo: oh sry thought it was ru

eulerscheZahl: but for Ru you need Uljahn, i have no mod power there

HooKOnFire: hi

HooKOnFire: eulerscheZahl

HooKOnFire: how u did 54 lvl?

eulerscheZahl: lots of legend leagues. and i was spammy in regards to creating my own puzzles

HooKOnFire: wow

HooKOnFire: checck pls for vox codei 2

HooKOnFire: http://chat.codingame.com/pastebin/3621b942-4bf6-4a76-90dc-efc471352c84

eulerscheZahl: your code is incomplete, truncated after 10k chars

HooKOnFire: &

HooKOnFire: ?

HooKOnFire: why

eulerscheZahl: so, did you write that solution yourself?

HooKOnFire: but i used google for some

HooKOnFire: but yeah

eulerscheZahl: liar! https://github.com/denvash/codingame-puzzles-solutions/blob/master/3-Very_Hard/Vox-Codei-Episode-2.cpp

Westicles: reported to СБУ

HooKOnFire: hahahahhahahahahhahahhahahahhahahahahahahhahahahhahahahahhahahahhahahahahahahhahahaahhahahahhahahahahhahahahahahhahahahahhahahahhahahah:grinning:

ZarthaxX: LOL

HooKOnFire: stupid

HooKOnFire: man

Default avatar.png MusicalSaxophoneAndHisDog_7e6c: you

HooKOnFire: bruh

HooKOnFire: you stupid

Doju: ouch

HooKOnFire: suck

Default avatar.png MusicalSaxophoneAndHisDog_7e6c: bro you piece of shit

eulerscheZahl: free kicks for all

ZarthaxX: what the heck is happening

HooKOnFire: suck

eulerscheZahl: i'm kicking without warning :innocent:

HooKOnFire: shut up

HooKOnFire: man

HooKOnFire: oh shit

eulerscheZahl: and you are close to a ban already HooKOnFire

eulerscheZahl: stop it

HooKOnFire: ok

ZarthaxX: thought you kicked him before

ZarthaxX: did he re enter and started again?

ZarthaxX: :D

eulerscheZahl: i did

eulerscheZahl: but that saxophone player was without warning

ZarthaxX: does a kick do anything or you can just refresh and talk again?

HooKOnFire: yes

ZarthaxX: ah ye

eulerscheZahl: refresh and you are back

ZarthaxX: i see :(

HooKOnFire: when you refresh and back

eulerscheZahl: no you don't, do you want to ZarthaxX? :P

eulerscheZahl: ban is permanent on the other hand so behave well

HooKOnFire: i have vpn

Default avatar.png MusicalSaxophoneAndHisDog_7e6c: hello zahl

eulerscheZahl: hi

Default avatar.png MusicalSaxophoneAndHisDog_7e6c: how are you

Default avatar.png MusicalSaxophoneAndHisDog_7e6c: how you mom

eulerscheZahl: fine

ZarthaxX: if i want what toad?

ZarthaxX: oh god this oneagain

eulerscheZahl: squid did the banning

ZarthaxX: fastest in the far west

eulerscheZahl: good guy toad is still at 0 bans, i have more patience

ZarthaxX: hehe

ZarthaxX: i would ban them isntantly

eulerscheZahl: but i was close now. just squid being a little faster

ZarthaxX: you know, in uni they gave us a project where we had to make algorithms to optimize a specific problem

ZarthaxX: and they said we had to also implement tabu search

ZarthaxX: i dont like that thing

ZarthaxX: well, that guy deserved it from minute 0 lol

Westicles: Is it by account or name?

eulerscheZahl: account

eulerscheZahl: they can create new accounts

PrO_Ogrmr: "defibrillators" is this good puzzle for beginner ?

eulerscheZahl: there was one particular nasty spammer who kept numbering the accounts

eulerscheZahl: saw him at -57 one day

eulerscheZahl: magu s just kept banning

eulerscheZahl: Uljahn your turn on #ru

**eulerscheZahl didn't like the defibrilators

eulerscheZahl: not that hard. just no fun to solve

PrO_Ogrmr: yeah ok

eulerscheZahl: now that i think about it: there are surprisingly many official puzzles that I didn't really like

PrO_Ogrmr: :\

Westicles: They are getting worse and worse now with the quest map

eulerscheZahl: i have the same impression

Westicles: oh, unofficial puzzles of course

AntiSquid: sum of 2 numbers clash, do it

PrO_Ogrmr: haha

eulerscheZahl: sum of 1 number

AntiSquid: that exists?

AntiSquid: you mean the digits ?

eulerscheZahl: JBM had such a clash in WIP at least "add nothing"

Default avatar.png 000Wastok000: ahhahahahahaa

eulerscheZahl: i commented that the instruction is unclear: add 0 or add empty string?

PrO_Ogrmr: :D

AntiSquid: print input

eulerscheZahl: good old echo

Default avatar.png TheLumpyCommitter_3f38: sck my

AntiSquid: that's same guy 100% ... look flag

eulerscheZahl: the Ukraine is big

PrO_Ogrmr: haha

Westicles: Yes, let us not besmirch all Ukranians

Andriyko: :hugging:

Doju: Turns out deepcopying doesn't work if you return self instead of the new instance

Doju: fascinating

Doju: *facepalm*

Default avatar.png DJFakeSamourai_6191: :clown:

PrO_Ogrmr: same guy

PrO_Ogrmr: i followed him early

PrO_Ogrmr: gotcha

Default avatar.png IronMoustache_234e: rostik lo0h...

PrO_Ogrmr: i see , if anyone don't choose a nick name it will be random i think

PrO_Ogrmr: hey in temperature puzzle i got 100% but in code golf

PrO_Ogrmr: i didn't get , why ?

Westicles: different validators

PrO_Ogrmr: i see

Default avatar.png IronMoustache_234e: who is komposter?

Default avatar.png AM.80: Hey budies

Default avatar.png Mohammadmh: hello word

000Wastok000: hello

000Wastok000: 345346456

000Wastok000: 35465464

000Wastok000: 3454354

Andriyko: vvv

Default avatar.png JBM: eulerscheZahl: that was Boulet

Andriyko: ay

eulerscheZahl: or right, my bad

struct: hi

Westicles: Oooh, snap. "IMHO, it’s a burden to get boring puzzles accepted"

Default avatar.png JBM: well, that's, like, my own opinion man

Westicles: :)

Westicles: It is an interesting point. I've had arguments about the definition of 'puzzle', 'ingenuity', and 'fun' lately. We really need a philosophical underpinning before we can go forward with these contributions.

struct: I managed to port the 2 cameras example if you ever need its also possible https://i.imgur.com/KtvShEY.png

struct: Required a little more effort

struct: also I can make thicker lines now

reCurse: Is 3d the new thing now :sweat_smile:

struct: its fun to play with it

Astrobytes: building up to UTTT 3D edition

reCurse: Reminds me we never did test if mod can ban mod right?

Astrobytes: :grin:

struct: want to try?

reCurse: Keep tempting me :P

Astrobytes: We did, I'm sure? Separate channel, you banned euler or he banned you iirc

reCurse: euler wasn't a mod back then I think

Astrobytes: Oh right, testing whether it was one channel or all, I remember now

reCurse: It was testing how to unban actually

Astrobytes: Ah OK

struct: is it possible to unban?

reCurse: Yes

struct: so ban me i dont mind

reCurse: Missing the point here :P

Westicles: I told rockstar how to become a moderator in exchange for approving my puzzle, but he didn't do it

struct: I think he would be a good addition

reCurse: Working on a contribution makes me realize just how far one can go coding by google

jacek: youre working on contribution?

reCurse: Yeah

jacek: oh my

reCurse: So far I'm just getting by asking how to do C# stuff in java or javascript

reCurse: Almost too easy

Doju: yikes

jacek: java is just lowercase C#

Doju: there has been a nasty bug hiding in my code for a loong time

Westicles: Are there instructions somewhere for <whatever you call the package you submit for graphics puzzles> or do you just need to figure it out by example?

reCurse: Are you talking about pixi?

struct: or for graphic entity module?

Westicles: Talking about what you submit for something like Space Maze.

struct: https://www.codingame.com/playgrounds/25775/codingame-sdk-documentation/introduction-3

struct: Doesnt go into much depth

Westicles: Ah, thanks! Now I get why you have to google java and JS, ugh

reCurse: Well I wouldn't need to do JS if I used the GEM

struct: I think most of the current accepted contributions dont use js modules at all

reCurse: I'm just a control freak or something

Westicles: what would you use if you wanted something like this?

Westicles: http://chat.codingame.com/pastebin/03de892d-e891-4015-9f06-eb1f825abb88

struct: yeah, that doesnt seem feasible with gem

struct: because of all the params you can change

Westicles: hmmm

struct: you can choose any js framework I think, which gives quite a bit more work

reCurse: Any js framework?

reCurse: So you just ignore the given pixi container?

struct: yes

struct: check euler example

struct: https://www.codingame.com/contribute/view/5774f141c59462b06e77d826d14d052d7966

reCurse: As long as it uses the canvas I imagine

reCurse: Because you don't have control on the dom

Default avatar.png JBM: yeah their doc is real light on the modules stuff

reCurse: I think...

Default avatar.png JBM: missed opportunities there

struct: This is what he does on handle global data

struct: http://chat.codingame.com/pastebin/59a14d06-5366-47a0-b00f-78f99d619fcb

reCurse: Man JS is a hot mess

reCurse: Thankfully in this case... maybe?

reCurse: How far fetched is it to have a viewer that steals your code

reCurse: Because if you have access to dom...

Default avatar.png JBM: it'ssupposed not to have access out of its iframe

Default avatar.png JBM: ...until the next exploit

reCurse: The viewer is inside a iframe?

struct: yes

Default avatar.png JBM: yes

reCurse: Hmm

reCurse: Slightly reassuring then. But only slightly.

Default avatar.png JBM: i've tried to use it before to add proper CSS styling to my statements

Default avatar.png JBM: ...fail

struct: I dont think localy its inside iframe

struct: but on CG it is

reCurse: I'm really not sure what you want anymore on that forum thread JBM, so I'll leave it at that

Default avatar.png JBM: I'm not asking for anything

reCurse: You made a vague claim I provided counterexample to, and now I have to prove that everything is absolutely sure to be 100% the same

Default avatar.png JBM: I'd like the GCC doc to confirm #pragma-level optimization perform the same as command-line

reCurse: I don't get it

eulerscheZahl: i'm a bit late again :( the JS part is fun. initially I had the viewer control bar above the actual replay by accident :D

reCurse: I really don't

Default avatar.png JBM: your counterexample is a data point

reCurse: So was your initial claim

Default avatar.png JBM: it doesn't disprove much in my view

reCurse: In fact you didn't provide a single point

Default avatar.png JBM: my initial claim is "I can't be sure the optimization level reaches the same levels"

Default avatar.png JBM: no i didnt't

Default avatar.png JBM: hence the "fear" part

reCurse: Yeah not sure what else I was expecting

Doju: How many different gamestates do you guys search?

reCurse: eulerscheZahl Is the viewer bar part of the iframe or not?

Default avatar.png JBM: your message sounded like you wanted me to answer "oh that solves all my problems thank you I'll use C++ now"

reCurse: No you were making a claim with no example, and I provided you reassurance that STL templates do get inlined properly with the pragma

reCurse: But trying to help just turned into a slap so whatever

Default avatar.png JBM: oh

Default avatar.png JBM: sorry

Default avatar.png JBM: wasn't the intent

Default avatar.png JBM: it all started from pb4's "why c not C++"

Default avatar.png JBM: so i don't exactly have c++ code to measure again

Westicles: I can give you a datapoint. If you are running c++ from another language, the pragmas often cause it to fail but the compiler flags don't

Default avatar.png JBM: fail how?

pb4: Hi

pb4: Definitely didn't read that as a slap reCurse

reCurse: Ok my bad then

Westicles: Not sure, just gives you 0% on everything

eulerscheZahl: the progress bar is inside the iframe reCurse

Default avatar.png JBM: recurse and I often have trouble understanding each other

Default avatar.png JBM: knowing about it is half of avoiding it

struct: https://i.imgur.com/nGoedXb.png

reCurse: Maybe read too much into "expert opinion" and "contrived example" and the whole "but it's on a heap" when it wasn't the point

struct: yeah just checked

struct: its in iframe

pb4: JBM : not sure I fully understand the at() comment though

reCurse: Just felt frustrating

pb4: the GLIBCXX_DEBUG flag applies check on the [] operator too

Default avatar.png JBM: the at comment was: vector is only really ('cuz i preallocate) different from an array if you use at() instead of []

eulerscheZahl: https://www.codingame.com/demo/849340c736362b181cdae18a8345462538aa01 my teapot example just removed everything inside the iframe. progress bar gone

reCurse: So can you control the progress bar from inside the viewer?

reCurse: Say if I wanted to make a button "go back to beginning"

eulerscheZahl: i didn't try to go the other way but should be possible, yes

reCurse: That would be awesome actually...

struct: i recal cg saying it wasnt possible :thinking:

eulerscheZahl: i considered removing the settings button

Default avatar.png JBM: pb4: i don't know much about GLIBXX_DEBUG tbh

Default avatar.png JBM: pb4: i'll have to read up

reCurse: Well if the progress bar was outside the iframe then yeah it's a no go

eulerscheZahl: as i removed the panel where you can change settings anyway

reCurse: If it's inside though, you could simulate clicking on it or something

pb4: I haven't found much documentation on it...

pb4: And reading the STL is...... hard......

reCurse: I've always suspected it's hard to read so people don't rely on implementation details :D

eulerscheZahl: struct also added some text below the viewer long ago. in an extra section between viewer and statement that he created

Default avatar.png JBM: is ths g++ one still the sgi-derived one?

pb4: What I learned in practice is : - it'll slow your code to 1/100th its speed - it'll crash if you access data out of bounds - on CG, it'll tell you the type of container that was accessed oob, the real size of the contained, the index that was accessed if relevant. It will *not* tell you where in your code this happened

pb4: A more helpful to do things would be to roll your own vector<> implementation, but I don't usually use mine. I should though...

Default avatar.png JBM: oooh, nice

pb4: (not implementation, wrapper around vector and arary)

reCurse: Only if you need to avoid the heap allocation

pb4: I have both reCurse

reCurse: Oh for the accessor, right

pb4: I have the "stackvector" for no heap allocation, and the "heapvector" which is just a wrapper around vector for debugging purposes

pb4: I hadn't considered that before : can I "overwrite" the begin(), end() and [] operators for std::vector ?

reCurse: Yes sure

reCurse: As long as you don't get casted back to vector

AntiSquid: anyone here doing raic btw ?

eulerscheZahl: #raic2020

jrke: raic?

AntiSquid: oh secret chat :o

eulerscheZahl: i haven't started yet but i will play

Westicles: new azspcs on Dec 12th also

eulerscheZahl: topcoder marathon on 16th

dbf: AntiSquid, I've just started

Bobbadillio: russian AI cup

Bobbadillio: Somehow I'm always behind on chat. I need to learn to scroll down.

AntiSquid: submitted rust starter, it failed, i stopped

Bobbadillio: Ouch. How did it fail? I might have to take a look.

Bobbadillio: I've never done RAIC before, but maybe it would fill the Halite shaped hole in my life that remains after Kaggle's... attempt.

AntiSquid: did you like kaggle halite ? :D

Bobbadillio: Not at all

AntiSquid: btw raic LB is very random

Bobbadillio: I did Halite I-III, and the kaggle version is the first one that I just didn't bother with.

AntiSquid: https://russianaicup.ru/p/quick scroll down for raic starter

AntiSquid: kaggle isn't good for multi games

eulerscheZahl: i disagree on the randomness of the RAIC leaderboad

Bobbadillio: Yeah, I'm hopeful that they'll get better. A minimum starting point is support for non-python languages, IMO

eulerscheZahl: if there are many bots with a similar level of strength, of course there are some ups and downs

AntiSquid: dunno about this year

AntiSquid: was talking about last year

eulerscheZahl: i know

eulerscheZahl: i, recar is playing RAIC

Bobbadillio: Ah. This year, I think I've heard they're still considering fog of war, right?

eulerscheZahl: oh, recar*

Bobbadillio: I assume damage is deterministic?

eulerscheZahl: there will be fog of war in a higher league

AntiSquid: unit damage: 10-18 :D that would be fine imo

eulerscheZahl: looks deterministic to me

AntiSquid: it's when navigation acceleration and aim are random that really ruins it

eulerscheZahl: the only randomness is the order of actions

AntiSquid: i'd be fine with random damage is all im saying

eulerscheZahl: as you have to return a dictionary of <unitId, action>

AntiSquid: they randomize that ?

AntiSquid: do ships sink if they collide ?

eulerscheZahl: dictionary is random order by default

eulerscheZahl: depends on your exact command

eulerscheZahl: play default AI vs WAIT

eulerscheZahl: default will try to move to the opposite corner

AntiSquid: there's ordered map in c++, didn't check how they implemented it though

eulerscheZahl: and then shoot at the own units to reach the corner

eulerscheZahl: there is a breakthrough option in your command

Bobbadillio: the ordered/unordered discussion made me double check, but it looks like python switched to ordered dictionaries by default on 3.6

eulerscheZahl: the RAIC manual says that movement order is random

Bobbadillio: sure, makes sense. I wonder if it's really random, or just not guaranteed? Anyway, if they say it's random it's random.

ZarthaxX: toad what is the CPU time per turn for RAIC?

eulerscheZahl: dunno

eulerscheZahl: last year: 20ms / tick + 1min in total

eulerscheZahl: (timebank)

dbf: 40 secs for 1000 ticks, 1 sec max per tick

ZarthaxX: i see, tyguys

Zenoscave: cool blockout eulerscheZahl

eulerscheZahl: thanks zeno

Zenoscave: If a piece falls out of boundary but the x,z coordinate are fine, it still says the coordinate is out of bounds

Zenoscave: I like it so far though! I can't wait for it to polish up

eulerscheZahl: "falls out of boundary"? you mean that you give x,z in range but the tile is too big to fir completely inside?

eulerscheZahl: not sure if that needs a different error message

Zenoscave: I think it would be at least good to note in the instructions? Did i miss it?

eulerscheZahl: you mean to better explain the expected x and z values that your should print?

Zenoscave: Yes. It makes sense to me immediately, but I have experience with these kind of solo games. less experienced may find the instructions dense

Zenoscave: just food for thought

eulerscheZahl: i guess you are right. maybe a better visual example

eulerscheZahl: i don't really define x,y,z directions either

Zenoscave: Perhaps

Zenoscave: Also how do you rotate a piece?

eulerscheZahl: y = height might not be instantly clear

eulerscheZahl: you are given all rotations in input

Zenoscave: you say it in the image

Astrobytes: x,y,z directions are clear from the diagram no?

Zenoscave: ^ thi

Zenoscave: this

eulerscheZahl: not given in text. but yes, the picture might be enough

Astrobytes: if the user can't understand the diagram they have no business attempting the gameimo :D

Astrobytes: *game imo

Zenoscave: The picture should suffice, just a small expansion on what placeing a "2 2 1 ####" piece on 4 0 might be illegal

Zenoscave: in a 5x5x12 pit

Zenoscave: I agree with astro, it is a more advanced game for sure.

eulerscheZahl: not good for medium section?

Zenoscave: I'd say good for medium if extra explanation is given (spoon fed)

Astrobytes: I think medium is OK tbh, just depends if people are comfortable working with 3d coordinates

Astrobytes: I wouldn't imagine it would be an issue for most

Zenoscave: The problem itself is not hard. just foriegn

eulerscheZahl: i already give the rotations for spoon feeding

Zenoscave: Then I guess medium works :)

Zenoscave: I really like this game

Zenoscave: also Hi astro and euler

Astrobytes: hehe hi zeno, pewpew

Zenoscave: pewpew

ZarthaxX: no hi for me?

ZarthaxX: sad

eulerscheZahl: glad to hear this time it wasn't even about creating a game that's nice for the user but something that's interesting for me as a creator

Astrobytes: zaaaaarthoooo

Zenoscave: ZarthaxX!!!! I didn't see you were on

ZarthaxX: ASTROOOOOOOOOOOOOOOO

Zenoscave: PEWPEWPEWPEWPEWPEWPEWPEW

Zenoscave: hiiiiiii

ZarthaxX: Zenoscave yes im not talking lol

ZarthaxX: pewpewpepwepw

ZarthaxX: i have 2 consecutive exams tommorrow and the next day

ZarthaxX: im gonna die :D

Astrobytes: meh, you'll be fine

Zenoscave: Yikes zarthie

Zenoscave: no dying

eulerscheZahl: oh, i once had that too

Astrobytes: you got this mah dude

eulerscheZahl: 2 exams on Friday, one on Saturday

Astrobytes: It's brutal. But the momentum keeps you sharp

Zenoscave: I once finished an exam in 4 minutes flat

Zenoscave: It scared the other takers

Astrobytes: lol wat. Grade?

ZarthaxX: i dont have the 2 in the same day

Zenoscave: 105%

ZarthaxX: wtf toad 2 same day,illegal

Astrobytes: heh heh

ZarthaxX: 4 MINS LMAO

ZarthaxX: mah man Astrobytes ty

eulerscheZahl: momentum kept me so sharp, last thing i did was measuring the current in Volt

eulerscheZahl: up voltage in Ampere? I forgot

eulerscheZahl: stupid mistake costing me the better grade at least :D

Zenoscave: It was open ended short answer questions only. The prof is known for accepting any answer that proves you understand the answer no matter how formal or lacking it is

Astrobytes: amperes for current lol

Zenoscave: Most people took an hour

Astrobytes: awesome

ZarthaxX: current in volts lol sad

Zenoscave: isn't current colombs?

Zenoscave: I'm bad @ EE

Astrobytes: I think I made that mistake in my highschool physics exams euler

Astrobytes: *exam

eulerscheZahl: 3rd semester of Bachelor for me

Zenoscave: I forgot to do the back half of a final once

Zenoscave: didn't realize the page was double sided

eulerscheZahl: :D

Astrobytes: It depends on the context Zeno

Astrobytes: hahaha

Astrobytes: but more used for charge iirc

eulerscheZahl: pro tip: toilet paper has 2 sides too

sahilrox: 4, if you're willing to use the edges

Zenoscave: do blockout pieces have 2 sides?

PatrickMcGinnisII: :poop:

eulerscheZahl: 6 sides even if the rendering isn't glitching around

struct: raic is 1000 frames per player?

eulerscheZahl: yes struct

struct: damn

struct: if cg had that

eulerscheZahl: that's low for RAIC standards

Zenoscave: gz

eulerscheZahl: codeball had 18k frames

Zenoscave: struct on legend FC20

struct: ty zeno

Astrobytes: oh gratz struct!

struct: I got pushed from 40th to legend

struct: ty

eulerscheZahl: a full 5min match at 60FPS

Astrobytes: big push

eulerscheZahl: i think i congratulated already. in case I forgot: congrats

Zenoscave: Same I didn't even have a decent submit active when I was pushed

struct: thanks

struct: Now I need to work on this 3d stuff

Westicles: I once had a professor in a wheelchair who was sort of famous for doing TV specials. I tried to get on his good side with flattery and he manipulated me into mowing his lawn

eulerscheZahl: the Tom Sawyer prof

Zenoscave: Westicles did you end up on the good side?

Westicles: Well, I have the keys to his house and he left town for the summer, so that worked out. Otherwise, no

Westicles: had

Astrobytes: hahaha

Uljahn: almost 15M in 2048 :persevere:

eulerscheZahl: well done. and i thought the game would be dead by now

Westicles: Still mildly puzzled about what we missed that dbdr didn't

eulerscheZahl: the good path :D

Westicles: Yeah. I suspect you have to steer towards it early on.

MadKnight: how could 2048 be dead Automaton2000 ?

Automaton2000: i want to play the game

dbdr: https://i.snipboard.io/N5ZUGm.jpg

dbdr: that publish button looks dangerous :D

Westicles: Somebody tweet xevixevi, he's our only hope

dbdr: I got back CGFunge from her :)

Westicles: he's a her?

dbdr: I think so, based on google translate of one of her tweets :)

Westicles: That's gotta be like, what, 1/10,000 around here?

dbdr: Close to 90% of our respondents identify as “male”.However, the proportion of women who took part in our survey has progressed from 6% (2 years ago) to 8.7% (last year) to 11.5% this year.Baby steps in the right direction.

dbdr: https://www.codingame.com/work/codingame-developer-survey-2020/#page25

Westicles: Not saying this is evidence against it, but Other:I like liquor, I like cats, I like women

dbdr: well, the tweet I mentioned was actually a retweet, so I don't know :)

AntiSquid: still pushing for the 50% ratio in everything

lifetimeLearner007: does remainingTurns in PowerOfThor have any use in code golf?

lifetimeLearner007: I mean can we shorten the code if its used?

kovi: wow, nice dbdr

AntiSquid: oh i like this one, for all the JS haters on CG: "Node.js, React and .NETCore make the top three, closely followed by AngularJS and Spring."

kovi: cgfunge i mean. not sure what is happenening below 20k, but below 5k

dbdr: thanks kovi! (funge right?) I had to work a lot to get it back

dbdr: at 20-25k you are still solving the general problem, right?

dbdr: I think <10k is where everyone starts to use the specific list of numbers

kovi: i c

kovi: wicked hardcoders :)

dbdr: join the dark side, this is where the fun starts ;)

Westicles: Fixed, known validators and offline search?

kovi: i started raic...

dbdr: Westicles: yes

dbdr: euler even increased the number of validators to 100

dbdr: it's not enough :D

dbdr: but the hardcoding is an interesting problem anyways, so there is no issue

Westicles: Thanks, sounds like fun

struct: eulerscheZahl still there?

struct: I was having problems with stuff disapearing with three js

struct: but I think i fixed it, do you still have the problem?

dbdr: 36 seconds late

miszu: sup all

miszu: how's everyone?

struct: hi miszu

miszu: my MCTS is not working. Time to debug it

miszu: but at least I am confident about my game simulations

Default avatar.png DqmnJyres: hi

miszu: what's the correct way to add an offset to a pointer?

miszu: ptr + offset? Where offset could be value from 0 to 9 let's say

miszu: or am I forgetting something

struct: ptr + n

miszu: do I need to take account to the size of pointer?

Allis: @miszu It happens automatically.

miszu: ok ty

struct: I think pointers are always same size

miszu: I am having a weird bug and it is due to pointer arithmetic but can't figure why.

Allis: They are, but doing pointer arithmetic takes into account the size of the pointed to object.

Allis: So `ptr + 1` refers to a location in memory N addresses further down, where N is the sizeof whatever ptr points to.

miszu: http://chat.codingame.com/pastebin/d928b73b-9b8b-476d-a21a-8565131e653a

miszu: (node->children + i) is this how you get the correct pointer offset?

Allis: Seems like maybe you want `node.children` instead?

miszu: children is the starting address of yoru children

struct: are you writing anything in children + i?

miszu: well *test should be the children + i

struct: I dont think you are

struct: print the address of test

Allis: @miszu Right, but -> does a dereference, so you may be adding i to the pointed to object rather than the pointer itself.

struct: and address of node->children + i

struct: if they are not the same there is your bug

miszu: lemme print address

miszu: not the same address

miszu: children + 0 is correct

miszu: children + 1, both have different address

struct: how does newNodeInit knows the current node?

miszu: yeah

miszu: here

miszu: http://chat.codingame.com/pastebin/1d404a62-3de4-492f-8127-9b4ff8da5f50

miszu: NODE_POOL_NEXT starts from 0 and increments by 1

PatrickMcGinnisII: miszu yup, your mixing some things. where is your NODE_POOL_NEXT primitive/assignment?

miszu: what you mean?

miszu: it gets incremented by the ++

miszu: and then to make sure it's not out of bound I do the % SIZE

PatrickMcGinnisII: if it's a const, what does ++ really do?

miszu: const static int NODE_POOL_SIZE = 1000000; static Node* NODE_POOL[NODE_POOL_SIZE]; static int NODE_POOL_NEXT = 0;

miszu: it's not const

PatrickMcGinnisII: ahh it's just in caps

therealbeef: urgh, I get a lot of timeouts on the first turn, before my main() even starts. More on -O3 than on -O2. Does the executable not start up fast enough? Never happens in IDE fights, only in battles.

therealbeef: Also sometimes the first battles still use my previous bot version

PatrickMcGinnisII: so nodepoolnext is an array index

miszu: correct

miszu: I am sure it's something stupid

PatrickMcGinnisII: you are trying to perform a method -> on an int (nodepoolnext+i) should throw na error

PatrickMcGinnisII: an

struct: does this happen on first turn?

struct: on how many sims

miszu: 1st sim

miszu: like I get an undefined behavior

miszu: cuz it timeout with 0 error

PatrickMcGinnisII: hmmm, wierd stuff

struct: so the first sim gets this problem?

miszu: for sure the issue is here because the node and the + 1 is not pointed at same thing

miszu: yeah

miszu: it's the code I am showing you

miszu: something is off here

struct: yeah, but if it was for first turn it could be someting else

PatrickMcGinnisII: this is the problem line node->children = NODE_POOL[NODE_POOL_NEXT];

Astrobytes: I have usually an array of Node* nodes; Allocate first turn to NODE_MAX; thereafter it's: Node* child = &nodes[nextNode]; nextNode++;

PatrickMcGinnisII: ^ &

Astrobytes: don't ask me for debuggin help rn though, 4 cans of Stella and 2 codeine's down so I'm not reliable :P

miszu: oh... I forgot to dereference?

PatrickMcGinnisII: and + ($i*sizeof(node)) is suspect

miszu: make sens cuz my array is an array of pointers

miszu: so pointer pointer

miszu: no, can't put &

Astrobytes: when do you create your array?

PatrickMcGinnisII: if you have a blank nodepool

Astrobytes: *Node array

miszu: at beginning

miszu: I have an init function

miszu: http://chat.codingame.com/pastebin/5a2302c5-47fa-4b30-8277-d68eecf02f4b

PatrickMcGinnisII: when you create the new node and add it to the list, all you need to return is the array index

PatrickMcGinnisII: not a pointer to another spot in memory

Astrobytes: Yeah, it looks like you're allocating new nodes on the fly?

miszu: not on the fly

miszu: at turn 1, I create all my nodes

miszu: then when I need one, I reset values inside my node

PatrickMcGinnisII: your node() primitive isn't the same size with a variable number of children...how many kids did you allocate pointers for?

miszu: size has a value of 9

miszu: 9 children I have basically

PatrickMcGinnisII: i doesn't know the sizeof the node

Astrobytes: oh right

miszu: why you need the size?

miszu: isn't it automatically?

Astrobytes: Just checking my Oware code, I malloc(!) 16000000 Nodes first turn, but I initialise the members on use

miszu: yeah same

kfsdla: ligma

Astrobytes: jdsfklsd be relevant at least

struct: Also it might not be wise to have modulo there

miszu: yeah could be the modulus the problem

miszu: I am reading about pointers arithmetic

Astrobytes: modulo where?

struct: after you are out of nodes I think the modulo can be problematic yes

miszu: modulus is just for the next node

miszu: not for anything else

PatrickMcGinnisII: miszu use an addnode routine that you send the temp node * to, and returns the index in the array that it now points to.

Astrobytes: oh christ I just saw that, don't do that modulo

PatrickMcGinnisII: accessing a child pointer that doesn't exist yet is kinda wierd

miszu: where?

struct: found out why I was getting so much lag on chrome with threejs

Astrobytes: plugin?

struct: I need to disable antialisis

struct: new THREE.WebGLRenderer({ antialias: false });

struct: antialias*

Astrobytes: aha

miszu: ok I think I know why

miszu: node->children = NODE_POOL[NODE_POOL_NEXT];

miszu: this points to a child

miszu: but node->children + i doesn't guarantee that the next child is the next address of the beginning of child

miszu: so better to store the start index

Astrobytes: well, yeah

miszu: and access through the index

Astrobytes: use the index

miszu: :)

PatrickMcGinnisII: creating a temp node is not what you wanna do anyway, sim the move on the board, set the values of the child and the index of the child now in the parents list of children

Astrobytes: store childCount as you do

miszu: node->numChildren = size;

miszu: is the child count

miszu: simulations happen later

miszu: this code is to expand the node right after the selection step

PatrickMcGinnisII: in uttt there could be almost 80-9 children

miszu: 0 to 80 technically

miszu: but mostle <= 9

PatrickMcGinnisII: remember if a quadrant is alreaady decided then you can go anywhere

miszu: true

Astrobytes: is the teccles heuristic used throughout the game?

PatrickMcGinnisII: but if you are trimming the tree as you go to a max wifth of 9, then fine

Astrobytes: cause that would shave of a few branches

Astrobytes: *off

Astrobytes: Anyway, I don't play UTTT yet

Astrobytes: Just observational from me game-wise

PatrickMcGinnisII: you should still make the kids, you just don't have to point at them or destruct them

Doju: Anybody have a deterministic bot in bronze?

miszu: not teccle yet

miszu: just 1st move if I am X

Astrobytes: bronze what Doju?

miszu: the 4 4

Astrobytes: k

Doju: fall challenge

miszu: but how good is teccle though?

Astrobytes: Quite effective I hear

Astrobytes: Doju: probably?

miszu: Doju I reached silver using determinism

Astrobytes: If you mean one of us then I got Silver deterministically iirc

Astrobytes: Some people used random to get out of Wood so maybe still some of those bots are using that code

miszu: how sad if random moves allow you to go higher in ladders

Astrobytes: Wood leagues don't really count

Astrobytes: They're (supposed to be) just there to get a feel for the game

Zenoscave: what's the teccle_s heuristic

Astrobytes: Noob-friendliness I believe

miszu: for any competitions, 1st step is always to make a good engine and foolproof

miszu: then have fun with different algorithms

Astrobytes: Zenoscave: play a move that forces the other player to play in the same miniboard as you

PatrickMcGinnisII: miszu btw, I'm working on my MCTS for Bandas, my sim finally works, now testing my eval function and how many sims I can maxout with

Zenoscave: Oh those are good.

miszu: PatrickMcGinnisII that's amazing!

miszu: I wrote for hours unit tests to test my board states and moves and found 3 bugs

miszu: now I am confident and can just foccus on my MCTS

PatrickMcGinnisII: I wrote a library for board translations, found a bug in it yesterday... all over not adding a -1 to an array indexer... cost me hours

miszu: unit testing ;)

PatrickMcGinnisII: a freaking -1

miszu: happens to everyone

therealbeef: everyone that uses indexes

PatrickMcGinnisII: if (a[x]== should have been if (a[x-1]== little stuff can ruin you

PatrickMcGinnisII: er ruin me

PatrickMcGinnisII: darnit, I'm only getting 300 sims

PatrickMcGinnisII: ok, ranked 84th with a depth 1 eval

PatrickMcGinnisII: now lets see how a 300 sim mcts does

Default avatar.png Norby01: https://www.codingame.com/clashofcode/clash/1484003f78d6b0f7390424663401429f8c096ac

Default avatar.png Norby01: https://www.codingame.com/clashofcode/clash/1484003f78d6b0f7390424663401429f8c096ac

Default avatar.png Norby01: https://www.codingame.com/clashofcode/clash/1484003f78d6b0f7390424663401429f8c096ac

Default avatar.png Norby01: https://www.codingame.com/clashofcode/clash/1484003f78d6b0f7390424663401429f8c096ac

struct: stop

Default avatar.png Norby01: Ok

Default avatar.png Norby01: :(

Zenoscave: How long have people been using that heuristic

PatrickMcGinnisII: went up to 58th, was hoping for better

therealbeef: which heuristic?

Zenoscave: same sub move

therealbeef: is that a heuristic? my minimax bot does it out of its own I noticed :-)

PatrickMcGinnisII: my 750 sim mcts in UTTT only got me to 888th

PatrickMcGinnisII: should i stop the depth at like 10, and do an eval so i can get more sims...or leave it alone?

InsanePyro: anyone knows how to convert a string to float in lua?

InsanePyro: nevermind i figured out my problem

PatrickMcGinnisII: huh, doubling my sims and stopping at depth10 and keeping the eval performed better

PatrickMcGinnisII: probably work for uttt as well

struct: yeah mcts needs a good ammount of sims to do well

PatrickMcGinnisII: I just can't get there in php, but a truncated version still performs better than depth 6-8 minmax

Zenoscave: it seems 9/10 of my first losses were as 2nd player in UTTT is this normal?

Zenoscave: ~2/3rds of all my losses are 2nd player

Zenoscave: I think I have a bug

PatrickMcGinnisII: first player should have an advantage, especially if they play 4 4... but > 66% is a bit much

Zenoscave: and I counter with 3 3

PatrickMcGinnisII: glhf got my CG fix for the day

Default avatar.png isaiahtaylor: Just me or is site really slow right now?

Zenoscave: plays are slow yes

IfIHadATail: I'm having problem also

Default avatar.png isaiahtaylor: Does that affect Clash of Code gameplay?

Zenoscave: possibly

Zenoscave: but it should effect all the same no?

Zenoscave: or similarly

Default avatar.png isaiahtaylor: Theorhetically

IfIHadATail: well I'm guessing it is all times locally and once all are submitted then it evaluates. I harly doubt ping would affect it

Default avatar.png isaiahtaylor: Btw, I'm brand new here... some of you who have been here a while, how would you describe the momentum of this platform? Growing / shrinking? I'm trying it out because I'd like something like this to replace competitive FPS in my life

IfIHadATail: growing by far

IfIHadATail: it gets better and better every year

Default avatar.png isaiahtaylor: I'm a bit concerned that yesterday was my first day of play and I'm 3477th in Clash.

Zenoscave: lately growing. but had a stay of stagnation for a bit

IfIHadATail: that are doing great thing

IfIHadATail: things*

IfIHadATail: well their aren't TON of clashers but the competition can get fierce at the top

Default avatar.png isaiahtaylor: I like competitive FPS because there's a nearly infinite skill ceiling, there's always thousands and thousands of people better than you

Default avatar.png isaiahtaylor: That's good to know

Zenoscave: CoC is the begining. not infinite ceiling by far but there's room to grow

Default avatar.png isaiahtaylor: ok. how would you order the game modes?

IfIHadATail: well I mean this isn't like a giant platform that has millions of players so take it for what it is : )

Zenoscave: I wouldn't order them. They serve separate purpose

Zenoscave: But if you're looking for competition try multi's

Zenoscave: That's a much steeper ascent than CoC

IfIHadATail: also you don't have to worry about some toxic 12 year old tell you to suck their dick here either :D

Default avatar.png isaiahtaylor: Gotcha. Thanks! Multi's short for...

Zenoscave: multiplayer

Zenoscave: the bot leagues

Zenoscave: https://www.codingame.com/multiplayer/bot-programming

Default avatar.png isaiahtaylor: Thank you!

IfIHadATail: yeah the compettative botting is where a lot of the action is at

Default avatar.png isaiahtaylor: Ok sweet. Thanks for answering my noob questions!

Botting: I've only seen the lower levels of that, does it get algorithmic?

Default avatar.png isaiahtaylor: e.g. binary search to find which bot to kill?

IfIHadATail: depends on the game

Zenoscave: and league ;)

IfIHadATail: yeah

Zenoscave: starting around silver you typically have the full ruleset and from there it is just advancement of player competitive rank

Zenoscave: or bronze in the newer games

Default avatar.png isaiahtaylor: Sick. Well thanks much gents. I'm quite hopeful that this can replace CS:GO for me :)

Default avatar.png isaiahtaylor: I saw the other day that I have like 2500 hours in that game

Default avatar.png isaiahtaylor: And I was like. Well damn, I could've at least been training my coding muscles.

Zenoscave: It certainly is fun but it has an addicting aspect to it too

Zenoscave: At some point all things do

Zenoscave: but yeah nothing too harmful in it. until you do code for CG rather than code for a job... at the job

Default avatar.png isaiahtaylor: Exactly :D

Default avatar.png isaiahtaylor: Legibility out the window!

Default avatar.png isaiahtaylor: My attitude on it is that it's not really about the professional skillset, it's a competitive outlet that happens to flex the right brain muscles.

IfIHadATail: yeah man coding over CS:GO is by far time way better spent :P

Default avatar.png isaiahtaylor: btw I'm typing on the website... is this also Discord?

IfIHadATail: yeah the button above this chat actually

IfIHadATail: but it's not insainely active but people will respond if you write something

IfIHadATail: but I think it is also just waiting for the right people to join to light that spark

Default avatar.png isaiahtaylor: Got it. But this chat we're in right now is not a port to a discord channel?

IfIHadATail: no, seperate

Default avatar.png isaiahtaylor: :ok_hand:

Default avatar.png kenculate: Programmer Aptitude Tests

miszu: so I finally ran my program

miszu: in uttt

Bobbadillio: exciting! Are you beating me?

miszu: good news is I can simulate 25k moves

miszu: bad news, it timeouts in the middle of the game

Bobbadillio: That IS bad news, but you are beating me, so that's cool! :D

miszu: if I can fix this timeout then it will be interesting

Default avatar.png Gus161: yo

Default avatar.png Gus161: ya queen

Default avatar.png Rodrigo_the_coder: :(

Default avatar.png Rodrigo_the_coder: ): D:

Default avatar.png Rodrigo_the_coder: ):

rockstar555: hii everybody

Default avatar.png Rodrigo_the_coder: ;-;

MadKnight: hey hey

MadKnight: how's it going guys ?

miszu: I can do 19k sims in my game

MadKnight: is everything going smoothly ?

miszu: but I can't beat the gold boss

Default avatar.png Rodrigo_the_coder: boss configuration:

Default avatar.png Rodrigo_the_coder: https://github.com/CodinGame/game-ultimate-tictactoe/blob/master/config/Boss.java

Default avatar.png Rodrigo_the_coder: in java

tomatoes: thats wood or bronze

Default avatar.png Rodrigo_the_coder: wood - legend

struct: miszu as first or 2nd player?

struct: also 19k = final states right?