Chat:World/2021-11-11

From CG community
Jump to navigation Jump to search

programX: how to improve python skill

programX: clash of code is so hard

Husoski: Start with easy practice puzzles. When you're beginning, a time limit does not really help you.

Default avatar.png baominhtran: clash of code is so hard

jacek: oO

Uljahn: oh my

BlueArtemis: I hate Perl with 2D arrays

jacek: you donth hate perl otherwise?

Husoski: I'm not a fan of Perl, period. Putting special characters in identifiers to indicate data types has a '70s-'80s BASIC feel to me. Not a fan.

Default avatar.png Maish003: ABOBA

Husoski: I think you spelled that backwards on purpose...

Husoski: :)

Default avatar.png Maish003: :slight_smile:

Default avatar.png RandomAustralian: I got scammed in clash of code

Husoski: How so?

Default avatar.png RandomAustralian: I did the tests and it all ran successfully

Default avatar.png RandomAustralian: So I submit it

Default avatar.png RandomAustralian: then it gave me a 0% :(

Husoski: Weird. I've gone from 100% to 25% but never to 0.

Husoski: Just report it as bad test cases...

Default avatar.png RandomAustralian: Alright

jacek: oO

Uljahn: you might consider becoming deterministic by fixing the seed :upside_down:

jacek: seed is 0 and i use xorshift

ninnghazad: i beam search basically best first with a limited queue size?

ninnghazad: is

Uljahn: yep, best-k where k is a beam width, also there are variations like chokudai search

ninnghazad: hmk ,thx

BlaiseVonEbuthIV: It's not the queue that is limited, it's the count of neighbours considered.

jacek: chart looks promising for thompson https://sudeepraja.github.io/Bandits/

UnicornFlake: h

MadKnight: Automaton2000

Automaton2000: why is your bot a ga ?

jacek: here we go

Uljahn: jacek: any insights on GA for SR? what is a bare minimum simcount for it to converge? also is it reasonable to use faster inexact simulation in there?

jacek: each genome is 16 actions, population size is 100 and i can do around 200 generations

jacek: https://www.codingame.com/replay/590511492

jacek: the number on top is generations

jacek: also i reuse the actions from previous turns and just add random one

jacek: fitness is in type of good old target -3vel

Milanovich: Anyone playing in Night of War?

jacek: last week puzzle of the week?

Milanovich: Yeah, with the soldiers

jacek: played some when it first came

Milanovich: I'm in wood 1, was wondering if there were any leagues past this, like bronze to diamond?

jacek: no. its community game

Milanovich: Oh nice, so that means im in top 12

jacek: :tada:

Milanovich: Its so hard to beat any of the players above me

Uljahn: jacek: thanks, very inspirational

jacek: :+1:

MadKnight: Uljahn what's SR ?

jacek: solo csb

jacek: i remark the upside down pony uses just output from the NN, 'trained' by neuroevolution on random tracks. while quite low, apparently it can finish any unseen track

Default avatar.png UnnamedCodinGamer: search race

Default avatar.png UnnamedCodinGamer: I annealed it

Default avatar.png UnnamedCodinGamer: should try GA, now that I know it works better

jacek: depends. could be a matter of hyperparameters choice

jacek: i never done SA myself

Default avatar.png UnnamedCodinGamer: you are right

Default avatar.png UnnamedCodinGamer: It is hard to make such general statements

Default avatar.png UnnamedCodinGamer: it might be the mutation or the parameters that might be improved

Default avatar.png UnnamedCodinGamer: I prefer SA since it is simpler

Default avatar.png UnnamedCodinGamer: the other thing that I can not quite get my head around with GA is how to combine the parents into a new offspring in a way that makes sense for the problem that needs to be optimized

jacek: and for SA i dont know how to choose the 'neighbour'

Default avatar.png UnnamedCodinGamer: yes, they are similar in that sense

Default avatar.png UnnamedCodinGamer: I just mutate the solution

Default avatar.png UnnamedCodinGamer: delete a step, change a step, or add one

jacek: visualizing helps. after a while i decrease mutation https://streamable.com/a52fbn

juma: I heard there a history tab where I can see all the games I played and my code answers. where can I find that?

jacek: in the game ide on the left

jacek: results and history tab or history

Default avatar.png UnnamedCodinGamer: do you have a global mutation rate variable that you decrease?

jacek: yes

Default avatar.png UnnamedCodinGamer: this might be worth trying in SA

Default avatar.png UnnamedCodinGamer: this is the thing - they are general approaches and there are so many clever/dumb things that have to do with the implementation

Default avatar.png UnnamedCodinGamer: you have to know the tricks and also if they are applicable to the problem at hand

Xehanort: Hi everyone! In Code4Life, I print GOTO MOLECULES and the target in the next iteration is MOLECULES, doublechecked it from the output, what is going on? Could it be a bug? :(

Xehanort: *I meant I print CONNECT <number> and target changes on its own

struct: I think if you go to molecules then connect A-E the target should still be molecules

struct: only GOTO should be changing the target

Xehanort: Thats the problem exactly, I am in DIAGNOSIS and I get sample data with CONNECT <X> (I see that in the output) and suddenly I am in MOLECULES, without ever printing GOTO MOLECULES. Only the enemy player prints GOTO MOLECULES. Is there any chance of the game messing up my command with the GOTO command of the enemy player?

Uljahn: maybe you are desyncing, because changing locations isn't instant :thinking:

struct: yeah if you print multiple thing per turn things can get messy

struct: I would check that first

Xehanort: hmmm how to check it? I saw that there is an ETA for moving between locations but I am still in the wood league and I ignored it

Xehanort: (I thought it was instant for the wood league)

struct: it happens if you output more than one action per turn

Xehanort: I made sure I print only one action per iteration of the game (I have only one print statement at the end of the game loop) and the problem persists...

Terrain2: oh no! i solved it to 1st place but tried to shorten to cmp, found out it didn't exist in py3, and while looking for an alternative time ran out and i didn't get to submit my working one :(

Afonso_Soares: no

Dydyx_08: Why do I love fucking children?

Default avatar.png Authorized[][][]: r/hol_up

jacek: oh my

Westicles: can someone delete what he posted here?

Westicles: https://www.codingame.com/contribute/view/7352dc06dcce447cd96a058f0bb2509a70b3

BlaiseVonEbuthIV: You don't like it ?

struct: done Westicles

BlaiseVonEbuthIV: Is he banned now?

Westicles: thanks struct

nyloc: why would this print(eval(input().replace(" ","**2+")+"**2")) not give the sum of squares of a line of space separated integers?

struct: replace(/\s/g,"**2+")

struct: or just replace(/ /g,"**2+")

struct: without the global flag (g) it will only replace the first match

BlaiseVonEbuthIV: Thanks struct.

struct: np

Default avatar.png Dydyx_09: why does my mother suck me after sodomy?

BlaiseVonEbuthIV: Because she like shit, that's why she love you...

BlaiseVonEbuthIV: Sorry for that chat. My cat walked on my keyboard.

eulerscheZahl: don't feed the trolls BlaiseIV

eulerscheZahl: i'm late for ban, all trolls are harvested already

struct: well they are all the same

struct: same IP

BlaiseVonEbuthIV: Sorry, was my cat. :smirk:

BlaiseVonEbuthIV: Ok. Ok. That was me. But I didn't controlled it. It spontaneously came from the heart.

jacek: mhm

eulerscheZahl: wait, you can see the IP struct?

struct: yes

BlaiseVonEbuthIV: :spy:

eulerscheZahl: on the forum profile or somewhere else?

struct: forum yes

Uljahn: ye, admin tools on the forum

eulerscheZahl: ok, i know that one

jacek: you see IP? :scream:

eulerscheZahl: yes

BlaiseVonEbuthIV: Unlimited pawa!

eulerscheZahl: the forum shows a lot, i saw really surprised when I found out

struct: I want to try the disable account thing to check if its for entire website or only for the forum

BlaiseVonEbuthIV: Forum.

jacek: how do you know

BlaiseVonEbuthIV: My ancester was mod.

eulerscheZahl: forum is a software package on it's own. a bit like discord, but slightly more integrated

eulerscheZahl: still separate

struct: I see

eulerscheZahl: disquss (i think i spelled it wrong)

BlaiseVonEbuthIV: Yup. You didn't really thought CG developped such a thing? :smirk:

eulerscheZahl: *discourse

eulerscheZahl: https://meta.discourse.org/t/help-us-build-the-new-2-0-dashboard/86468

eulerscheZahl: https://imgur.com/a/i2h6BO1 i didn't know that we can change this text

Default avatar.png criptomaster: how yall like my site

Default avatar.png diverdansinson233456: bau mather fauker

Default avatar.png diverdansinson233456: mother fucker

Uljahn: Automaton2000: give 1 million cats 1 million keyboards and they'll eventually type the entire works of William Shakespeare

Automaton2000: i know what they are

BlaiseVonEbuthIV: cats?

Uljahn: ye, they type by walking

BlaiseVonEbuthIV: I undestood. Was answering to Automaton2000 :3

Automaton2000: might be that you are from the same problem

eulerscheZahl: here we have the infinite MK theorem: an infinite number of MKs writing random things will eventually write the perfect bot for CSB

BlaiseVonEbuthIV: Enough of one... -_-

Default avatar.png Yaa-Seen: fk emmanuel macron

BlaiseVonEbuthIV: Totally! But why? :thinking:

Q12: Hi, can the Certification score be higher than "better than 99% of professionals"(>99%)?

Jerrasterix: Nope

BlaiseVonEbuthIV: The real question is "Can it be lower?"

Q12: :laughing:

Q12: Is it like that because not much people did it or because the level of the questions?

Q12: When did this came out?

BlaiseVonEbuthIV: Few weeks.

Jerrasterix: Both

Jerrasterix: The questions are firking easy for professional level

Q12: I think it is nice idea and could be use for practice for interviews but the level of the question should definitely be higher.

Q12: If CG want the Certification score to mean something

BlaiseVonEbuthIV: Because that's fake. I guess there's no percentage involved, only scores. If you the max score you are "better than 99%", if you got a little less you're "better than 80%"...

BlaiseVonEbuthIV: Still not see the interest... If it was released on april 1st perhaps, but in october... :thinking:

Jerrasterix: maybe new trend called october fool :shrug:

UndercoverToad: > The real question is "Can it be lower?"

I was wondering the same

UndercoverToad: managed to end the test without even looking at a single question. resulted in a poor score

BlaiseVonEbuthIV: I think yes.

BlaiseVonEbuthIV: Oh.

BlaiseVonEbuthIV: Only better than 75% of pros?

UndercoverToad: https://www.codingame.com/certification/5pZr0mTI4GwiJwb94LJ3Aw

UndercoverToad: "has been recognized fully capable and skilled" <1%

UndercoverToad: yeah, sure :upside:down:

UndercoverToad: yeah, sure :upside_down:

BlaiseVonEbuthIV: :rofl:

BlaiseVonEbuthIV: Well, 15 minutes to finish it in a language you don't really now, and get "You're better than 99% of professionals" sounds like a f'ckin troll...

eulerscheZahl: professionals are so low skill these days

BlaiseVonEbuthIV: Yeah... ;rolling_eyes:

BlaiseVonEbuthIV: Shitty ; too much C++

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

Andriamanitra: i got >99% using C#.. i had never used C# before

BlaiseVonEbuthIV: You don't use C#, that's why you're better than the ones who use it. :smirk:

Andriamanitra: makes sense :thumbsup:

DirtyMagic64: :rofl:

struct: I would like to know where they get these % from

BlaiseVonEbuthIV: Something as what I said. Probably a score range associated to each percent range.

struct: ah I see

eulerscheZahl: yes, sounds likely to me. no real percent

eulerscheZahl: 70% of the statistics are made up on the spot

struct: this is when I tried it

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

ankan2526: how can I get certified?

UndercoverToad: at least I was much faster than your 14min

eulerscheZahl: go to your profile page and click a language ankan2526

eulerscheZahl: there https://www.codingame.com/profile/eb68a640d6db52d62103d41684d583f91913654

eulerscheZahl: oh, you did that already

struct: The first puzzle was the hardest for me

struct: and it was the one that counted the less points

ankan2526: I want to get certified in other languages too

eulerscheZahl: then solve a puzzle in them first

Default avatar.png manglebot: ;

VENOMS: http://chat.codingame.com/pastebin/730ee096-0b51-4672-b6ec-6b0d9dc7262b

VENOMS: https://www.codingame.com/profile/eb68a640d6db52d62103d41684d583f91913654

VENOMS: https://i.imgur.com/C5jmivc.png

VENOMS: https://www.codingame.com/certification/5pZr0mTI4GwiJwb94LJ3Aw

BlaiseVonEbuthIV: He found how to copy the code of a web page! We're lost! :scream:

eulerscheZahl: i'm always afk for 2min when this happens. and then I see > VENOMS has been banned by struct.

eulerscheZahl: or diverdansinson233456 has been banned by Uljahn.

struct: He is a hacker he will unban himself

struct: today was a hard day for mods

jacek: thats what she said

eulerscheZahl: i feel like i'm always late. but that's a good thing, you guys are keeping the chat clean

jacek: Automaton2000 how fast are you

Automaton2000: were you the one of your pods

CobraSoul: bruh

Default avatar.png P3N1SL0V3R: dang i forgot this existed for some reason-

Default avatar.png ZaccTheGoat: yo

Default avatar.png bigboi29: hey big daddys

Default avatar.png ZaccTheGoat: chode

Default avatar.png ZaccTheGoat: hey who dis

Default avatar.png ZaccTheGoat: bigboi29

Default avatar.png ZaccTheGoat: yhk

Default avatar.png ZaccTheGoat: j

Default avatar.png bigboi29: helo

Default avatar.png ZaccTheGoat: g

Default avatar.png ZaccTheGoat: here is the thinghttps://www.google.com/search?q=chode&rlz=1C1GCEA_enUS979US979&oq=chode&aqs=chrome..69i57j0i512l2j0i10i512j46i512j0i512j0i10i512j0i512l3.5216j0j7&sourceid=chrome&ie=UTF-8&safe=active&ssui=on

struct: stop spamming

Default avatar.png ZaccTheGoat: hgh\

Default avatar.png ZaccTheGoat: g

Default avatar.png ZaccTheGoat: g

eulerscheZahl: and again i tabbed away a second too long

eulerscheZahl: and now I'm the one getting a private message

struct: sorry

eulerscheZahl: it's ok. now that the private chat opened, I see that the same user already messaged me yesterday

eulerscheZahl: yesterday his excuse was "my friend type something bad while in the restroom"

BlaiseVonEbuthIV: It's a goat... Sacrifice it to me! :imp:

Default avatar.png bigboi29: hey

Astrobytes: Remember not to ban anyone, "make chat fun again"

eulerscheZahl: we aren't on strike anymore, are we?

eulerscheZahl: i should ask my union rep

Astrobytes: No. Check the chatlogs from yesterday, we're supposed to keep trolls around to keep the chat fun "like it used to be"

BlaiseVonEbuthIV: Hmm... I preffered "Yes we ban" Astrobytes

jacek: thats... why im here

eulerscheZahl: oh, is that a squid or MK quote?

Astrobytes: The former.

ninnghazad: oh, the good old times.

eulerscheZahl: either way i don't feel obliged to follow that statement

jacek: too much squid game

Astrobytes: Indeed.

struct: im almost running out of bans for the day

struct: almost hitting daily quota

Astrobytes: Busy day?

ninnghazad: when you could say what you thought and not get banned all the time.

eulerscheZahl: a laudator temporis acti

struct: was busy this morning

eulerscheZahl: you always ban right before me

struct: had to ban from world, fr, delete comments on contributions

jacek: quidquid Latine dictum sit, altum videtur

eulerscheZahl: at least this afternoon, in the morning i was working

ninnghazad: "working"

eulerscheZahl: i implied that even the ancient Romans said that everything was better in the past

eulerscheZahl: so we have >2000 years of just getting worse

ninnghazad: but were they right?

struct: but is worse liner or exponential?

jacek: being single cell organisms back then... that was awesome

ninnghazad: good 'ol cavin' times

eulerscheZahl: it's just getting different. and the older ones don't like changes :older_man:

eulerscheZahl: we can't even have gladiator fights for life and death anymore

ninnghazad: mh, i'm kinda old. and i think world best it's ever been. fastest hardware ever.

Astrobytes: Well, we could...

eulerscheZahl: or die from the plague

Scarfield: just wait a few decades

Astrobytes: lol, truth

BlaiseVonEbuthIV: "Melius erat ante" famous Caesar quote.

eulerscheZahl: "it was worse before" if i'm not mistaken

ninnghazad: i bet being single cell organism isn't all that great. like being hungry all the time.

BlaiseVonEbuthIV: Nah. Before that

ninnghazad: now we can be obese and decadent. at least like 0.001% of us.

ninnghazad: all hail or obese and decadent overlords.

BlaiseVonEbuthIV: I'm not obese.

eulerscheZahl: i'm a direct descendant of Carl the Great

Scarfield: https://www.youtube.com/watch?v=1zBbt5jmGAU

Scarfield: I dont know of him, cant have been that great

BlaiseVonEbuthIV: I'm a descendant of no one... I'm here since the begining... I'm so old...

eulerscheZahl: looks like the English name is Charlemagne or Charles the Great

Default avatar.png bigboi29: CAP ur not the great but u are at coding

eulerscheZahl: https://www.theguardian.com/science/commentisfree/2015/may/24/business-genetic-ancestry-charlemagne-adam-rutherford

Scarfield: ah Charlemagne i know of

Default avatar.png bigboi29: t up

eulerscheZahl: i also won the Nobel prize the peace Nobel prize 2012(?) which went to the European Union

Default avatar.png bigboi29: sorry that was my friend i was with my counseler

Scarfield: every european should also be a descendant of Djengis Khan

BlaiseVonEbuthIV: Nope.

MasterDuck: Hello! Is it possible to see a summary of the ratings given to the CoCs somwhere?

Scarfield: 1 in 200 ~ everyone

BlaiseVonEbuthIV: Scarlemagne

Scarfield: xD

BlaiseVonEbuthIV: DjengisZhal

Default avatar.png bigboi29: hello

BlaiseVonEbuthIV: Dsching, Dsching, Dschinghis Zhal He Reiter - Ho Leute - He Reiter - Immer weiter!

DirtyMagic64: I tried to solve the puzzle, that I didn't finish in CoC. For this one Test in IDE doesn't work: https://www.codingame.com/contribute/view/179308ea4495a7fe36cec1429ea11d433bde

DirtyMagic64: is there a fix?

Westicles: just downvote it. in the future all clashes will be by Westicles

DirtyMagic64: seems reasonable

struct: never saw that bug

BlaiseVonEbuthIV: You can also post exotic videos links in the comments of his contribs.

jacek: why would one post such link https://www.youtube.com/watch?v=dQw4w9WgXcQ

BlaiseVonEbuthIV: Don't click...

jacek: most of you probably know the code

eulerscheZahl: i know XcQ

struct: DirtyMagic64 try with this link

struct: https://www.codingame.com/ide/demo/903604c58b91a3b5a7ade18f218fe1c736fe84

jacek: struct how did you come up with that link

struct: i tried all possible combinations

eulerscheZahl: clever

struct: I clicked edit contribution then pressed test on ide at the bottom

BlaiseVonEbuthIV: I personaly clicked on "test in the ide" normally and it worked...

eulerscheZahl: that's a 300+ clashes thing, not fair

eulerscheZahl: i clicked "test in the IDE" and it failed

eulerscheZahl: the reason is that the last edit was done by a bot

struct: I also tried to submit it but it gives an error

eulerscheZahl: and somehow that moderation bot breaks the "play in IDE" button

BlaiseVonEbuthIV: Works perfectly. Just did it again...

jacek: room for exploitation? :imp:

eulerscheZahl: oh, now the IDE button is working again

eulerscheZahl: you fied it struct

eulerscheZahl: fixed

struct: nice

eulerscheZahl: and BlaiseVonEbuthIV was just too slow to test it

eulerscheZahl: someone even reported these unplayable contributions, they all had the moderation bot in common

eulerscheZahl: then thibaud told staff

DirtyMagic64: thanks!

Westicles: wow, my mighty DAWG is pulling in XP like crazy

eulerscheZahl: *the devs

jacek: wontfix, known issue?

eulerscheZahl: because it's at the premium spot right before the 30 days expire

eulerscheZahl: guess how trolls vs castle got 400 upvotes

BlaiseVonEbuthIV: I tested before you, but that 's probably caused by time decalibration. :smrik:

eulerscheZahl: quest map: "upvote a contribution" ok, i'll just click the first one

Westicles: yeah, it was a lucky placement for sure

eulerscheZahl: yes, synchronize your clock

eulerscheZahl: good night, cat is calling :D

struct: gn

BlaiseVonEbuthIV: https://www.urbandictionary.com/define.php?term=cat%20call

jacek: oO

BlaiseVonEbuthIV: Just sayin' :3

MSmits: Westicles

MSmits: I am stuck on your easy puzzle retaining water

Westicles: heh heh

MSmits: might I suggest changing the difficulty to medium :P

Westicles: it started as a clash but they said it took a little too long...

MSmits: I had a brute force method that worked, but was too slow. Then I changed to a recursive method and it doesn't work yet

Default avatar.png UnnamedCodinGamer: @MSmits how would that help you? :)


jacek: smits cant do clash? oh my

MSmits: not at all, but it feels worse to fail on easy

Default avatar.png UnnamedCodinGamer: If I am not mistaken, there is an easy way

Westicles: just pour water everywhere and let it drain

Default avatar.png UnnamedCodinGamer: I bfs-ed it

MSmits: Westicles thats the first thing i did

Westicles: well, if it makes you feel better the french also hated it :P

MSmits: i had a while loop that repeatedly checked each neighbor from each cell

MSmits: if none changed, it terminated

MSmits: was too slow

Westicles: huh, that should work

MSmits: it worked for test 1 to 4

MSmits: failed on 5 and 6

MSmits: or does something else change in 5 and 6?

MSmits: could be i had a bug, dunno

MSmits: possibly doing this in c++ is not the best idea

Westicles: they are just bigger

Westicles: https://www.codingame.com/forum/t/community-puzzle-retaining-water/189374/16

Westicles: well, and random

MSmits: those 3D pics are nice!

MSmits: well i dont know why my bruteforce didnt work, but the recursive function works now. Array was too small :)

jacek: maybe theres paper for that

MSmits: upperLimit[25][25] instead of [40][40]. I confused the size with the maximum water height

MSmits: still think it should be medium

MSmits: maybe you should write one jacek

MSmits: or play :soccer: with it

jacek: :thinking:

MSmits: :newspaper: :soccer:

jacek: still in wood 2 in 9mm?

struct: where is your 9mm NN?

jacek: as soon as i finish the sim

jacek: i had loa nn when it was in contribution state but i didnt want to discourage people from entering

Default avatar.png Win4life: how is it going evryone

struct: will you use 2 nets, or you dont think it will be needed?

jacek: 2 nets?

struct: from placement phase to the actual game

jacek: havent looked into the game

jacek: but probably 1 net

struct: not NN bots seems to have 2 evals

jacek: oh?

struct: they use 1 before all stones are placed and the other one after

ESilguero24: is there any way to keep working on a problem even if the clash is over?

grahamcracker1234: not that I know of, it's very unfortunate

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

**TiopazHc slaps TiopazHc Funciona around a bit with a large fishbot

ESilguero24: sad

MSmits: haven't worked on nmm much I need a better eval or an ab bot to get out of wood 2. I was just counting pieces

MSmits: counting pieces combined with mcts is not enough i think

MSmits: it's kind of an atypical game compared to other boardgames

MSmits: pretty difficult. Got the sim to work though

MSmits: Also I think I can solve it pretty easily, but I want to have a real bot first

MSmits: The endgame book required to solve it is over 100x smaller than the crazy one I made for oware :P

Scarfield: what is an endgame book actually? how can you book something that complex

MSmits: an endgame book in general?

MSmits: in this case it's just the positions and whether they are W/L/D

MSmits: or W-time/L-time/D

MSmits: the time component might be needed because the game is limited to 200 turns. If you win in 201 turns it's a draw

MSmits: plies i guess, not turns

MSmits: the way you do it is not that complicated. You start from the smallest possible endgame and work your way up

MSmits: generate all 3x3 states

MSmits: make them all do each possible move. Some will immediately end. then do it again and use the ended games to end more games etc.

MSmits: repeat until no more games will end. Then you only have games left in an infinite loop = all draws

MSmits: it's more or less what i did for oware. I wrote it up in a playground

Scarfield: :thinking: i dont get it :)

