From CG community
Jump to navigation Jump to search

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


KhanhSB: hi all

Default avatar.png BPAle: good evening

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 !

Default avatar.png Val.thlt: yes me too pls. we need u!

jacek: huh

Default avatar.png SamyErd: Jacek don't laugh

Default avatar.png Arnaud.B: it's an easy one nicolas


erwan_bds: enjoy guys

Default avatar.png HugoBsn: thx guys

Default avatar.png SamyErd:

Hjax: good morning

reCurse: :wave:

eulerscheZahl: :wave:

Default avatar.png mikiyas: hay

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

Default avatar.png distro104: Hii everyone!! XD

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


wlesavo: js also have .sort()

eulerscheZahl: did you draw that CG logo pixel by pixel? :o

Default avatar.png mikiyas: hey guys how can i share my score

Edjy: yes i drew it myself

struct: looks good

Default avatar.png mikiyas: hey guys i have finished sky-net revolution episode-1 so how can i share the link

eulerscheZahl: link to what?

Default avatar.png 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

Default avatar.png 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


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

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

Default avatar.png Password12345: i wanna die

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: 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: 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:

dbdr: gg darkhorse64 :)

darkhorse64: A faster one:

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: ^


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

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: 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: "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.

Default avatar.png LucianoNascimento: hello

VinhDaDen: who using Pascal?

LelouchVC2: Pascal uses Pascal

Default avatar.png LucianoNascimento: hi

Default avatar.png LucianoNascimento: im on chuck norris challenge

Default avatar.png LucianoNascimento: i have some problems to convert string to binary on php

Default avatar.png LucianoNascimento: someone knows how to do that ?

Default avatar.png LucianoNascimento: i did but by this way that Im trying i have problems to convert %


LelouchVC2: Php has a function for it

Default avatar.png LucianoNascimento: i dont think so

Default avatar.png LucianoNascimento: The decbin() function converts a decimal number to a binary number.

Default avatar.png LucianoNascimento: :(

LelouchVC2: Convert the string into a decimal number

Default avatar.png LucianoNascimento: ok i will try

LelouchVC2: <3

Default avatar.png LucianoNascimento: :)