From CG community
Jump to navigation Jump to search

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.

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?


jacek: oware eh

Default avatar.png VineetArora: int(i) for i in input().split()

jacek: indeed

dbf: eulerscheZahl your article is trending in pacman review: :)

eulerscheZahl: trending?

eulerscheZahl: forum shows 19 clicks in my post mortem

eulerscheZahl: from which video is that taken?


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

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


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


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: How do I find Msmits SmitsiMax postmortem?



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


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"


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


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


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


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?

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

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

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

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

Default avatar.png BALEK: oh, yes i print debug :hushed:

Illedan: Thx Counterbalance

wlesavo: lol, nice

Default avatar.png BALEK: thanks :grin:

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


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.


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: As you can see very expensive

struct: I thought make children was 30%

cegprakash: after looking at 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 :



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:

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


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


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

Default avatar.png JBM: or at least fast

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?

Default avatar.png JBM: not with that name

jacek: whats maximax :exploding_head:

struct: ceg wait

struct: i have perfect video for alpha beta

Default avatar.png JBM: wait not at all actually


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

Default avatar.png JBM: crazy gre8t new alg by ceg

Astrobytes: Honestly ceg, we're trying to help you learn here

struct: I try to help

Default avatar.png JBM: don't do that

struct: but sundenly he seems to troll

Default avatar.png JBM: he obviously doesn't want it

cegprakash: say I play at depth 0

cegprakash: and I end at depth 10

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


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

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

Default avatar.png TheDude75: da

Default avatar.png TheDude75: oops

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:

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?

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

reCurse: Thanks

Astrobytes: np

Astrobytes: cegprakash: your current bot is much worse than before. You must have a bug.

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

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

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


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.

Default avatar.png AKZOMBIE74: yo

Default avatar.png AKZOMBIE74: im tryna change my password on this site but i forgot it

Default avatar.png AKZOMBIE74: i use my google account to sign in, and i tried the password for that google account but it doesnt work

Default avatar.png AKZOMBIE74: can anyone help?

Default avatar.png JBM: find the "reset password" link

Default avatar.png mikelong1994: is there a proper console so I can see errors?

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