Chat:World/2020-06-16
Hjax: if the sum is always 4, just subtract 4 and now its a zero sum game?
Hjax: i dont get it
eulerscheZahl: zero sum game: score gain for you equals score loss for opponent not sure if that's what's meant
eulerscheZahl: and of course you can write a minimax for a zero sum game
WINWINWIN: Understood, thanks Hjax just need to subtract constant sum from the score to make it a zero sum game
WINWINWIN: In struct`s othello referee:
WINWINWIN: from lines 69 onwards,
WINWINWIN: why is origins a list? isnt there only 1 origin? or do flips cause new flips?
pb4: "WINWINWIN 05H40 Anyone, when you are writing a minimax, it just needs to be a constant sum, not a zero sum right?"
pb4: Ideally it also needs to be sequential instead of simultaneous
WINWINWIN: So that you can minimize/maximize to backpropogate in sequence?
jacek: good morning
LelouchVC2: Good night
PaulMorphy: good midday
WINWINWIN: Hi all
KhanhSB: hi all
natsudragneel_x: :heart_eyes:
natsudragneel_x: :nerd:
natsudragneel_x: :upside_down:
struct: WINWINWIN its a lsit because before I coded I thought there were chains
struct: Also I would not use the referee as a reference for the bot
struct: Game should be simple enough
jacek: its quite simple without the chains
Nicolas.ElFegir: I everyone, can someone help me to solve sudokku validator with a simple algorithm ? thanks !
Val.thlt: yes me too pls. we need u!
jacek: huh
Arnaud.B: it's an easy one nicolas
erwan_bds: https://ethiery.github.io/codingame/skynet-the-chasm.html
erwan_bds: enjoy guys
SamyErd: http://chat.codingame.com/pastebin/150df6b9-1604-4156-9275-7f7f3c1f2b7b
Hjax: good morning
reCurse: :wave:
eulerscheZahl: :wave:
Hjax: i managed to climb to rank 12 in pr2 last night, a day too late to improve my contest standing
Hjax: but im pretty satisfied with that rank, so thats enough pr2 for me
eulerscheZahl: oh, thanks for pushing me with your submit :)
Hjax: my new submit 5-0d fpscube and 5-1d supermassive
Hjax: i dont think it did spectacularly vs you
Hjax: yeah 2-3 vs you
Hjax: im surprised im the highest python 3
Hjax: having built in munkres was very convenient
struct: hi
Hjax: hi struct
Astrobytes: hi
Astrobytes: hey struct, Othello isn't random enough.
Hjax: hi Astrobytes
wlesavo: hi
struct: I read
struct: I don't know what is troll or not anymore
Astrobytes: grats on your PR2 Hjax :)
eulerscheZahl: flip 1 stone every 5 turns by random struct
Hjax: too many hi's D:
Hjax: thanks :D
Astrobytes: I'm just struggling to understand what the coffee cup wants struct
sirsatan: hello o/
struct: he wants me to give moves in random order
struct: so they are not always in the same order
struct: ...
Astrobytes: What's that got to do with anything?
wlesavo: i gave up and started to learn some cpp for uttt, almost got legend
eulerscheZahl: shuffle the list of possible actions :D
struct: ^
Hjax: hes complaining that bots that play the first legal move they see always plays the same move Astrobytes
reCurse: Remove the list of legal moves, problem solved
Astrobytes: I explained why this happens in the thread... so...
eulerscheZahl: TL;DR
reCurse: Such a weird detail to get hung up on though
Astrobytes: Remove the actions struct, and the rules
struct: soon I remove othello
eulerscheZahl: i'm not sure who's trolling and who isn't
Astrobytes: :D
eulerscheZahl: TBali: definitely kidding
eulerscheZahl: but the java coffee cup: no idea
Astrobytes: Yeah, that's right on his humour
Astrobytes: It's one of the most peculiar 'issues' I've seen recently
struct: Also I added the moves made by the opponent
eulerscheZahl: breaking change or new protocol?
struct: new protocol
Astrobytes: Wait for "the last opponent move makes it too easy to counter his move" next
Hjax: dont give them ideas Astrobytes
Than_Lan_Con: hello world
Astrobytes: sorry :D
eulerscheZahl: TBali is typing again
eulerscheZahl: :popcorn:
Astrobytes: beat me to the popcorn
Astrobytes: meh, that wasn't worth waiting for :/
Astrobytes: Anyway, catch you all later. Off for my MRI scan soon
Hjax: hi
Than_Lan_Con: Python in fast game =)) LOL
Than_Lan_Con: not fair
Hjax: ? Than_Lan_Con
Uljahn: typical CoC whining
eulerscheZahl: choose the right tool for your problem. you are free to code in Python too
Than_Lan_Con: in shortest game
Hjax: oh clash
Hjax: python is usually not at the top of the code golf leaderboards
Than_Lan_Con: when you write 100 lines in js and python just need 1
Hjax: javascript also frequently beats python on code golf leaderboards
Hjax: doesnt seem like a language issue to me, you just need more practice golfing
Than_Lan_Con: but it sort
Than_Lan_Con: but itsort
Edjy: https://pixelcanvas.io/@11144,30
wlesavo: js also have .sort()
eulerscheZahl: did you draw that CG logo pixel by pixel? :o
mikiyas: hey guys how can i share my score
Edjy: yes i drew it myself
struct: looks good
mikiyas: hey guys i have finished sky-net revolution episode-1 so how can i share the link
eulerscheZahl: link to what?
mikiyas: to my score maybe that shows i have completed this game
struct: Should be in your profile
struct: that you completed it
eulerscheZahl: make a screenshot and share that :D
jacek: struct what if opponent has 2 moves?
struct: both are given
struct: split by ;
struct: also you will get passes
mikiyas: OK its an assignment for data-structural and algorithm course. he told us to send him the link
jacek: wouldnt be that in achievements?
eulerscheZahl: how do you pass jacek @struct?
eulerscheZahl: can i get my own jacek?
struct: pass is not a choice
struct: Player is forced to pass and his turn will be skipped
struct: also there is no frame for the pass
darkhorse64: two separate ;; ? or a special keyword
darkhorse64: ?
Scarfield: either more than one action or no action i guess=
struct: a5;a6;a7;
WINWINWIN: In minimax, the method only evaluates the nodes. How do you find which node was the highest scoring?
struct: one action == a5;
Hjax: im not sure i understand your question WINWINWIN
darkhorse64: what if your opponent skips a move ? You receive a ";" ?
WINWINWIN: Minimax uses recursion to score the nodes,
WINWINWIN: How do you identify which node at the first level was the best?
struct: no you receive pass;
WINWINWIN: Do you store all of the scores and nodes in an array
WINWINWIN: ?
Scarfield: the nodes in the tree represents the series of actions made, you apply the actions to a game state, and eval that
struct: sorry i did not udnerstand the question at first darkhorse
Hjax: @WINWINWIN either that or you just implement the root level of the search differently
Hjax: if you have a transposition table you can look up the scores for the roots children and do it that way
Hjax: thats what i usually do
WINWINWIN: Can anyone send me a link to learn transposition tables?
darkhorse64: Great ! You should put that in the statement. If your opponent skips a move, you receive "pass;". If you skip several moves, you will as many moves from your opponent
darkhorse64: *will receive*
Hjax: they are pretty simple WINWINWIN, just keep a map of moves to scores, update it during your search, if a move is already in the table during your search, you can just return the value from the table instead of doing the recursive call
Hjax: heres a link anyway https://www.chessprogramming.org/Transposition_Table
WINWINWIN: I see, so it aids in pruning?
WINWINWIN: as well
Hjax: yes, because if youve already searched a position in one part of the tree
Hjax: you dont need to search it again
Hjax: you already know the score
WINWINWIN: Dont think that it would make too much of a difference to me, my evaluation function is pretty simple
Scarfield: "if a move is already..." it should be if a game state is already in the table?
WINWINWIN: Yes, if a game state is already in the table
Hjax: uh, yeah i phrased that poorly
Hjax: in games with lots of transpositions (like chess) the table is a massive speedup
Hjax: also lets you do iterative deepening and get more cutoffs
Scarfield: still havent tried making use of it myself yet, but thanks for the link :)
jacek: dont bother with TT for now, until you get working minimax and alpha beta
Hjax: the chess programming wiki is a great resource
Hjax: lots of cool stuff on there
Hjax: but yeah, its an enhancement to an already working search
Hjax: so make sure your minimax/ab is solid first
WINWINWIN: Hmm I finished, but the best action is always None or null
WINWINWIN: anyone else faced this error while starting out?
struct: In what game are you trying?
WINWINWIN: othello
struct: Does this also happen on low depths?
jacek: of course. the only winning move is not to play
WINWINWIN: I am just starting out with a depth of 2
WINWINWIN: I run the minimax function and take the best move, it is always None
jacek: so its a bug in your code
jacek: is it python? does your minimax returns something?
WINWINWIN: Python
WINWINWIN: it returns the score
WINWINWIN: But on the final depth level, I give the best action as well
WINWINWIN: if depth == DEPTH:
global best best = action
Uljahn: eww
MostComplicatedUsername: Hmmm I need to figure out a way to not self destruct in hypersonic
Alshock: simulations?
darkhorse64: make a sim: bomb + move, move, wait. At each turn, compute whether a bomb can blow you up
Alshock: is a multi-agent MCTS a viable way to Hypersonic?
darkhorse64: This probably won't get you to Legend but will sure get you to Silver
Nickname_XD: hi anyone
darkhorse64: There is lot of info in the PM. I do not remember people using that
Hjax: so i was looking at C4L and i dont get it
Hjax: what makes the game strategically deep
eulerscheZahl: what molecules to pick
Scarfield: havent looked at it, but it has shared resourses i think
eulerscheZahl: you can try to block your opponent
eulerscheZahl: reach the MOLECULES station before the opponent to get a headstart
eulerscheZahl: but there's also lots of randomness involved
eulerscheZahl: Alshock to a large degree hypersonic is optimizing your own path to blow up as many boxes as possible. opponent prediction is very unreliable
Hjax: so you just try to take molecules your opponent needs while completing your own samples?
eulerscheZahl: yes
Hjax: kind of a weird game
eulerscheZahl: but looking at the leaderboard it has some depth. otherwise agade wouldn't be that high above us
jrke: I wanna learn GA can anyone tell me how can i begin
Alshock: @eulerscheZahl TYSM I think you saved me from overthinking the problem before making anything viable
Alshock: well "saved me" might be an overestimation though, no one can save me from wasting time doing stupid stuff :p
eulerscheZahl: if you have fun and learn something on the way, it's not wasted time
Alshock: "time you enjoy wasting is never wasted"
Alshock: I don't remember who said that
tomatoes: dog
MostComplicatedUsername: I agree completely alshock :D
Hjax: tomatoes your profile is incredible btw
Hjax: quality memes
tomatoes: :blush:
Alshock: OMG a tomato Umaru-chan! xD I didn't even know that meme
Reksio: "time you enjoy wasting is never wasted" I think it 's only true for people who have no regrets afterwards.
wlesavo: yay uttt legend
eulerscheZahl: congrats. that one was a nightmare
eulerscheZahl: no python i guess
wlesavo: my first ever cpp programm :slight_smile:
eulerscheZahl: really? :o
eulerscheZahl: no hello world in university?
wlesavo: hello world in c
wlesavo: well i writed some test programms while try uttt to test some stuff
wlesavo: many helpful ideas from ru though, last week was almost all about uttt
eulerscheZahl: was amurushkin active on the chat?
wlesavo: yeah
wlesavo: also MelnikovIgor got legend with c# this week
eulerscheZahl: i failed that :D
eulerscheZahl: C++ for the final improvement
wlesavo: :smiley:
wlesavo: i actually really liked c++, a little bit more stuff to keep in mind but so convinient
wlesavo: good thing i didn't start with it though
Astrobytes: congrats wlesavo
wlesavo: thx astro
eulerscheZahl: will we see you in C++ again?
eulerscheZahl: i only use it when i really need the speed. like for bulls and cows :rage:
wlesavo: i plan to try some other games now, yeah
wlesavo: lul
wlesavo: actually that should be on the list
eulerscheZahl: oh, BrainSolver took the lead there
wlesavo: oh wow, solid lead over dbdr :slight_smile:
eulerscheZahl: i decided to spam 4 more submits: 310, 314, 314, 328 :(
dbdr: solid lead? :D
eulerscheZahl: yeah, you got destroyed
eulerscheZahl: completely crushed
eulerscheZahl: or rekt, as a certain Russian would call it
dbdr: rek't in proper english
dbdr: I'l have to retaliate somewhere...
wlesavo: wait till westicles will submit in NS
eulerscheZahl: :imp:
eulerscheZahl: he reported a bug that will occur around lvl700
dbdr: last time he did I caught up pretty fast
dbdr: but if he's been running for 3 months...
dbdr: eulerscheZahl how did he find that bug?
eulerscheZahl: by reaching the level i guess
dbdr: really? that sounds strange not to submit
eulerscheZahl: exceeding 600 frames => referee crashes thanks to CG SDK
eulerscheZahl: so i read 2 lines at once now
dbdr: does that work if the number of lines is odd?
eulerscheZahl: maybe we are just trolling you. you will know in 3 months
dbdr: :D
eulerscheZahl: i only read 2 lines at once, when there are > 2 number remaining
eulerscheZahl: i saw that question coming :D
dbdr: clever ;)
dbdr: I think I uncovered the troll
Alshock: then give him his undies back
wlesavo: maybe he is a bit afraid that you will get 1000 faster than him if he submits, otherwise #1 would be unreachable
dbdr: what's with the fixation on troll underwear?
eulerscheZahl: i think it might crash again at 999 already. you get a level 1000 but can't submit the result
dbdr: :D
wlesavo: so we will know if he will report that bug :slight_smile:
dbdr: I think I'll have to do a new optim to compensate for losing B&C
eulerscheZahl: "do" = play or create?
wlesavo: SR?
dbdr: play
Reksio: Do anyone know if CG uses .net core? If so which version is it?
dbdr: wlesavo what did you find convenient about C++?
wlesavo: pointers and memory stuff
dbdr: Reksio: https://www.codingame.com/faq though I'm not sure it's up to date
amurushkin: eulerscheZahl hello. are you looking for me?
tomatoes: .Net core 3.1 only for C#
tomatoes: forums said
Reksio: thanks
darkhorse64: Winner takes all: https://www.codingame.com/replay/473132714
dbdr: gg darkhorse64 :)
darkhorse64: A faster one: https://www.codingame.com/replay/473133282
darkhorse64: Golfed Othello
Astrobytes: Golfello
darkhorse64: I have tripled my rollout count but it's hardly better
Astrobytes: Time to get creative ;)
darkhorse64: Time to put a brain in the vehicle
Hjax: i still think it would be fun to do an unofficial contest with a code length limitation
Hjax: who can make the best bot in under 1000 characters
Hjax: but it would be hard to police
dbdr: just ask for a bot that prints its source code
dbdr: the referee compiles it
Astrobytes: A quine competition?
dbdr: well, I don't the the referee can check that since it does not get the source
Hjax: i was thinking the competition could involve uploading your submission, and it would run a game with the ref and compare to a replay on codingame
Hjax: and ensure that the outputs are the same
dbdr: void main() {
print("// real bot goes here");
}
Astrobytes: ah
dbdr: I guess you should print what language it is in first :)
dbdr: or just impose a language
Hjax: a site i used to compete on that doesnt exist anymore had a 1000 character mode
Hjax: people would compress their code with zlib, and then decompress and exec it at runtime
Andrelamus: Is there a way to never enter shortest mode?
Andrelamus: Other than going out?
Hjax: in clash? you cant pick what kind of clash you get
Nerchio: the only way to win clash is not to play at all
DiL: shortest mode are the funniest!
Astrobytes: ^
dbdr: https://www.youtube.com/watch?v=6DGNZnfKYnU
Astrobytes: (pointing at Nerchio's comment)
Nerchio: o Astrobytes i see you like shortest clash let me invite you to one
Astrobytes: :P
Hjax: i love how clash is something people use to threaten each other
Astrobytes: lol, very true
Hjax: youre back from your MRI?
Astrobytes: Yeah
Astrobytes: Was... an interesting experience
Astrobytes: Gotta try everything once right?
Hjax: did they give you a drug to make you sleepy? last time i had an MRI they gave me something weird
Hjax: it literally made time feel like it was going by faster
LelouchVC2: There's plenty of drugs that make you sleep
Astrobytes: Nah they didn't give me anything, was only 40 minutes or so. How long was your one?
LelouchVC2: Some even make you never wake up
Hjax: probably about the same
Astrobytes: Damn, your one sounds more fun
Hjax: the drug didnt make me fall asleep though, it just slowed me down / made time seem to pass quickly
Hjax: i guess it helps you sit still
Astrobytes: After about 5 minutes I entered a kind of Zen-trance, then about halfway through I think I reached electromagnetic nirvana or something, was almost relaxing
Astrobytes: :d
Hjax: maybe they only gave me the drug because i was a kid, i was probably 12 or so at the time?
Hjax: i used to get really bad migranes when i was younger, fortunately i grew out of them
Astrobytes: Ah, possible. My nephew had to get one around age 5, they tried 5 or 6 times but it was too traumatic for him to complete
Astrobytes: Surprised they didn't give him a sedative
Astrobytes: Yeah, my mate had that as a kid, same kinda thing, grew out of it
LelouchVC2: I grew into mine :(
Hjax: rip :(
Astrobytes: Migraines suck. I have another friend who gets cluster headaches, thank christ I don't suffer with those
LelouchVC2: ikr ;-; only happens a couple times a year, so it's fine :/
Hjax: oh ive heard of those, apparently they put migraines to shame
Astrobytes: And how.
Hjax: when i got a migraine i used to just go to my room, pull the shades, and lay there with the blanket over my head until it went away
Hjax: couldnt stand any light or sound
LelouchVC2: My migraines have either become less intense or i've gotten use to them over the years
Astrobytes: Clusters will have you screaming on your knees begging for mercy for sometimes hours
LelouchVC2: But I recall thinking about suicide the first 3 times it happened
Hjax: yeah ive heard cluster headaches are supposed to be the worst pain you can experience
Astrobytes: Some pain. I hope they've actually become less intense LelouchVC2
LelouchVC2: Pain was unbearable. I'd take pain killers and hope I could sleep before it hit when I got the aurora.
Hjax: i never saw the auroras, my sister did though
LelouchVC2: i dont know how that compares to cluster headaches, but i can't imagine feeling pain worse than that
LelouchVC2: the auroras are like taunts honestly
LelouchVC2: "You're gonna get fucked in about 20 minutes, good luck!"
Astrobytes: Donno what's better or not, when my other friend used to get them when we were younger it just used to come on with no warning
LelouchVC2: Well, the aurara was good in that I could leave school to go home and get ready
LelouchVC2: But it's almost traumatiic, just remembering what it looks like makes me wanna throw up
Astrobytes: That's something I guess. I remember we were on a school trip at some adventure camp thing and my friend got one halfway down a cliff during abseiling... was kinda traumatic for him
Astrobytes: Even though he had this preventative medication it didn't always work
LelouchVC2: lmao
LelouchVC2: I had medication, didn't do much
LelouchVC2: I stopped taking it because it would make it 90% likely the next day i'd get another migrain
Astrobytes: Not helpful
LelouchVC2: yea, but the fear of the pain made me take it
LelouchVC2: Never went back to refill it
Astrobytes: Understandable
Astrobytes: darkhorse64 :P https://www.codingame.com/replay/473144951
TrueBoxGuy: That was weird since the first 3 results were also subtraction, which was the pattern I initially identified
TrueBoxGuy: I had to rewrite my code, and writing the code for subtraction took far longer
LelouchVC2: Damn, that game was life ending
WINWINWIN: Astrobytes, I`m continuing the minimax for othello, but Im stuck here...
WINWINWIN: if depth == DEPTH:
global best best = action
WINWINWIN: If I have this line, why is my move always None?
Astrobytes: ...
WINWINWIN: In my minimax function, I am not familiar with transposition tables
WINWINWIN: so I just added that line of code so that I could find out the best node
darkhorse64: Astrobytes: the shortest game I have seen is 15 moves
Astrobytes: Forget TTs for now. Are you evaluating anything?
Astrobytes: 15 darkhorse64! amazing
WINWINWIN: Yes, the evaluation function is just my coins - his coins
Astrobytes: You might not be reaching the depth?
WINWINWIN: Maybe, but wouldnt I time out then?
darkhorse64: It was during a test in the IDE. Did not kept it. You made me pass a incredible number of times in that game
Astrobytes: Yeah I know, it was pretty much over just before you had to start passing I think
Astrobytes: You were forced into making some unhealthy moves
darkhorse64: My eval switched from 0.5 to nearly 0 in one move
darkhorse64: I am still wondering if I do not have a bug. skip nodes are tricky to deal with
darkhorse64: afk
WINWINWIN: Fixed it by changing the return...
WINWINWIN: Can anyone explain how global works within methods for python?
Astrobytes: It's to enable you to modify a global from within the method afaik (I'm not exactly a python expert)
Astrobytes: Google probably has a better explanation than that ;)
jacek: so you can have variable from the outside world in your method
Uljahn: so you can make your code intertwined and impossible to debug :slight_smile:
WINWINWIN: :D
WINWINWIN: I tried using global... Did not work
WINWINWIN: just changed the return type to fix it
AntiSquid: see global keyword WINWINWIN
AntiSquid: without global before var_name inside function you won't affect the variable in the global scope
moidda: When will the Fall Challenge start?
Astrobytes: Fall.
moidda: I was hoping to get an apporximate date, but nevermind
Astrobytes: Sorry, from the contest page "The date of the challenge is not decided yet. It should happen near the end of the year 2020. We'll keep you updated."
Reksio: can i assume that all cpus used are 64bit for puzzles?
jacek: eeyup
Astrobytes: https://www.codingame.com/faq
Astrobytes: "Your program is compiled and run in a Linux environment on a 64bit multi-core architecture"
AntiSquid: also there's a chance the challenge gets delayed, you never know moidda
struct: Hello
Astrobytes: hi struct
struct: What algo are you using Astrobytes?
Astrobytes: Othello? alphabeta, iterative deepening (not much point in the ID since not doing anything else with it currently)
Astrobytes: Wanted to try this before trying any MCTS-based approach
struct: Not sure how well mcts will do
Astrobytes: darkhorse is doing better now, think he's added eval to it
Astrobytes: Not sure if j acek has switched from his a/b yet but he's strong either way
Astrobytes: darkhorse was using a vanilla mcts until this evening
struct: When I have time I'll come a bot
struct: just to add a league
struct: code*
Astrobytes: Oh cool, a league. Maybe that will help the coffee cup
struct: Not sure when I will though
struct: currently I want to check modules
struct: I forgot how they work
Astrobytes: Take your time man, game's cool
LyteStarr: Hello, Is there someone who is familiar with ASP core / Blazor and databases here?
struct: and not a lot of documentation on it
Astrobytes: Working on project X?
struct: Might be usefull
Astrobytes: LyteStarr not me, sorry
LyteStarr: All good, been learning a lot on my own but don't have connection to the industry. I hope i'm not messing something up :3
Astrobytes: Plenty stuff on google (I'm sure you know ;) ) Maybe someone else can point you in the right direction
Astrobytes: Anyway, I have an appointment with Saul Goodman. G'night all
LyteStarr: Later /
darkhorse64: still mcts without eval. I got now 80k rollouts second turn but there are still a few rough edges with skip moves. I still hope to improve speed.
VinhDaDen: who using Pascal?
LelouchVC2: Pascal uses Pascal
LucianoNascimento: im on chuck norris challenge
LucianoNascimento: i have some problems to convert string to binary on php
LucianoNascimento: someone knows how to do that ?
LucianoNascimento: i did but by this way that Im trying i have problems to convert %
LelouchVC2: Php has a function for it
LucianoNascimento: i dont think so
LucianoNascimento: The decbin() function converts a decimal number to a binary number.
LelouchVC2: Convert the string into a decimal number
LucianoNascimento: ok i will try
LelouchVC2: <3