MSmits: that's because i didn't explain it in enough detail

MSmits: do you want me to?

Scarfield: sure!

MSmits: ok, so imagine the 3 vs 3 nmm board

MSmits: white is moving

MSmits: each has 3 pieces

MSmits: now imagine all configurations of that

Scarfield: nmm?

MSmits: nine mens morris

struct: three mens morris

MSmits: well yeah

Scarfield: ah thought this was for cttt

MSmits: cttt is interesting too

MSmits: except for the stupid mirror thing

MSmits: but do you want me to continue the nmm thing?

Scarfield: yea

MSmits: ok, so you have all possible 3 vs 3 boards

MSmits: now loop over them, try all possible moves for them

Scarfield: (just thought a rule to disallow mirrored moves in cttt might be the way)

MSmits: some of those boards will have a winning move

MSmits: for those you immediately store the end result

MSmits: (a win)

MSmits: then you loop over the entire list of states again

MSmits: no games will immediately end

MSmits: but

Scarfield: ah and work "down" from there

MSmits: some will lead to a game you alreadt solved

MSmits: which means its a loss

MSmits: (win and loss being alternating)

MSmits: you keep doing it until no changes happen

MSmits: and then all leftovers are draws

MSmits: they are just cycling in some way

MSmits: it's somewhat messy because you have to do it from both p1 and p2's perspective. You flip the board for the lookup of the gameresult after a move

