Chat:World/2020-05-24
struct: scroll simulator is done
eulerscheZahl: simulator? so you don't scroll for real?
struct: It was a joke attempt for yinsh statement
eulerscheZahl: I see, screenshots all over again
eulerscheZahl: except for those with a strict company firewall
struct: What does that mean?
eulerscheZahl: some chatusers have imgur blocked
struct: I see
struct: I can put the images on folder and submit
struct: but if it get aprooved ill need to change url
struct: Should be simple though
eulerscheZahl: i think the URL changes on every reupload. not entirely sure about it
struct: ah
struct: That makes it impossible I guess
struct: Ill try on demo just to be sure
struct: They dont change :D
struct: But I uploaded 7 images
struct: and only 6 show
struct: (╯°□°)╯︵ ┻━┻
struct: oh its smart
struct: it detects duplicates
struct: 10/10
struct: Fixed, now with CG links
eulerscheZahl: cool
cegprakash: hiii
cegprakash: I'm about to start the continuation of yesterday's stream. https://twitch.tv/cegprakash
cegprakash: my stream has started
Uljahn: im not streaming anything today, Automaton2000
Automaton2000: that could be a good way to test
eulerscheZahl: yes Uljahn! how do you know if your equipment is working when you never use it?
struct: 1/3
struct: Now only 2 more :D
struct: Now we only have to wait 13 months until I port another game
eulerscheZahl: arimaa or another one?
trictrac: Hello All, Struct : I approved yinsh the statement is OK
jacek: is it ready to go then?
trictrac: yes
eulerscheZahl: up to you to decide jacek
jacek: such power
eulerscheZahl: now that you got level 20
eulerscheZahl: finally
jacek: i approved twixtpp
eulerscheZahl: but now there is no XP reward anymore for approvals
jacek: no motivation
eulerscheZahl: i didn't expect that XP could be your motivation for it
jacek: ah right
eulerscheZahl: do you have a bot for twixtPP?
jacek: only random one
eulerscheZahl: not counting the dummy Java submit in the arena
jacek: i hadnt motivation to bitboard it yet. if game isnt to be bitboarded, i dont play it :v
eulerscheZahl: do you have a bitboard on onitama?
jacek: of course
eulerscheZahl: i didn't expect that answer
jacek: you dont?
eulerscheZahl: thought only smits got that crazy on it :D
jacek: its just 25 bits
jacek: cards moves were most tricky
jacek: and i bet he got magic numbers allowing him to do things in 1 operation, while for me it is 3
darkhorse64: I have also a bitboard (+ smth for the king) but I did not go the extra mile to fit everything in 64 bits
darkhorse64: The hand also is not bitboarded
jacek: yay for my lucky uttt resubmit
cegprakash: top 46 and climbing using minimax
cegprakash: anyone watching my stream?
cegprakash: https://twitch.tv/cegprakash
jacek: oware eh
VineetArora: int(i) for i in input().split()
jacek: indeed
dbf: eulerscheZahl your article is trending in pacman review: https://clip2net.com/s/47FsfNc :)
eulerscheZahl: trending?
eulerscheZahl: forum shows 19 clicks in my post mortem
eulerscheZahl: from which video is that taken?
dbf: https://www.youtube.com/watch?v=9jWycmefAB4
eulerscheZahl: what's his CG nick?
eulerscheZahl: oh, stupid me. look at the top
eulerscheZahl: Romka :o
Illedan: NIce
eulerscheZahl: he saw my post mortem, cool
eulerscheZahl: and he has his local visualizer too. i start seeing some similarities
cegprakash: hey eulerscheZahl
cegprakash: what's ur depth in oware?
eulerscheZahl: let me checkj
eulerscheZahl: looking at my battle vs you cegprakash: 10-12 at the beginning, going up to 14-16 in late game
kovi: he really played pac seiously
eulerscheZahl: you don't get 2nd without trying hard
eulerscheZahl: do you have local tooling kovi?
kovi: nope :(
cegprakash: I wonder how u achieved GA
cegprakash: I thought minimax is the only way for oware
kovi: at least this time i relied on local bench vs. self
eulerscheZahl: when you did the setup once, you can reuse most of it
eulerscheZahl: that is for offline replays at least
eulerscheZahl: batches are often useless at some point
kovi: yeah, that is nice. hopefully next game will be (almost) stateless
eulerscheZahl: when it's totally off, it can help. or to detect obvious bugs
jacek: GA in oware?
eulerscheZahl: but for finetuning offline batches suck quite often
kovi: interestingly it was quite reliable
eulerscheZahl: isn't oware minimax, MCTS, NN at the top?
kovi: just i was unable to validate in the end
kovi: with huge randomness
eulerscheZahl: and the contest always ends a day or 2 too late
kovi: i think i was behind the whole weekend
AntiSquid: "and the contest always ends a day or 2 too late" are you referring to the last weekend when everyone takes their best bot out of hiding?
cegprakash: eulerscheZahl u did MCTS or GA?
cegprakash: for oware?
cegprakash: I did minimax at depth 7
eulerscheZahl: i have a minimax
eulerscheZahl: AntiSquid i'm referring to the fact that i almost always drop a few ranks on the last weekend
eulerscheZahl: some are hiding, others just improving their bots
jacek: i have around 10 depth in oware and 13-14 near end
Astrobytes: Depth 0 for me
jacek: w00t? go as new multi?
eulerscheZahl: so many new games lately
jacek: the algorithm of choice for go is minimax of course
IAmNoob: hi
wlesavo: cheating is bad iamnoob
IAmNoob: ???????
IAmNoob: what have i done?
Illedan: Where do we begin..
wlesavo: well https://www.codingame.com/share-replay/467917075
IAmNoob: please explain me
IAmNoob: all i saw was correct
IAmNoob: and i swear i wont cheat
IAmNoob: please look again
IAmNoob: read the rules and all that stuff
IAmNoob: got it?
IAmNoob: P.S i worked hard for the gold league
wlesavo: you have the same bot as the other guy, which means at least one of you didnt wrote it
IAmNoob: let me look again
IAmNoob: nope
IAmNoob: the bots are close related
IAmNoob: but i saw that we were not in the same state
IAmNoob: in the same situation
wlesavo: come on
IAmNoob: he was tanker
IAmNoob: i was dest
IAmNoob: in the same situation
IAmNoob: please look again carefuly
IAmNoob: and bring me a time lap or something to prove i cheated
IAmNoob: 'cause i am 1500% i haven't cheat
wlesavo: you just happen to print out the same messages in most of the time? nut it is only a single example. i dont need to prove anything, im just saying this is not the way to do it
IAmNoob: and how am i suppose to cheat
IAmNoob: pls explain
wlesavo: by cheating i mean taking someone else code from git hub or elsewhere
IAmNoob: dude
IAmNoob: this is not fun
IAmNoob: i had fun
IAmNoob: building it with friends
IAmNoob: I dont code for winning
IAmNoob: i code for fun
wlesavo: https://www.codingame.com/share-replay/468486318
IAmNoob: i dont think u know
IAmNoob: if you want to make a good code
IAmNoob: you need to have tehniques
IAmNoob: if you have tehniques
IAmNoob: any other can have those too
IAmNoob: so sorry if you think i cheat
IAmNoob: i relly dont want you to think so
Astrobytes: wlesavo lol, that kutulu replay
IAmNoob: you know guys that there are many twitter pages where disscusions about tehniques happend
IAmNoob: am i right or not
jacek: oh my
eulerscheZahl: that looks like some noob-level cheating. there are way stronger bots on github
IAmNoob: DUDE
IAmNoob: thats why i say i dident cheat
IAmNoob: all the bots are not good
IAmNoob: my bots are trash
eulerscheZahl: i didn't follow the discussion, just clicked 2 replays
IAmNoob: k
IAmNoob: i was saying
IAmNoob: the my bots are way badder than
IAmNoob: scripts that exists
tomatoes: dont get caught is a skill too
IAmNoob: omg
WINWINWIN: Maybe its because I havent done code of kutulu, but I dont see how you can accuse someone of cheating just by a replay
tomatoes: same debug messages
eulerscheZahl: same path taken over about 100 turns
eulerscheZahl: that involves a lot of decisions
WINWINWIN: But those LRUD (Left Right Up Down) seem pretty standard as debug messages
IAmNoob: they are
eulerscheZahl: depth 4 search and perfect match on plan
Astrobytes: On exactly the same turns
WINWINWIN: :/ Idk then, sry
IAmNoob: look again
IAmNoob: at the start
IAmNoob: we havent the same decisions
IAmNoob: and if the code was stolen
eulerscheZahl: you don't have the same cell at the start
IAmNoob: we must be one for the full game\
IAmNoob: and this means more
IAmNoob: eulerscheZahl
IAmNoob: than why would we get in a common point?
IAmNoob: if there were different initial conditions
Snef: Hello o/
eulerscheZahl: bots are likely to move towards each other. you lose less sanity in a group
eulerscheZahl: but at some point your paths usually split at an intersection
IAmNoob: mine not
eulerscheZahl: one goes right to flee the wanderer, the other goes left
jacek: snek
IAmNoob: eulerscheZahl dont changes the path
eulerscheZahl: hi Snef :wave:
IAmNoob: and if his make the same
kovi: nice improvement on sr snef
IAmNoob: we have the same bot?
kovi: it seems
Quidome: wow, this kind of a discussion here is new to me... Can CG run a plagiat scan on the bot's maybe to sort this out?
eulerscheZahl: sadly they only do on contests
Quidome: aha
Quidome: i was pleaseg with Thibaud in the contest :)
eulerscheZahl: go to hypersonic, pick 4 random players at rank 10-100. you probably got a match of 4 kimiyuki clones
Quidome: hm, I prefer CG would act on this
eulerscheZahl: many would. totally no fun fighting that wall of SAYONARA
eulerscheZahl: (bot says that when dying)
Quidome: :)
Snef: Thanks kovi
eulerscheZahl: e.g. https://www.codingame.com/share-replay/468694555 looks like 3 clones and 1 other bot breaking symmetry. just taken from last battles, should place a 4th clone to verify
WINWINWIN: What does kimiyuki mean?
WINWINWIN: hack into servers?
eulerscheZahl: 3rd of the contest
eulerscheZahl: published his bot, others using it
WINWINWIN: Ohh nickname
WINWINWIN: Meh doesnt affact me too much Im in Bronze :P
IAmNoob: i havent tried:((
IAmNoob: i why would u dont ban them or something
IAmNoob: cant u?
eulerscheZahl: only codingame can. and they don't
eulerscheZahl: "multiplayer is a zoo"
WINWINWIN: How did reCurse run His C++ code through python?
WINWINWIN: Can I use that to gain performance in python?
IAmNoob: no
eulerscheZahl: compile offline, include binary in bot. write to disk and call the program, spawning a new process
WINWINWIN: Ok
Uljahn: with subprocess library?
eulerscheZahl: how shall i know? does that detail even matter?
WINWINWIN: Does reCurse have a post mortem where he explains how to use a neural network?
eulerscheZahl: no. read pb on this
IAmNoob: what is CBS?
WINWINWIN: Coders Strike Back
IAmNoob: k
IAmNoob: thx
Csipcsirip: coders bike strack
Uljahn: cheater being stupid
Astrobytes: Collisions Say 'BAM!'
WINWINWIN: :D
WINWINWIN: How do I find Msmits SmitsiMax postmortem?
Csipcsirip: https://lmgtfy.com/?q=smitsimax
AntiSquid: https://www.codingame.com/learn/tag/smitsimax
AntiSquid: sorry, wrong link, use csip's :p
Astrobytes: You do know there's a search bar at the top of the page WINWINWIN right?
jacek: but is sucks
AntiSquid: BUT there is a chat bar on the right, with lots of people in it
Astrobytes: It's better than it used to be aty least jacek
eulerscheZahl: but the top search is usually faster
WINWINWIN: Lol chip clip
AntiSquid: shouldn't we call smitsi by the original name btw ?
WINWINWIN: smitsimax has a nice ring to it :P
AntiSquid: cadiaplayer or w/e
Astrobytes: It's not *exactly* the same. Call it whatever you like. Little Bobby Tables Search, BunnySearch, Lots Of Trees Search, w/e you like
AntiSquid: what is the difference AutomatonNN
WINWINWIN: How about Forest search?
AutomatonNN: Illedan is it a programmer?
AntiSquid: bad timing, he isn't online
Astrobytes: WINWINWIN that might get confused with random forest
WINWINWIN: :/ never knew there was such a thing
Astrobytes: Every day's a school day
IAmNoob: :))
WINWINWIN: :D yes now that school has started it is literally true
IAmNoob: not really every
IAmNoob: day
IAmNoob: 5/7
Astrobytes: You don't learn something every day? Shame on you.
IAmNoob: i learn but not at school
AntiSquid: WINWINWIN https://victorzhou.com/blog/intro-to-random-forests/
IAmNoob: :))
Astrobytes: "Every day's a school day" means you learn something every day
AntiSquid: actually random forests isn't real ML, might be usable on CG ??
WINWINWIN: You have not met my english teacher :P
Astrobytes: lol
IAmNoob: we could name him "heappy"
IAmNoob: or "heappy heap guy"
AntiSquid: WINWINWIN https://www.youtube.com/watch?v=1ZKKmmoSxzM&feature=youtu.be&t=17
WINWINWIN: What is that AntiSquid?
Astrobytes: A youtube link
AntiSquid: the link or the show ?
AntiSquid: listen carefully to the dialogue :p
AntiSquid: was a joke
IAmNoob: Astrobytes :))
WINWINWIN: :D
IAmNoob: why the f**k is the "last battle" list going so slowwwwwwwwwwwwww
IAmNoob: i die before it ends
IAmNoob: all the battles
WINWINWIN: You have slow net :P
IAmNoob: nope:)
IAmNoob: ok it has ended
IAmNoob: ok i mean i am happy i am in legend but why have i 4h to wait?
WINWINWIN: Nice Legend :) which multi?
IAmNoob: it makes 0% sense to me
IAmNoob: WINWINWIN many:)))
IAmNoob: i mean now i cant say
WINWINWIN: :D
IAmNoob: i have to wait
IAmNoob: to be in legend to say i am in legend
IAmNoob: so
IAmNoob: i think i'll go take a sleep
Astrobytes: which multi
IAmNoob: bye guys
AntiSquid: dbdr is 500 the highest level in number shifting puzzle?
eulerscheZahl: it's not
Astrobytes: Must've found another bot on github
AntiSquid: oh forgot you made it
WINWINWIN: Thats mean Astrobytes
IAmNoob: stfu
Astrobytes: No now, no need to be rude
IAmNoob: why do u think i cheat
WINWINWIN: Calm down IAmNoob
AntiSquid: dude calm down, just read the code and move on IAmNoob
wlesavo: AntiSquid i think westicles working on it without submiting
eulerscheZahl: and westicles recently reported a bug that will only occur beyond level 600. so it seems he's still working on it, just hasn't submitted
eulerscheZahl: and i'm slow
Astrobytes: You fixed that right tho' euler?
eulerscheZahl: yes, 20min after reporting
wlesavo: nice bug btw
eulerscheZahl: new how to fix it all the time but hoped i wouldn't have to :D
eulerscheZahl: new => knew
WINWINWIN: :D
AntiSquid: what bug?
wlesavo: to many moves
wlesavo: too
eulerscheZahl: solution takes too many actions, exceeding the 30s limit
eulerscheZahl: so now i read 2 actions at once
wlesavo: would that be enough for 1000?
pajken: Anyone a Skynet ep2 wizard? Thought I had this but seems not...
AntiSquid: Automaton2000 had his degree in Skynet episodes
Automaton2000: you could try to use the same code
eulerscheZahl: 2 commands per turn should get you around 1200. but running out of levels before
pajken: Maybe should have eased into this and started with something simpler, but now I'm to stubborn to give up :/ Can someone point me in a general direction on what to read up on for the skynet parts?
WINWINWIN: eulerscheZahl just noticed someone took your #1 in Connect 4
eulerscheZahl: i know... made me realize my bot is suddenly timing out (never did that before). even lowering the time limit from 90ms to 50ms causes some occasional timeouts
BALEK: In search race, why is there 2 turns per turn ? the input for the second turn is always "2.0" :thinking:
Illedan: 2 turns per turn?
Illedan: no inputs are 2.0?
eulerscheZahl: AutomatonNN 04:01PM Illedan is it a programmer?
eulerscheZahl: as you missed it
AutomatonNN: got 3 problems and i never did it
Illedan: Oh, AutomatonNN..
AutomatonNN: what are you making a sim
eulerscheZahl: only 2 inputs if there are > 2 numbers left obviously
Illedan: AutomatonNN playing search race?
AutomatonNN: why do you play it to play on the game?
BALEK: Illedan, i don't know how to say, but for 1 turn, there is two loops, the first one is with the good input (checkpointindex, x, y, vx ...), and on the second loop the input is just "2.0"
Illedan: Can you send me your code in a PM?
Counterbalance: that's the debug output from the referee - the collision time
Illedan: true
Illedan: BALEK, do you print "debug" in your message?
Illedan: This will cause you to get debug inputs :P
BALEK: oh, yes i print debug :hushed:
Illedan: Thx Counterbalance
wlesavo: lol, nice
Counterbalance: sorry I butted in, you ofc know exactly how it works ;)
Illedan: Ofc, but I'm a little to tierd to remember that tiny part :D
struct: Buying approvals
eulerscheZahl: you ruined his secret plan to get a stronger bot
eulerscheZahl: that's not how approval process is supposed to work
Illedan: I see Marchete added morse code for Torture on 1 of them :D
AntiSquid: 1 approval = 3 AutomatonNN nudes and we have a deal struct
AutomatonNN: he is a coder that get a contest and the rest is still there
AntiSquid: oh actually looks nice and you have options to switch viewer settings
struct: I was joking though, I dont want to rush approoval
AntiSquid: nah, it's ok, i approve this one
AntiSquid: wasn't joking about the nudes though
AntiSquid: even submitted a working bot in D
struct: It works?
AntiSquid: and beat snef with it
AntiSquid: and euler too
struct: I guess I need to fix referee then, no D allowed
AntiSquid: /ban
AntiSquid: #3
AntiSquid: even has referee link at the top
AntiSquid: don't need to scroll down and search
eulerscheZahl: chat about to go down?
eulerscheZahl: chat is back
AntiSquid: hi, is chat back yet?
struct: yes
AntiSquid: for got to add /s s = sorry for my bad English
AntiSquid: forgot *
eulerscheZahl: you added /s in a for loop?
inoryy: a loop from "got" to "add /s"
struct: is ru fixed inoryy?
eulerscheZahl: yes, fixed
eulerscheZahl: as written on #ru (in English)
WINWINWIN: Whats with the giant wait between league promotions?
reCurse: Leaves you time to go outside
WINWINWIN: :)
cegprakash: eulerscheZahl how to go to higher depth on oware?
cegprakash: what kind of pruning do u do
Astrobytes: Just go alphabeta and optimise the hell out of everything ceg
Astrobytes: Also, what you eval (and especially their coefficients!) are extremely important.
cegprakash: https://localboyfrommadurai.blogspot.com/2014/03/my-ai-tron-bot-2014.html
Astrobytes: And when I had an a/b on there I did some basic move ordering once per turn
Astrobytes: You should be able to get to around depth 13 iirc
jacek: tranposition table, sorting etc
Astrobytes: Didn't use a TT on Oware when I had my a/b actually
Moha: hi i was using old python in codes can't i get it bacK?
darkhorse64: Top 4 are NN and MCTS. Choose the right weapon !
jacek: maybe i should work on bitboarding the oware after all
Astrobytes: And double check that you have implemented all the rules properly too cegprakash
darkhorse64: I doubled my rollouts # when converting to bitboard
Astrobytes: I never got around to bitboarding it, I had to leave it alone for a while :D
cegprakash: Astrobytes I've all the rules properly
cegprakash: I just don't know how to do pruning in this :\
jacek: do you have any sorting in your a/b?
Csipcsirip: why dont you try mcts
Astrobytes: Scroll up, I gave you some tips
Astrobytes: cegprakash
cegprakash: u have 6 moves and u sort them based on something?
cegprakash: and how many do u choose out off the 6
Astrobytes: eval them and sort based on that
cegprakash: well that can work
cegprakash: do u prune only enemy
jacek: i sort them by killer move, then by move from transposition table from earlier iteration
cegprakash: I don't want to prune myself
jacek: huh
Alshock: @darkhorse64 couldn't one do a MCTS with the result of the NN? Like instead of pure random sim?
Astrobytes: Just standard alphabeta cegprakash
cegprakash: and I don't know how to run a minimax for custom depth
Astrobytes: ?
jacek: iterative deepening
cegprakash: minimax is like dfs
struct: if(detph == N) return eval()
cegprakash: so some paths can take long time
cegprakash: and can have large depths
cegprakash: I don't know how to control the depth
darkhorse64: When I say NN, it actually means run an MCTS and eval the position with an NN
cegprakash: should I use BFS?
Astrobytes: You can set it to just cut off at time or you can do ID
Alshock: @darkhorse64 aw ok then
cegprakash: ID?
Astrobytes: So you can have a fixed depth and cutoff if time limit exceeds or you can deepen iteratively
darkhorse64: cegprakash: all these improvements require iterative deepening
Astrobytes: Iterative deepening
Astrobytes: Not hard to implement cegprakash, you can do it
Alshock: does that necessarily mean queueing?
jacek: no
Alshock: kk
struct: Illedan I dont like logos :(
jacek: huh
cegprakash: Iterative deepening? BFS?
ZarthaxX: just google iterative deepening
Astrobytes: and alphabeta minimax
ZarthaxX: it's a way of mixing dfs with bfs idea, you do dfs to depth X, then if u finish you try depth X+1, and so on until you run out of time
ZarthaxX: and the good thing is that you can reuse things from last depth
Astrobytes: ^
Astrobytes: yo Zarthigator
struct: So I can do like minimax depth N, and then expand it further?
struct: Or is this wrong
jacek: you just do loop while(timeLeft) { bestMove = minimax(level); level++ }
Astrobytes: Start at depth 0, if you succeed and don't time out, then depth++
ZarthaxX: Astrogator
struct: ah I see
ZarthaxX: Astronomus
struct: Now I must try mcts
struct: I need to try to fix it
Astrobytes: I like that last one Zarthonite
jacek: fix where
ZarthaxX: Astronymus
ZarthaxX: my pleasure
struct: uttt
struct: My mcts is bad
jacek: aww
struct: Its wrong
struct: but top 50
struct: I do select expand select expand select expand ...
struct: until end node
struct: :p
jacek: no rollout?
struct: yeah no rollout
jacek: and no out of memory errors?
WINWINWIN: I tried studying a bit of minimax, and I do not understand how it can be applied to tron battle
struct: nope
struct: I expand up to 12 Mill of nodes per turn though
cegprakash: jacek ur's looks like a BFS
struct: Its bad I think, so I wouldnt try it jace k
jacek: technically it could be bfs
Astrobytes: cegprakash read what ZarthaxX said
struct: Let me profile my uttt
struct: to see how bad it is
jacek: i jsut got my lucky resubmit
jacek: dont ruint it
cegprakash: I'll watch youtube on iterative depening
Astrobytes: It's really not complicated cegprakash, you'll get it pretty quickly
struct: CG down?
struct: oh its fine
Uljahn: for ID, should the results of achieved depth be sorted for better performance in case of alpha-beta prunning?
Astrobytes: That's move ordering, and you can if needed
jacek: i use transposition table for that and try moves that were best in previous iterations. usualy they cause more cutoff
Astrobytes: ^
struct: 0x7f26e7acb010 Visits: 26900 score -3335move board index: 0 move pos: 0 childs 9 0x7f26e7acb070 Visits: 5736 score 786move board index: 8 move pos: 3 childs 9 Used nodes: 10904977 Expansion counter: 1374193
struct: https://i.imgur.com/9C4bmZr.png
struct: As you can see very expensive
struct: I thought make children was 30%
cegprakash: after looking at https://www.youtube.com/watch?v=T6uyDXtwru8 I understand what u meant ZarthaxX
jacek: :tada:
cegprakash: looks like I need to have my own stack instead of using the recursion stack
cegprakash: but how do I handle timeouts
cegprakash: :o
cegprakash: like should I run half the time to expand depth
cegprakash: then use remaining time to to collect the results and come back to depth 0
jacek: check time at every minimax call and throw TimeoutException
struct: What to play, so many choices
struct: :(
jacek: ps
struct: I forgot to allow for players to print messages on Yinsh
struct: ups
jacek: phew i havent gotten approved it yet
struct: I wonder if I should increase time
struct: 100ms, do you think is enough?
struct: its at 100ms atm
Snef: struct o/
struct: hi Snef
Snef: 100 ms is enough
Snef: and come search Race :
Snef:
- p
struct: I want but intel intrisics page is always breaking for me :(
struct: I dont know hy
struct: why*
Snef: start without avx ?
struct: I guess I can do that
struct: make perfect sim
struct: then port
Astrobytes: That'll be a first :P
Snef: still waiting for you Astrobytes btw :p
Astrobytes: I'll be there soon Snef, by midweek anyway, hopefully
Snef: noice
Astrobytes: I've created the VS project, so technically I've started
Astrobytes: :P
Snef: do you have a search for csb already ?
Astrobytes: Yeah
Snef: it will be quick then :p
Astrobytes: It's just annoying to have to go through it all. I don't know whether to reuse or rewrite. I'll try reusing first obvs
Snef: yeah depend on your code, mine was not so bad so i could easily remove the parts i didn't wanted
Astrobytes: Mine isn't awful, but it is messy and I have to be careful not to break things :D Reused some for BR and broke things easily :D
struct: How many sims, I must know
Astrobytes: On CSB or BR? And me or Snef?
struct: SR
jacek: yes
struct: anyone
Astrobytes: 0. No search :P
Snef: 1.1->1.5M
Counterbalance: 300k :(
struct: What are you doing counter?
Snef: Counterbalance 300k for one turn or for a depth*turn ?
Counterbalance: per sim, as the referee defines a sim
Counterbalance: depth 5 at current, so 60k per 'rollout'
Snef: ok
Counterbalance: you using avx to get 1-1.5m?
Snef: no
Snef: and i'm pretty sure i have still improvement to do but i'm not advanced enough in c++ for that
Astrobytes: GA?
Snef: yea
Counterbalance: a lot of time goes into the scoring though, using atan2 etc..
Astrobytes: Yeah, same for my CSB. Keep meaning to get around to smitsi but... ach
Snef: maybe try a simplier eval
Snef: Counterbalance on SR ?
Counterbalance: also the round/ceil/floor steps are somewhat heavy
Counterbalance: yeah
jacek: or faster atan2
Snef: in sr there is no more round
struct: Guys the angle never gets rounded or truncated does it?
Counterbalance: 1 hour ago there is
Counterbalance: here: https://github.com/Illedan/CGSearchRace/blob/master/SearchRace/src/main/java/com/codingame/game/Utility.java#L11
Astrobytes: From Illeda n in the forum: Angles are rounded. Position is truncated Speed is truncated.
Counterbalance: i got a sim error when I didn't mplement that - the velocity was off by 1
Counterbalance: x was 167.999999994, referee said it was 168, my old sim said 167
struct: I dont see angles rounded anywhere in the referee
Astrobytes: Pff. Blame Illeda n :D
Illedan: I took it from BR
Illedan: :P
Illedan: Where it really mattered
Astrobytes: lol
Illedan: But it prevents rounding errors :P
Illedan: And is more right
Illedan: Just slower
Counterbalance: https://github.com/Illedan/CGSearchRace/blob/ea91c425f22966c8c4d38933763b006a3319b507/SearchRace/src/main/java/com/codingame/game/Car.java#L125 angle rounding
struct: thanks
Counterbalance: still having a hard time calculating the difference between 2 angles :sweat_smile:
Snef: i don't think it matter a lot tho
Illedan: Counterbalance, I googled that yesterday :P
Snef: my angles are int at end of turn i cast x,y,vx,vy as int to truncate
Counterbalance: nah.. i just wanted a perfect sim, and off by 1 can mean not hitting a CP
Snef: i still get sub 11k
Counterbalance: Illedan hm good idea :)
Snef: Couterbalance to counter that my cp hve radius of 599
Illedan: http://chat.codingame.com/pastebin/2748dd44-dbbf-4868-92c1-34343caa18cb
Illedan: Copy pasta and never look back
Counterbalance: hm i use radians ;)
Illedan: Easier to cache sin/cos results with degrees ;)
Counterbalance: true
Counterbalance: i was preparing to step away from EXPERT if I needed more accurate angles
Illedan: aha
351062: Illedan: would you consider changing the debug mode to something similar to CSB, with the speed vector length changing ?
Illedan: Let me take a look at in CSB
Snef: there is also the "aiming" line from csb i don't know if it can be usefull
Illedan: I can give that one 1 more try
Neumann: reCurse: is your SR online or offline search ?
YurkovAS: Snef checkpoint radius 600 work better than 599
Snef: Yurkov with radius 600 i can miss it
Neumann: Fix your engine
Astrobytes: Such laziness :P
Snef: Neumann isn't it the same for you ?
Neumann: I don't miss CP with radius 600
Neumann: You used your CSB engine ?
Neumann: There's a few differences
Snef: yea i used it but i changed angles to be int as we discussed it before
Snef: also should i replace all my float by double
Neumann: The positions are truncated at the of the turn here, while they are rounded in CSB
YurkovAS: Snef i'm use int for angle and float for x, vx...
Snef: i change that Neumann
Snef: changed *
Neumann: Ok
kovi: i have used 599 is csb, but 600 here
Snef: but Counterbalance linked a function called truncate() that round args
Snef: which is in referee
Illedan: It is rounded if the value is closer to a whole value than EPSILON.
Snef: do you have that Neumann ?
Neumann: Nope
Snef: so there is stilla chance you miss cp no ?
MostComplicatedUsername: We have to have a team for the fall challenge?
Neumann: I haven't noticed any miss so far
Neumann: Unless the ones due to retarded bugs
Neumann: Except *
struct: Was gonna try to fix zoom module, then I saw the size of the file :scream:
AntiSquid: struct add cover picture to yinsh
struct: ok
struct: omg the picture must be 16:9
Illedan: You can crop it in the editor
struct: :thumbsup:
MostComplicatedUsername: In bandas, are the lines given from top to bottom?
MostComplicatedUsername: nvm
jacek: yes
AbdelkrimBournane: Hey guys, what's up
jacek: sky
AbdelkrimBournane: The ceiling, we are home!!
jacek: struct so there will be message or not?
cegprakash: I just added pruning
cegprakash: in oware
cegprakash: but I still do a constant depth
Astrobytes: as in alpha beta?
cegprakash: increased my depth from 7 to 10
cegprakash: yes
Astrobytes: Cool
Astrobytes: Nice one
Astrobytes: Did you try ordering your moves?
jacek: wait, you even didnt have alpha beta pruning?
cegprakash: yes I do
cegprakash: int prune[20] = { 5, 5, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1 };
cegprakash: I now prune based on depth
cegprakash: pick top prune[dep] moves at every depth
cegprakash: No jacek just added
jacek: and are you higher in rank?
cegprakash: I didn't do iterative deepening yet
cegprakash: 17% battles are in progress
Astrobytes: Lower it seems
Astrobytes: Oh sorry, my bad
cegprakash: 35 and climbing
Astrobytes: Didn't realise submit was still ongoing :)
struct: should do a mcts next cegprakash
struct: maybe in other multi
cegprakash: yeah I plan MCTS for UTTT
Astrobytes: I use an MCTS variant for Oware, as do others ceg
jacek: with ept?
Astrobytes: Yea
jacek: how early
Astrobytes: 0
cegprakash: does my code look okay or ugly?
cegprakash: http://chat.codingame.com/pastebin/a413a0b1-850e-425a-8972-42c89e1d391e
Alshock: is depth global?
jacek: is this alpha beta?
cegprakash: yes
cegprakash: depth = 10
cegprakash: yes jacek
cegprakash: I prune by goodmoves
cegprakash: int prune[20] = { 5, 5, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1 };
cegprakash: that's my prune array
Astrobytes: Odd looking alpha beta
jacek: umm
jacek: you prune 'manually'? thats not so alphabeta
ZarthaxX: he found out new ways of minmax
ZarthaxX: :O
Astrobytes: cegimax
cegprakash: what? lol
jacek: the recursive function should have 2 new parameters, alpha and beta. ab should return the same move as minimax, but does it faster
cegprakash: ab?
Astrobytes: inline float search(State& s, int depth, float alpha, float beta, int player)
jacek: alphabeta
Astrobytes: https://en.wikipedia.org/wiki/Alpha%E2%80%93beta_pruning
ZarthaxX: thanks Astrobytes :)
ZarthaxX: better than explaining
Astrobytes: Right? :)
ZarthaxX: Astreacher
Astrobytes: Sounds too much like ASs-reacher Zarthoxide
ZarthaxX: lmaooo
Astrobytes: Teachobytes
cegprakash: so what I do now is a ceg_prune + maximax
cegprakash: not proper alpha beta pruning
Astrobytes: I'm not entirely sure what that is but it's most definitely not an mm with a/b
ZarthaxX: just your own creation
cegprakash: how is my creation worser than a minimax :\
cegprakash: may be my pruning is bad
ZarthaxX: because it doesnt make any sense
Astrobytes: It's nice to be original sometimes but it's also nicer to be correct
ZarthaxX: LOL
ZarthaxX: cegprakash try prunning without losing solutions
ZarthaxX: basically alphabeta
ZarthaxX: :P
cegprakash: what does it do :( wiki pseudo code is complicated.. let me watch some video
jacek: so youre lower in ranking. it seems worse
cegprakash: is it possible to do alpha beta pruning on maximax?
jacek: whats maximax :exploding_head:
struct: ceg wait
struct: i have perfect video for alpha beta
struct: https://www.youtube.com/watch?v=l-hh51ncgDI
Astrobytes: why tf you want to maximax?
jacek: to maximize ranking, duh
Astrobytes: lol
cegprakash: maximax is ez to implement
cegprakash: I don't need to do min anywhere
Alshock: we don't want to minimize our efforts
Astrobytes: Maximax is how young children play games
Alshock: we just want the very best
cegprakash: maximax gives same result as minimax
Astrobytes: I give up
cegprakash: and it's easy to code
Alshock: when the opponent is played by you yes
struct: wtf is maximax?
Alshock: well by the name of it it maximizes the maximum gain? :P
JBM: crazy gre8t new alg by ceg
Astrobytes: Honestly ceg, we're trying to help you learn here
struct: I try to help
struct: but sundenly he seems to troll
JBM: he obviously doesn't want it
cegprakash: say I play at depth 0
cegprakash: and I end at depth 10
JBM: you can't really play at any other depth
cegprakash: now I compute a score at depth 1-
cegprakash: depth 10*
cegprakash: and I would have scores of all moves at depth 10
cegprakash: now at depth 9 what happens is
cegprakash: opponent will have my scores
jacek: on negamax you dont need min :v
cegprakash: now instead of trying to minimize my score
cegprakash: what he'll do is
cegprakash: oh yes
Astrobytes: Don't confuse him jacek
cegprakash: it's called negamax
cegprakash: not maximax
cegprakash: my bad
jacek: x_X
cegprakash: what I do is negamax
jacek: ok, alpha beta works with negamax
cegprakash: now how do I prune with negamax
Astrobytes: alpha beta
struct: https://en.wikipedia.org/wiki/Negamax#Negamax_with_alpha_beta_pruning
Astrobytes: It's exactly the same algo just written slightly differently
jacek: though each time you call -alphabeta(-player,-beta,-alpha)
Astrobytes: ^
Astrobytes: It's shorter and more convenient
AbundantPuddle: That's what she said
Astrobytes: lol
cegprakash: she?
cegprakash: there's a girl here?
cegprakash: :o
AbundantPuddle: Lmao
struct: yes, im a girl
jacek: that would explaing those deleting
MostComplicatedUsername: cegprakash I'm a girl
cegprakash: wow
struct: once yinsh gets aprooved
struct: i delete
Astrobytes: It's a colloquial expression for a double entendre cegprakash
Astrobytes: The UK one is "said the actress to the bishop"
AbundantPuddle: Yeah, that clears that up.
AbundantPuddle: Oh really? That's the UK equivalent? I've never heard that before.
Alshock: me neither
struct: play yinsh ceg
struct: easy move generator
Astrobytes: Yeah, it's an old one. We still use "that's what she said" too though
cegprakash: there is no move ordering in minimax
cegprakash: for alpha beta pruning
ZarthaxX: u can add that
cegprakash: but for negamax it says I need to add ordering
AbundantPuddle: I'm going to start using "said the actress to the bishop." Nobody will understand, but hoping it catches on.
Astrobytes: Just for now ceg, ordering your available moves once by eval score for each turn, before you iterate over them and call minimax would probably give an improvement
cegprakash: that's what I'm doing already
Astrobytes: OK. Just stop with your strange pruning array
cegprakash: I am slow learner. Let me watch some more videos to understand what alpha and beta are actually doing
Astrobytes: Dude, read the wikipedia article, it's extremely clear
Astrobytes: Don't just look at the pseudocode and go "oh I don't get that"
Astrobytes: You and your impatience, seriously ;)
jacek: struct move generation? amateur https://github.com/jdermont/CodinGame-paper-soccer/blob/master/src/main/java/com/codingame/paper_soccer/MoveCalculator.java#L16
cegprakash: does alpha beta pruning takes does sacrifices now to win the game later?
ZarthaxX: jacek what is that
ZarthaxX: D:
jacek: alpha beta will not prune relevant moves. its just faster variant of minimax
Astrobytes: The alpha beta only works with the score you give it from your eval ceg, it's up to you what you evaluate
jacek: ZarthaxX you liek?
Astrobytes: It sets thresholds for the scores
ZarthaxX: what
Astrobytes: If the score of a move isn't better than the threshold, it won't continue on that branch
ZarthaxX: its a huge generation
Astrobytes: Zarthaxia, send halp
jacek: "its huge" thats what she said
ZarthaxX: loooooooooool
Astrobytes: Said the actress to the bishop
Astrobytes: Are my minimax/alpha beta explanations bad? I know I'm on strong painkillers but I still feel mentally competent?
cegprakash: wow who gave me that video
cegprakash: https://youtu.be/l-hh51ncgDI?t=325
cegprakash: now it's easy to understand
jacek: :tada:
Astrobytes: There's nothing in that video we haven't told you
cegprakash: love u struct
Astrobytes: In future ceg - don't ask for advice on chat. Just search on youtube :P
ZarthaxX: he just doesnt read us
cegprakash: u never show me a diagram
Astrobytes: It's not just my poor explanation then ZarthaxX? (Zarthonator)
cegprakash: u said use alpha beta
Astrobytes: FFS man, draw them yourself
cegprakash: struct showed me what's alpha beta
ZarthaxX: dont bother anymore
ZarthaxX: you are cool Astrobytes
ZarthaxX: lmao the ( name )
Astrobytes: Dude, when I learned it I drew out game trees on paper and shit
jacek: thats stinky
cegprakash: I love u too Astrobytes
Astrobytes: WEll, on my whiteboard
**cegprakash slaps Astrobytes around a bit with a large fishbot
Astrobytes: Ofc cegprakash, <3 you too bro, BUT you are THE most frustrating person on CG sometimes :D
cegprakash: that's rude
cegprakash: wtf
Astrobytes: When trying to explain things
cegprakash: and u used caps
Astrobytes: (I only meant to on the 'THE')
Astrobytes: Just for emphasis.
**Astrobytes tries to be nice - fails. Tries to explain - fails. Fail.
AbundantPuddle: Sometimes when things are explained just slightly differently, it just so happens to click with somebody that way. Me personally, I know I'm more of a visual and hands on learner. Somebody could explain something to me for hours and I still might not understand until I see and try it myself.
Astrobytes: We've been attempting that for over an hour now
Astrobytes: ZarthaxX/Zarthoman save me
AbundantPuddle: Lmfao. Well ceg seems to understand now, so that's all that matters. I'm sure he is greatful for everyone who has been assisting him. Right, ceg?
Astrobytes: I also learn by doing AbundantPuddle, but I try to watch and read about it first, and take advice.
cegprakash: yes yes
cegprakash: ofc AbundantPuddle
Astrobytes: cegprakash, the MIT lectures on game theory and associated algorithms are really good
Astrobytes: Well, search algo theory
cegprakash: well I saw pseudocode and it was like "wew what in the world is this" then I read what it says "meh but I don't understand"
cegprakash: that's why I like youtube
Astrobytes: This series, is great: https://www.youtube.com/watch?v=STjW3eH0Cik
AbundantPuddle: I agree Astrobytes. I feel you should always be willing to learn from others. I have learned a lot from many others' experiences.
Astrobytes: And do some stuff on paper/whiteboard, it'll really get into your head
Illedan: cegprakash, MinMax search race?
Astrobytes: 100% AbundantPuddle
cegprakash: ur bugs fixed Illedan?
Illedan: what bugs?
Illedan: no such thing
cegprakash: ppl were saying cars are spinning
cegprakash: yesterday
AbundantPuddle: They're not bugs, they're features.
cegprakash: like in crossing two checkpoints on same turn
Illedan: That is fixed
Astrobytes: Illedan seems to have a case of feature creep with SR :)
cegprakash: is there collision in search race?
Astrobytes: Only with the checkpoint
Astrobytes: No bouncing
cegprakash: wow
cegprakash: then I'll defnitely do
cegprakash: once I learn pruning
cegprakash: and what does minimax has to do with search race
Astrobytes: :joy:
cegprakash: there is no opponent
Illedan: haha :D
Illedan: MaxMax
Astrobytes: ceg, activate Troll-o-meter now
cegprakash: I almost fall for the trap
Alshock: is it over 9000 yet?
Alshock: said the bishop to the brazilian?
AbundantPuddle: Did the actress give the bishop a brazilian?
AlMag: quick question - im playing ultimate tic tac toe. Currently wood league. How to progress to other leagues? i am in top 3 - it's not enough?
MoMaT: AlMag, you need to be number 0.
AbundantPuddle: I'm not entirely sure about that one specifically, but I believe in every league, you have to make it to rank 1 by defeating the boss to move on to the next league.
MoMaT: that is higher in the rank than the boss :P
Astrobytes: You need more points than the boss
Astrobytes: So you have to be able to beat most of the others and have a decent winrate against the boss
cegprakash: copy pasting from wiki doesn't seem to work :D
cegprakash: may be I have bugs
cegprakash: :D
Astrobytes: It's the wiki. Clearly bugged.
Astrobytes: :P
cegprakash: or opponent has better eval :\
cegprakash: I am at depth 12 now with pruning
cegprakash: negamax + alpha beta
Astrobytes: That's cool, what are you eval'in though - it's really important in Oware
Astrobytes: *evaluating
cegprakash: http://chat.codingame.com/pastebin/cac73638-4722-4868-9d17-4bfdca3c81af
cegprakash: i try to maximize the score and seeds on my side
cegprakash: with priority to score
Astrobytes: For starters, that's quite inefficient with all those loops, you only need one (or none if you go all fancy bitboards). Also, there are other parameters to consider
Astrobytes: I would recommend a google search on Oware/Awalé scoring
Astrobytes: If you find a few articles via google they will give you a good place to start eval-wise
reCurse: What was euler's website for cg chat logs?
Astrobytes: dbd r's
Astrobytes: one sec
Astrobytes: reCurse: https://cg.spdns.eu/wiki/Main_Page
reCurse: Thanks
Astrobytes: np
Astrobytes: cegprakash: your current bot is much worse than before. You must have a bug. https://www.codingame.com/replay/468985313
Astrobytes: You were scoring higher previously
cegprakash: yeah :\ it shouldn't be lower because I had the same eval
Astrobytes: Just a bug in your implementation, you'll work it out
Alshock: @Astrobytes best eval is no eval when you don't know the subtilities of the game imho
Astrobytes: But please do yourself a favour and google Oware/Awalé evals
Alshock: subtleties?
Alshock: I can't even spell basic words anymore
Astrobytes: lol
Astrobytes: It's that time of the day y'know
Alshock: 4th beer past 15 cL already?
Astrobytes: Believe me, for Oware, eval is very important
AlMag: Astrobytes, thanks man! Boss is now defeated! ;)
cegprakash: found the bug
Alshock: I trust you on that one ;)
YurkovAS: In optimization, when submit, code tested with distinct cpus?
Astrobytes: gj AlMag, well done
YurkovAS: Find 3 distinc cpu: Intel Haswell
2194MHz (bogomips: 4389.68), 2394MHz (bogomips: 4788.90), 2993MHz (bogomips: 5986.01)
Astrobytes: I thiiiink it's different from the multi servers YurkovAS - reCurse?
YurkovAS: Find when testing in optimization
Astrobytes: Yes, you get different ones on multis too, but afaik the optim games are on different machines to the multis
cegprakash: what is ur depth Astrobytes?
AlMag: If i moved to a new league, can i send code to the previous league? I want to improve there, but don't know how to switch
Astrobytes: Depth is 0. I use MCTS w/ EPT. When I had minimax a/b it was 13 iirc cegprakash
Astrobytes: It still builds a tree, but I don't rollout, I just eval
Astrobytes: This submit is much better now cegprakash, now you have to fix your eval
cegprakash: yea
cegprakash: I'm only at depth 11
cegprakash: but my eval is also slow as I have a loop inside it
Astrobytes: That's OK, just eval the right parameters
Astrobytes: With the right eval you can be higher than your are with depth 11
Astrobytes: *you are
Astrobytes: *with a better eval
BeardedWhale: Anyone here working on Search race and want to share their records on the test cases? Would be nice to have something to benchmark against, to find where my bot is lacking.
BeardedWhale: My records: http://chat.codingame.com/pastebin/64fba071-0210-4ab2-92a1-046b143f27b4
Snef: http://chat.codingame.com/pastebin/568cc9e5-d120-42db-a9f2-d9a20b43f83b
Snef: BeardedWhale
BeardedWhale: Nice, thx
YurkovAS: Resubmiting same code give distinct scoring (and fails sometime). Onetime this give me +250 score.
Snef: +250 or -250 ?
YurkovAS: +250
Illedan: Is your sim 100%?
BeardedWhale: Yeah, mine fluctuates with somehing like 300 between submits.
BeardedWhale: And randomly fails
Snef: if your search have random it's logic
Snef: the fails tho..
Astrobytes: YurkovAS was wondering about the CPUs on the machines
Illedan: Yeah, some have said they have to use 35 ms to "fix" the fails..
YurkovAS: Snef yes, use randoms with fixed seed
Snef: yea me too
BeardedWhale: I use fixed seed, but since the searchtime is somewhat random, the results still vary somewhat.
AKZOMBIE74: im tryna change my password on this site but i forgot it
AKZOMBIE74: i use my google account to sign in, and i tried the password for that google account but it doesnt work
JBM: find the "reset password" link
mikelong1994: is there a proper console so I can see errors?
AKZOMBIE74: @JBM there isn't a "reset password" link tho
Snef: struct u there ?
struct: Snef
struct: now I am
cegprakash: top 20 on oware xD
cegprakash: i go till depth 15! what a pruning!
struct: nice cegprakash