Chat:World/2021-11-11
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.
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.
Husoski: I think you spelled that backwards on purpose...
Husoski: :)
RandomAustralian: I got scammed in clash of code
Husoski: How so?
RandomAustralian: I did the tests and it all ran successfully
RandomAustralian: So I submit it
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...
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
UnnamedCodinGamer: search race
UnnamedCodinGamer: I annealed it
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
UnnamedCodinGamer: you are right
UnnamedCodinGamer: It is hard to make such general statements
UnnamedCodinGamer: it might be the mutation or the parameters that might be improved
UnnamedCodinGamer: I prefer SA since it is simpler
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'
UnnamedCodinGamer: yes, they are similar in that sense
UnnamedCodinGamer: I just mutate the solution
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
UnnamedCodinGamer: do you have a global mutation rate variable that you decrease?
jacek: yes
UnnamedCodinGamer: this might be worth trying in SA
UnnamedCodinGamer: this is the thing - they are general approaches and there are so many clever/dumb things that have to do with the implementation
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?
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
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
criptomaster: how yall like my site
diverdansinson233456: bau mather fauker
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... -_-
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
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
P3N1SL0V3R: dang i forgot this existed for some reason-
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
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:
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
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
eulerscheZahl: i also won the Nobel prize the peace Nobel prize 2012(?) which went to the European Union
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
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
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
UnnamedCodinGamer: If I am not mistaken, there is an easy way
Westicles: just pour water everywhere and let it drain
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
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*
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
UnnamedCodinGamer: https://www.sistani.org/english/qa/01161/
UnnamedCodinGamer: see last question
UnnamedCodinGamer: I wonder if this applies to CG
Scarfield: yeaa, no
Scarfield: anyway gn folks
struct: gn
Medoo: C'mere old man
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?
TheBrokenTraveller_5024: int elevatorPosition[100]; elevatorPosition[i] = elevator_pos;
TheBrokenTraveller_5024: http://chat.codingame.com/pastebin/3a4ffc6e-8262-4a3a-98b2-cf5b626bb5c6
TheBrokenTraveller_5024: I do not understand why I have an elevatorPosition of 208
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
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
jool.pod: Anyone good with Clash of Code with Go?
Thorcode: when I saw your replay you just do that
Thorcode: tic randomly