MSmits: to change player perspective

MSmits: the stored states are always from the perspective of the player to move

Scarfield: makes sense, but it doesnt seem viable for a game like cttt, you have to have some limit on the endgame states i presume

MSmits: yeah there are, for all intents and purposes, an infinite number of states there

MSmits: it only works on converging games

MSmits: checkers, chess, oware

MSmits: bandas

MSmits: and 9mm (or nmm)

Scarfield: got it ty :)

MSmits: any time :)

Scarfield: well at least the idea

MSmits: yeah plenty of reading for this

MSmits: the hardest part is generating the states and indexing them

MSmits: you want to put them in an array

MSmits: wayyy faster than a map

MSmits: but then each state has to map to a number

MSmits: to use as index for the array

MSmits: the math has lots of factorials

struct: you can also create your own map implementation

MSmits: yeah, but it will still be slow unless you use an array and store your states compactly

MSmits: with fast access

MSmits: for 9mm it probably wont matter as much, it's a small game

Scarfield: so it wont be padded, but dependant on the hash values of states`?

MSmits: yeah some small padding is ok, as long as it increases the size 10-30% or so. Not by 100% or more

struct: ah yes for end games its easier to do this

struct: I was confusing it with TTs

MSmits: with checkers there are some impossible states that have a place in the array, but it isn't used

Scarfield: TTs i know of, still havent implemented, but didnt understand the idea of endgame books until now :)

MSmits: oware for example, has states where all 12 holes have seeds

MSmits: this is impossible

MSmits: but they still have an index in the book array

MSmits: well it's only possible for the opening, where all holes have 4 seeds

MSmits: after a move there is always 1 empty hole

Scarfield: unless you land in an empty hole?

MSmits: you cant

MSmits: they are skipped

Scarfield: okay, havent player oware, was thinking kalaha

MSmits: well i should say, the hole you play from is skipped, other empty holes arent

MSmits: yeah there's tons of mancala games. Even our oware is pretty unique

MSmits: anyways, if you want to know more. It's here: https://www.codingame.com/playgrounds/58572/endgame-books-in-oware-abapa

Scarfield: hmm wouldnt the "disallow mirrored moves" in cttt work, even if its only not allowing to mirror opponets previous move?

Scarfield: bookmarked :)

MSmits: it might work, not sure. Seems like an ugly fix though

MSmits: I prefer irregular boards. Maybe the odd-size board works too

Scarfield: odd-size just gives p2 an advantage of getting the middle cell i guess

MSmits: p1 you mean?

Scarfield: steal

Scarfield: i see steal as needed for odd-sice

Scarfield: sizeØ

Scarfield: ø=*

MSmits: hmm

struct: just turn into ucttt

Scarfield: xD

MSmits: ucttt is just uttt with only the counting part instead of the overall winning board part

MSmits: but sure :)

MSmits: still thinking about the steal thing

MSmits: without steal player 1 can always force a draw

MSmits: but player 2 can't

Scarfield: yea

MSmits: or at least i dont think p2 can

MSmits: it's hard to be sure

MSmits: do you think it's not enough to just have the 2 swapped games?

MSmits: I mean if p2 cant force a draw and p1 doesn't try to, it's ok also

MSmits: if p1 does try to force draw, the swapped game might have the other player choose to try and win

MSmits: p1 does have an advantage so giving it up to have a safe draw might be a bad idea

Scarfield: even boards will have p2 having last move, odd boards p1, so i suppose odd boards have a p1 advantage without steal, but might be more fair with 2 games, no idea

MSmits: well it is fair for sure. Swapped games are guaranteed to be fair

MSmits: it's just not guaranteed to be interesting

MSmits: that depends on whether there exists a way for p2 to force a draw and whether the advantage for p1 is small or large

MSmits: p1 has a massive advantage in regular TTT and still it's a solved draw

Scarfield: yea, might just be its a game thats not that interesting even though it seems like it

struct: this is why I only do ports of what people ask

struct: :p

MSmits: what i meant is, whatever fix you apply could make it interesting or make it broken in a different way

MSmits: struct yeah well known boardgames are relatively safe to port

Scarfield: i would really like a backgammon port, but it just does seem the game for CG with the dice rolls. but one of the games i enjoy to play the most

MSmits: ahh never played that, but pretty well known game yea

Scarfield: doesn't seem the game*

Default avatar.png BH-Empire: im new

struct: well it still requires skill right?

struct: despite having dice

Scarfield: its like poker, luck can win one game sure, but skill wins in the long run

Scarfield: there is no bluff though :)

Scarfield: my friends father is a coach for the DK national team of backgammon, and i will never win a game against him

struct: just beat him with an AI

struct: write an AI that he cant bat

struct: beat*

Scarfield: that is more likely than beating him irl

Scarfield: even if dice are involved its very skill heavy

Scarfield: probability and experience

MSmits: make a contribution of it. Steal eulers dice.

MSmits: he's asleep now, you can do it

struct: I would need to learn the rules

MSmits: you mean you would need to code the sim and then forget them

MSmits: that's how we roll here

struct: and I would have to use 3d

MSmits: yup

MSmits: gonna catch some sleep. Looking forward to seeing your backgammon in the morning

Scarfield: for cttt even board, if p1 plays in one of the middle 4 cells, p2 cant play in any of them, which allows p1 to get 2 pieces in the 4 middle cells. which then leads to p1 getting all middle pieces, if steal is available its just p2 getting all middle cells, probably wont work. dammit

Scarfield: gn :wave:

struct: lol MSmits

struct: gn

MSmits: :)

Scarfield: could be cool with a backgammon multi, but mainly because i enjot the game irl, not sure if its gonna be interesting here

Scarfield: maybe with the same approach as euler took with 2048 (known random), but no idea realy

Default avatar.png UnnamedCodinGamer: https://www.sistani.org/english/qa/01161/

Default avatar.png UnnamedCodinGamer: see last question

Default avatar.png UnnamedCodinGamer: I wonder if this applies to CG

Scarfield: yeaa, no

Scarfield: anyway gn folks

struct: gn

Default avatar.png UnnamedCodinGamer: gn

Default avatar.png bsemagn: gm gamers

Medoo: C'mere old man

Default avatar.png TheBrokenTraveller_5024: For anyone who has done the don't panic challenge, would you happen to know why I get an elevator position of 208?

Default avatar.png TheBrokenTraveller_5024: int elevatorPosition[100]; elevatorPosition[i] = elevator_pos;

Default avatar.png TheBrokenTraveller_5024: http://chat.codingame.com/pastebin/3a4ffc6e-8262-4a3a-98b2-cf5b626bb5c6

Default avatar.png TheBrokenTraveller_5024: I do not understand why I have an elevatorPosition of 208

Default avatar.png TheBrokenTraveller_5024: When it should be like 5

YCSVenom: how can i search through contributions?

JFB: TheBrokenTraveller_5024: you set elevatorPosition[i] but check elevatorPosition[j]. Maybe it is the problem? This is all I can say when I see only a small part of the program

Default avatar.png k86td: :

gamergirl1: b hhnr

gamergirl1: sick bro

gamergirl1: :rage:

gamergirl1: sike lol:heart_eyes: love it

Thorcode: can someone help me with tic-tac-toe

TechnoBot: kk

TechnoBot: sure

Thorcode: How can I prevent other to win TechnoBot?

TechnoBot: r/TypeScript

TechnoBot: bruh

TechnoBot: Prevent?

TechnoBot: sure

Thorcode: you just randomly move

TechnoBot: no

Default avatar.png jool.pod: Anyone good with Clash of Code with Go?

Thorcode: when I saw your replay you just do that

Thorcode: tic randomly

Default avatar.png Codyz: hello