From CG community
Jump to navigation Jump to search

Default avatar.png sHlOk: Hi everyone

Default avatar.png sHlOk: Did u all notice some odd named coders on this site?

Default avatar.png sHlOk: they are vietnamese.

jacek: oO

GPseudo: Do you mean some bots participating in coding practice?

Default avatar.png NgonTran: á đù

Default avatar.png NgonTran: fu

Default avatar.png NgonTran: india

WINWINWIN: Sorry? NgonTran?

AlanSpacer: Racism Comes In Many Forms

AlanSpacer: I am one of them

bobby2: lol

hill123455: anyone got any suggestion with Forest Fire fuzzle. I'm kinda stuck :|

DonLarry: hello world

jrke: hey

WINWINWIN: Can someone tell me what pragmas are used to optimize C++?

Uljahn: #pragma GCC optimize "unroll-loops,omit-frame-pointer,inline"

darkhorse64: #pragma GCC optimize("O3,inline,omit-frame-pointer,unroll-loops","unsafe-math-optimizations","no-trapping-math")

WINWINWIN: "unsafe-math-optimizations" ?

darkhorse64: you ant speed ? Take risks

darkhorse64: *want*


Uljahn: speed/safety trade-off

WINWINWIN: I ont have any math anyway its PR2


darkhorse64: When I start a bot, I copy lots of boilerplate without thinking of it

WINWINWIN: Would be useful but my base classes change a lot when I study other PMs

darkhorse64: Timer, random, position, cell, bfs, ...

darkhorse64: grid, serialization

darkhorse64: skeleton

darkhorse64: 800 lines approx to start with

WINWINWIN: I used to copy the point class, but stopped that too when I started to overload the operators

Default avatar.png linlinmq: funny

darkhorse64: then, it's time to think and maybe remove some

darkhorse64: overloading operators is really handy for all vector operations

WINWINWIN: siman, you are destroying my rank :rage:

Astrobytes: derjack, jacek, good work :+1:

WINWINWIN: derjack is an alt?

derjack: meow

Astrobytes: Had to abandon it last night cause of the damn leaderboard

MSmits: oware is so screwy

MSmits: Recurse GW=2,78% [ W=0,00% L=94,44% D=5,56% ] [18]

               Robo    GW=80,00%    [ W=80,00%   L=20,00%   D=0,00%   ] [20]

MSmits: so 3% winrate vs Re curse, 80% vs Robo

Astrobytes: lol

MSmits: Robo is nr 1 :P

MSmits: it's only 20 games each i know, but this is typical

MSmits: I change the parameter by 1% and they're both 50%

Astrobytes: Yeah, I feel the pain. The struggle is real.

MSmits: this is not even an eval feature, just the sigmoid parameter

MSmits: it happens with the exploration parameter too

MSmits: anything i tweak

Astrobytes: Yep, I've played with them too

Astrobytes: And you submit, thinking "right, this beats x y and z, should be worthwhile" -> Lose versus the others

MSmits: yep

MSmits: thats why i always have 4 opponents to check against

MSmits: I dont trust it otherwise

Astrobytes: w, x, y and z then ;)

Astrobytes: Fking crazy game

MSmits: I just do the top 3 and agade, the reason I add him is because his bot is weird and sometimes gets really strong vs mine, with some parameters

Astrobytes: Yeah, I noticed that about Agad e's NN. Some submits you literally steamroller it, other times you can't beat it for love nor money. Strange one. You can observe the fluctuation in his placement depending on submits

MSmits: probably the trainingset he uses is too narrow

MSmits: really good vs some strategies

MSmits: useless vs others

Astrobytes: Yeah, that sounds probable

MSmits: my leaderboard version is weak vs re curse btw

MSmits: I remember i never countered his last submit

MSmits: only have a 90% winrate

Astrobytes: *only* :P

MSmits: sorry 10%

MSmits: so what happens is, i submit, I push re curse, then over time other people push me over re curse

Astrobytes: That's more like it

MSmits: I think he trained a couple versions of NN's and picked one that did well against me

Astrobytes: lol, the Smits Exterminator version


MSmits: you can see it pretty clearly here

Astrobytes: Yep

WINWINWIN: reCurse uses an NN on Oware?

MSmits: yes

Astrobytes: yes

MSmits: and robo and agade also

Astrobytes: ^

Astrobytes: And I think both Tiramo n and Csipcsiri p working on them too

MSmits: I think they have the same issue we have though

MSmits: doesnt matter if you train the nn or fit the parameters

MSmits: there's gonna be strong RPS

Astrobytes: Yep

Astrobytes: There doesn't seem to be a 'catch all' set of weights

MSmits: That's usually the case, but most games have enough randomness that it doesn't lead to a lot of RPS

MSmits: I think this game is very narrow as to what a good line of play is and the one who deviates from it first loses

MSmits: unless someone deviates from it more, after that ofc

MSmits: I wonder how many different games I will see with top players

MSmits: maybe they play only a small set of games

derjack: time to retire this alt from oware

MSmits: jacek?

derjack: who

MSmits: derjack = jacek isnt it?

MSmits: i read that yesterday I thought

Astrobytes: yeah

derjack: must be a dream


MSmits: I have done CG benches in some games with both derjack and jacek in it :P

MSmits: I think onitama

Astrobytes: derjack was MCTS, jacek was alphabeta

Astrobytes: here at least

MSmits: ah ok

MSmits: is alpha beta good on oware?

Astrobytes: tric trac still has it, not sure on royale, it works up to a point yeah

MSmits: well trictrac is in the ballpark with every non-NN except me, so it might work just as good as mcts except I got better parameters for eval...

derjack: well i have it on onitama

eulerscheZahl: derjack is not a new user?

Astrobytes: No

Astrobytes: Yeah MSmits, he has endgame database on Oware

eulerscheZahl: stop confusing me :/

Astrobytes: well, endgame book

MSmits: it seems useful for oware, but you have to be careful on long games

MSmits: the turn-limit might ruin you

MSmits: if you sacrifice 2 seeds to get 3 and the 3 are expected at turn 203...

Astrobytes: Yeah, but I guess you'd factor that in so you wouldn't make that error

MSmits: thats why sometimes loops are broken near the end of the game

MSmits: sometimes it is best to stay in the loop throughout the game, but then when the end turn nears, your bot sees a way to get a seed without time for the opponent the counter

MSmits: to counter

Astrobytes: yeah, that' s definitely something you see a lot

MSmits: thats also why a good solver helps

MSmits: if you solver sooner, your bot can see this before the opponent

struct: hello

MSmits: hello

Astrobytes: o/

derjack: i see 100us time and still im 36

MSmits: ?

MSmits: jacek, your alt is confusing us

derjack: set*

MSmits: but why do you think your age will change when you set a different time :confused:

Astrobytes: :P

eulerscheZahl: that's how you could keep demos playable long ago

MSmits: hm ok

Astrobytes: yep

Astrobytes: That or a hex editor ofc :P

derjack: welp is parameter fest

derjack: better eval (for mm) works worse in mcts

derjack: maybe its overfitted or too granual or something

derjack: while simpler is suitable for mcts

MSmits: except when you take the better eval and just change one tiny thing and its suddenly better than the simple one :P

WINWINWIN: Anyone else think that the asymmetric maps on PR2 are not a good idea?

struct: Why not?

eulerscheZahl: depends on how much asymmetric

eulerscheZahl: e.g. this in nonsense

eulerscheZahl: (imagine one spawn a little more in the center, didn't fund such a replay that fast)

struct: ah, i did not know that starting position was not mirrored

WINWINWIN: There are asymmetric maps but the battles are always paired

eulerscheZahl: it's just a 1-1 if it's too asymmetric. no information gain from that

Astrobytes: Latest 'Easy' puzzle contribution: "The Car Engineer": Given n cars, you should output the wheels of the total of cars.

eulerscheZahl: n*4

Astrobytes: i.e. n * 4

eulerscheZahl: :D

Astrobytes: :D

eulerscheZahl: but hard to refuse with contribution guidelines

WINWINWIN: euler it is a classic puzzle :joy:

eulerscheZahl: oh, then it's easy to refuse

eulerscheZahl: "No CoC puzzle is too easy." no such rule for regular puzzles

Astrobytes: I've downvoted and commented, only at WIP

eulerscheZahl: shut up and take my downvote

struct: validators are equal to test cases

Astrobytes: lol


eulerscheZahl: i followed your example Astrobytes

Astrobytes: :)

eulerscheZahl: and the default code

struct: I think if he hads a viewer its a nice puzzle

eulerscheZahl: write If all of the test cases succeed, then the answer will be correct. Note: delete this two lines and don't forget to print the answer.

struct: adds*

jrke: just n*4

Astrobytes: LOL I didn't spot that euler :D

eulerscheZahl: but who would make the effort to create a viewer for such a simple puzzle?

jrke: ya stub generator input is stupidity

jrke: btw my puzzle any suggestions


jrke: just a pathfinder

eulerscheZahl: oh, the path finding one

eulerscheZahl: i saw that

Astrobytes: Yours is just BFS distance puzzle jrke?

jrke: yeah

Astrobytes: I'm a bit concerned it might be a duplicate

Astrobytes: Could be wrong

Astrobytes: As in too similar to an already existing puzzle

eulerscheZahl: there are definitely some puzzles with BFS and an extra twist

jrke: nope i don't think so cause i haven't solved any puzlle like this

WINWINWIN: jrke there are around 100 easy puzzles


eulerscheZahl: hm, not really the same even if it looks similar at first

jrke: oh yeah looks similar but not same

Astrobytes: Yeah this is finding the exits

eulerscheZahl: that's like a more interesting version of your puzzle

eulerscheZahl: same for Bender 4

jrke: ya

jrke: but my puzlle isn't the same


WINWINWIN: jrke it does not have to be identical. But it is too similar for it to be a new puzzle

eulerscheZahl: C# solution:


jrke: can my puzzle be rejected

jrke: ?

Astrobytes: Yep. I think you need something extra to make your puzzle more interesting. As it is, just finding the distance isn't really gonna do much for most people

jrke: K i will add more things

Astrobytes: Have a think about it and try and come up with something original

jrke: can i add this if child coudn't reach mom so output false

eulerscheZahl: :thumbs_down:

eulerscheZahl: :thumbsdown:

jrke: K

jrke: i will add something else

struct: All its needed is a viewer

eulerscheZahl: ezpz

eulerscheZahl: but true, a nice animation helps to attract players

jrke: how to add animation i didn't created any puzzle yet its my first puzzle


eulerscheZahl: you can also have a look at other community contributions with animations

derjack: making a neat animation for othello?

jrke: does it needs JS

eulerscheZahl: no

eulerscheZahl: a language that compiles to JVM (e.g. Java or Kotlin

eulerscheZahl: )

eulerscheZahl: up to you to decide

jrke: lol i know c++

Astrobytes: Clojure...

eulerscheZahl: a puzzle with a maze + animation. the sourcecode is on github

eulerscheZahl: scala

eulerscheZahl: groovy

Astrobytes: I always forget about groovy

eulerscheZahl: does CG have Scala?

Astrobytes: yup

jrke: nope im just a 12years old kid just started learning python

Astrobytes: And groovy

jrke: not yet

eulerscheZahl: oh, that's the inspiration for your puzzle

jrke: c++ and little bit python

eulerscheZahl: jrke searching for his mom

Astrobytes: :)

jrke: no

jrke: :)

MSmits: this is another ongoing cg bench:


MSmits: do you see how Agade stacks up agains the top 1,2 ?

jrke: so i can't add animations with c++

MSmits: weird huh? , he is rank 11

MSmits: 12 points below Robo

struct: I found one with nice animations

Astrobytes: crazy stuff

struct: I will try to do them like it is there

struct: I could post the link here but it uses flash

derjack: flash? what year is it

MSmits: the year of flash grenades

jrke: anyone to my ques

derjack: MSmits also you have many draws with the teapot comparing to others

Astrobytes: Flash, Flash, I love you, but we only have fourteen hours to save the Earth!

struct: Oh god

eulerscheZahl: how do i even execute flash these days?

MSmits: wait what, who is the teapot?

struct: I was playing vs PC and ended up without pieces

struct: Chrome euler

Astrobytes: In a sandboxed VM?


MSmits: oh darkhorse

eulerscheZahl: nah, i downloaded an offline standalone runner long ago

MSmits: yes

MSmits: weird

c0cainee: when the bot wins the round

Astrobytes: Only Java jrke


struct: Similar to this I guess

eulerscheZahl: javascript would be possible too. even more efficient regarding replay size. but harder to achieve

struct: to have the navigation features?

struct: I don't think it's possible

eulerscheZahl: reply to Astrobytes 04:13PM Only Java jrke

eulerscheZahl: which referred to jrke 04:09PM so i can't add animations with c++

struct: ah ok

Default avatar.png Matrix007: anyone

Default avatar.png Matrix007: i cant understand the power of thor

Default avatar.png Matrix007: i used gotoxy

Default avatar.png Matrix007: is the south direction is one unit?

Default avatar.png Matrix007: every direction i move is one unit?

Default avatar.png Matrix007: its like creating google maps(#so cool)

Default avatar.png Matrix007: but i dont get it

Uljahn: you need to change your current position depending on your move

Uljahn: or just click Hints on the left

eulerscheZahl: nice, forest fire as the puzzle of the week

Uljahn: ye, nice graphics, very close to classical puzzles

WINWINWIN: Forest Fire seems nice, could it be modified to optimization?

WINWINWIN: Water used being the scoring metric

eulerscheZahl: probably the optimal solution would be found

WINWINWIN: Sry, you`re right, its solvable

struct: the n x 4 was removed?

struct: :(

jacek: ?

eulerscheZahl: oh dear

eulerscheZahl: puzzle suggestion

struct: you missed it jacek

eulerscheZahl: you are given an amount of cars

struct: print the number of wheels

eulerscheZahl: how many tires are there in total?

eulerscheZahl: wheels? including the steering wheel? don't make it complicated

jacek: CoC puzzle?

struct: tires including spare tire?

struct: no easy puzzle

eulerscheZahl: was WIP, got negative feedback

eulerscheZahl: user removed it again it seems

jacek: and deleted account?

WINWINWIN: I doubt it, was a reasonably advanced account, in the top 2000

struct: advanced?

struct: he was level 6

WINWINWIN: Really? He approved one of my CoC puzzles :/

struct: He only needs N clashes played to aproove them

WINWINWIN: Didnt know that. Thanks struct

eulerscheZahl: N=50

jacek: 200

eulerscheZahl: 50 to approve/refuse

eulerscheZahl: 200 to edit approved contributions

Default avatar.png shivam_pandey: ??

eulerscheZahl: and lvl20 / 29 for regular puzzles

struct: 31 to edit puzzles/multi contributions right?

eulerscheZahl: 29

eulerscheZahl: you are close

struct: Soon Ill have Yavalath back

eulerscheZahl: i'm not sure about this

struct: :'(

eulerscheZahl: i recently tried to update langton's ant (wasn't resetting if out of map in the first match)

eulerscheZahl: got an error that i'm not the author and have no permission

struct: oh

eulerscheZahl: so I gave the updated zip file to Thibaud

struct: Can you remove them though?

jacek: remove game?

eulerscheZahl: remove?

struct: yeahj

struct: delete

jacek: :scream:

eulerscheZahl: i can give 1 star

eulerscheZahl: and do the same with many accounts

jacek: no, game isnt account, you cant delete

jrke: im trying sim for CSB can u tell if its right


eulerscheZahl: then it will drop below some treshold and get garbage collected

struct: please no :( Yavalath already has low enough stars

eulerscheZahl: but there is no real delete. i can't even delete my own games which got approved

eulerscheZahl: yavalath has a solid 4.8 rating

jrke: hey anybody to my ques

darkhorse64: the speed is truncated and the position is rounded

Default avatar.png gavi: Please help

inoryy: angle delta is clipped to +-18

Default avatar.png gavi: Activating C# language assist always fails

Default avatar.png gavi: I am on Chrome

Default avatar.png gavi: where to ask help?

jrke: ya -19<move_angle<19

jacek: activating language?

eulerscheZahl: complain on the forum or the bug channel on discord gavi

eulerscheZahl: this jacek

Default avatar.png gavi: thank you

Default avatar.png Sepehr.khashei: c++

jacek: D

eulerscheZahl: Vala

eulerscheZahl: where is Vala? add it to the website

jacek: vala mal doran?

eulerscheZahl: ?

jacek: :(

jacek: kree java?

eulerscheZahl: me no understand

jacek: you havent watched greatest scifi show ever?

eulerscheZahl: star-something?

eulerscheZahl: no

jacek: :x

eulerscheZahl: neither wars nor track

Astrobytes: -track +trek

Astrobytes: And he means gate

eulerscheZahl: who cares

eulerscheZahl: gate? another series?

Astrobytes: Yea, Stargate

eulerscheZahl: lmgtfm

jacek: starring mcgyver

Husoski: The *real* MacGyver

jacek: or wormhole x-treme

MSmits: I got that reference jacek

jacek: :heart_eyes_cat:

MSmits: we have nerd resonance

struct: some news for you MSmits


jacek: othello?

MSmits: thanks struct, i like random bitboard pastebins :)

struct: yeah

MSmits: nice

MSmits: i think 8x8 will be fine

eulerscheZahl: you just want 64 bits

MSmits: mmh though wiki says top programs almost always end in draw

MSmits: but i doubt we'll be close to a top program with CG limitations

jacek: so are checkers

MSmits: yeah checkers is less complex

jacek: but 100 (or 50?) ms is challenging enough

MSmits: i think so

MSmits: so 8x8 othello should be fine

MSmits: and eulerscheZahl, yes 64 bit is nice :)

jacek: with 10x10 you would just cheat with 128_t

MSmits: I can't use the native 128_t because VS won't have it

MSmits: so I end up writing my own version of that when i need to

jacek: so othello 10x10 it is

MSmits: aside from it fitting less good in a bitboard

MSmits: it's also nice to have 8x8, same board as breakthrough, chess etc.

MSmits: and checkers

WINWINWIN: who`s going to make othello?

MSmits: struct is doin it

Astrobytes: Oh hey MSmits, bit offtopic, but wanted to thank you for recommending Better Call Saul, loving it

MSmits: great

Astrobytes: Way better than I expected

jacek: breaking bad spin off?

Astrobytes: Yea

MSmits: it's a totally different story, but the cinematics is similar to breaking bad

MSmits: same kind of tricks they use

eulerscheZahl: i just finished watching the current season

MSmits: it's cool

Astrobytes: It's a worthy successor to BB

MSmits: prequel, but I get your point :0

Astrobytes: Yeah lol

eulerscheZahl: sometimes the scenes are a little lenghty IMO. and i hate reading subtitles when they speak spanish

MSmits: ah... us Dutch are used to subtitles

Astrobytes: Learn Spanish. ezpz

MSmits: you Germans are used to people magically spewing out noises that dont coincide with the movement of the mouth

Astrobytes: heh heh heh

**MSmits is a lipreader

MSmits: always had arouind 50 dB hearing loss, so I can lipread

MSmits: which makes it extremely annoying to watch dubbed stuff

Astrobytes: Damn, yeah, I can imagine

MSmits: it's sometimes nice when my students are doing a test

MSmits: "I was just asking him for a pen"

MSmits: "mmmh nah that's not what you were saying"

Astrobytes: LOL yeah, that's awesome

eulerscheZahl: my father had a WWII veteran as a teacher

eulerscheZahl: couldn't hear high frequencies anymore

jacek: so women too

MSmits: my father has the same hearing handicap from standing too near to cannons

eulerscheZahl: so they spoke in a high voice during exams

Astrobytes: lol

MSmits: lol, so he sacrificed his hearing so they could live in a free country and they sacrifice their dignity for a few extra points on a test :)

Astrobytes: Kids eh

MSmits: right

MSmits: I once walked around with hearing aids for 3 yrs that were tuned to my fathers hearing handicap

MSmits: cuz they mixed up the files

MSmits: I never realized cuz you know... i heard better with them than without. How are you gonna know

Astrobytes: Man that's crap! At least you could hear I suppose

WINWINWIN: Isnt that extremely bad for you?

jacek: !

jacek: oh, it was timeout

jacek: :c

MSmits: WINWINWIN nah, the cap for hearing damage is the same for everyone, no matter your handicap

MSmits: so if you hear really badly, it doesnt mean you can take a greater amplification

jrke: im out of mind now what to add in PR2 now

MSmits: thats why hearing aids are limited for people who have a lot of loss, there's limits that make you always hear worse than other people,otherwise your hearing would be damaged more

Astrobytes: jacek, do you tune your Oware bot to beat me on purpose? :P

jacek: here i beat MSmits without timeout

MSmits: thats a nice win

MSmits: my bot tends to gather up a lot of seeds

MSmits: sometimes it backfires :)

Astrobytes: It backfired there.

MSmits: yep

MSmits: I had a version before that assumed I would never have more than 31 seeds in a pit

Astrobytes: I remember that

MSmits: that made me sometimes crash

MSmits: but so rarely that it was really hard to fix

jacek: but you timeouted now

MSmits: sure, but I time out in every game, once in 100 games or so

MSmits: 5 ms buffer is not enough, or I have a bug in every game :)

struct: you go 5ms under the limit?

MSmits: yes

jacek: so do i

struct: I use all 100ms in UTTT

struct: no margin

MSmits: my oware bot has some crazy seeding and harvesting though, I imagine there could still be a bug

jacek: and look where you are

struct: I never improved it :p

jacek: how many params are in your eval, if i may ask

MSmits: in mine?

jacek: eeyup

MSmits: allright, if i dont count exploration and the sigmoid param it:

MSmits: hmm, hard to say

MSmits: it's 6 + a kroo thingy i do

MSmits: that one website said you should give points for a pit with more than 12 seeds right?

jacek: i have 5 for the eval. + exploration and fpu

jacek: yes

MSmits: I do that differently using 3 parameters and an array

jacek: though i think it depends if it reaches opponent

MSmits: right

MSmits: but my solution is not intuitive really. I experimented a ton and got something that works, not great but better than just > 12

MSmits: I have an array for each number you can have in a pit, also taking the pit location into account

MSmits: and then basically have the same bonus for most of those values (3 different ones)

MSmits: it doesnt make sense why it works because the bonus is high in places where i think it shouldn't etc.

MSmits: i tried to fit the bonus array to a function with less params, but it never performed better (this was my experimental version)

jacek: hmm for me having 2 seeds in the middle it says its good

Astrobytes: Crazy oscillating parameters and stuff lol

MSmits: jacek stuff like that yeah, I never checked the 2 seeds in middle thing

MSmits: I do have a 2 seed param where i give penalty for each pit with 2 seeds in it

MSmits: same for 1 seed

MSmits: but its a very weak feature. Doesnt seem to affect much

jacek: that granulatily works for minimax eval, but in mcts i dont take the location into account

struct: Othello in 2 hours?

jacek: :tada:

MSmits: damnit struct, you are too fast

struct: Isnt ready yet

struct: I just miss the viewer

struct: rest should have no bugs

MSmits: take it easy, i am working on some other stuff too :P

jacek: lets call tric trac

MSmits: he'll love it

struct: First I need to make the game WIP for a long time

struct: so I farm upvotes

struct: and get exp

MSmits: yeah

Astrobytes: lol

eulerscheZahl: 250XP for an approved multiplayer is a joke

MSmits: the speed at which struct can write multis it's actually pretty efficient :P

struct: yeah, then we have a flood of multies

struct: more multies than puzzles

eulerscheZahl: obviously there are differences between different multiplayers as well

struct: true

struct: Im preety sure you spent a lot of time on Vindi

eulerscheZahl: yeah

eulerscheZahl: porting the map generator alone was a full weekend

struct: Did you have any code to guide?

eulerscheZahl: (that includes different ground transitions, so just visuals)

eulerscheZahl: there was no documentation iirc. just tic tac toe

Astrobytes: Yeah I remember you working on the blood spatters

Astrobytes: *splatters

eulerscheZahl: and bloody footsteps

Astrobytes: yeah

eulerscheZahl: was fun

eulerscheZahl: and then one day i couldn't create new contributions anymore

eulerscheZahl: but update existing ones and set the state from private to pending

eulerscheZahl: so we approved it on a friday evening and expected CG to delete it on Monday again

eulerscheZahl: tuesday, still online

eulerscheZahl: wednesday: info mail promoting the new game :D

MSmits: nice

Astrobytes: lol, yeah. Ah the memories

eulerscheZahl: i still have it

struct: Nice :D

struct: I almost forgot that SDK now has getWorld().getWidth()

Astrobytes: haha awesome

darkhorse64: Why not tell thibpat about your othello and make it an unofficial contest ?

darkhorse64: You'll get more traction

eulerscheZahl: wasn't thibpat's point to promote an existing game?

Astrobytes: No he's open to new community games too

Astrobytes: (To make proper unofficial contests essentially)

darkhorse64: Making board game based small contests looks like a good idea to me

darkhorse64: At least, it 's something new on this platform

struct: I suggested Yinsh, at the time but I think Yinsh might be a bit hard to start with

Astrobytes: Personally I don't mind difficult contests, I mean it's a bot programming competition, so it's a challenge right? But it would limit the number of participants certainly


struct: soon

Astrobytes: Nice

struct: I just need to apply moves to viewer and parse inputs I think

struct: This is if I have no bugs

Astrobytes: :D

jacek: so you have logic?

jacek: legal moves etc

struct: yeah

eulerscheZahl: and find 3 users willing to approve. but you are more patient than a certain fish

jacek: even when you can get additional turn?

struct: That is simple jacek

struct: if (getLegal(playerID) > 0)

switch player

jacek: so its just another turn

struct: else next turn player plays again

eulerscheZahl: you haven't solved this one yet struct

struct: or should I do like yinsh and multiple omves per turn?

jacek: nah

jacek: they happen rarely i think

eulerscheZahl: there are no different action types like move and remove ring, are there?

struct: it happened when i applied actions.get(0)

struct: no euler

struct: just place ring

eulerscheZahl: then call the player again

eulerscheZahl: makes it easier for the bots

eulerscheZahl: and give full board, not delta ;)

struct: Also I can change size easily without breaking anything :)

struct: delta?

eulerscheZahl: where the opponent played

struct: Ah right

struct: Will do

eulerscheZahl: and get squiddy into submitting a D bot

darkhorse64: If you ask the player to send "PASS" if he cannot play, would it make your life easier ?

struct: I don't need to do that darkhorse64

struct: I can just not let him play at all

struct: if i dont switch player

darkhorse64: That means the player to move shoud issue several moves ?

Astrobytes: Make sure you indicate that the player is out of moves

eulerscheZahl: no

eulerscheZahl: read the chat above darkhorse64

eulerscheZahl: just call the player again

struct: why astro?

jacek: yeah, why

struct: He wont get a turn if he is out of moves

Astrobytes: In case someone wonders why they can't paly

Astrobytes: *play

eulerscheZahl: you mean UI-wise indicators?

Astrobytes: Just in the UI show - now moves

jacek: well that would be a thing for the viewwer

Astrobytes: *no moves

darkhorse64: OK. Got it. I w worried how to write the bot

struct: ah ok

Astrobytes: But in reference to your method here I agree it seems good

struct: Also this time I separated viewer from game jacek

jacek: hm?

darkhorse64: It has been such a long time since I wrote my last MCTS ...

Astrobytes: game logic from graphics

struct: So that i dont have Viewer code inside the game engine

struct: yeah that what astro said

darkhorse64: Astrobytes, jacek: thanks for pushing me back to #4 at Oware

AlanSpacer: If i was there

Astrobytes: Sure we'll pull you down again soon enough, don't get too happy darkhorse64 :P

AlanSpacer: I'd of brought you up to 100 <3

darkhorse64: I have been waiting for you for months

AlanSpacer: Should I be jealous ? ;o

Astrobytes: I didn't play it for a long time ;)

AlanSpacer: The site thinks I'm a bot

AlanSpacer: Won't let me play CoC *cries*

Astrobytes: Do puzzles/multis instead

WINWINWIN: CoC is kind of boring

AlanSpacer: It just let me back on xD

AlanSpacer: I'm trying to enhance C# skills

Astrobytes: CoC is possibly the worst way to do that


Astrobytes: Better doing puzzles

WINWINWIN: You will get crushed in all 3 modes

WINWINWIN: Python/Ruby dominate

AlanSpacer: Lol, just tryiing to get use to coding with it. I'll get to Puzzles soon

AlanSpacer: Well, got to 9000th using only C#

Astrobytes: If I were you, I'd go to puzzles instead of continuing

Astrobytes: Just my opinion, don't let me stop you

struct: Should I make all pieces flip at once?

struct: or do them in groups?

WINWINWIN: Do it in groups? so that it is easier to see?

Snef: struct when you say in groups you mean one by one or dir per dir

struct: Ok ill try

MSmits: maybe try both, milk it for the upvotes, you farmer you


struct: Like per chain

struct: a chain can trigger another chain

MSmits: ohhh, this has chains?

Snef: right per chain shoud be way more user friendly

struct: I call them chains

MSmits: games with chains are cool

AlanSpacer: The IDE support for C# is so trash

MSmits: use a local IDE

MSmits: I always dp

MSmits: do

AlanSpacer: I guess I wiill <3

MSmits: VS is awesome

Astrobytes: Particularly for C#

MSmits: if CG improved the IDE 100 times, you would still think it is crap because VS exists

Astrobytes: ^

struct: having a real time debugger helps too much

MSmits: yea

Astrobytes: I love the VS debugger. The memory view etc.

Astrobytes: Well, for C++

WINWINWIN: Reversi is an 8x8 grid in normal version?

Snef: yes

struct: I made it so that it can work on any size

struct: even the viewer adapts


struct: 16*!6

Snef: you could do league like 8*8 / 10*10 / 12*12 / then dynamic size

Astrobytes: With invisible pieces in top league ofc

Snef: i wasn't trolling :(

struct: I know Snef, ill see how it goes

struct: game is a bit complex

Astrobytes: lol I know, we were coming up with insane variations before

Astrobytes: We can test variable board sizes in WIP

Snef: game is way less complex than go

Snef: i think ?

struct: it is

struct: its a bit above checkers i think

jacek: not that you could solve it in 100ms

struct: You forget that there wasnt D before

Astrobytes: :)

struct: Also I didn't read the rules yet

struct: I just played and think the rules are what im doing :D

Astrobytes: hahahaha

Astrobytes: Awesome approach

WINWINWIN: Which one takes priority now struct? Othello or the other one that you were working on?

struct: othello

jacek: hex othello

jacek: wow, what a push Astrobytes thankies

Astrobytes: Yeah, submitted wrong version. Enjoy it while it lasts :P

Astrobytes: It's the ~38/39 point point barrier that needs breaking

jacek: ?

Astrobytes: In Oware

struct: How can my bot go from 35 to 60th in 1 day :/

Astrobytes: Where?

struct: utttt

Astrobytes: Who submitted?

Snef: n dc

struct: nd c and Q oo

Uljahn: uttt is a hot topic on ru today

struct: It works

struct: Nice


struct: I might add a pause between chain flips though

jacek: there is error in frame 12

struct: where?

struct: oh i see

struct: bugs

struct: nooooo

jacek: the diagonal black

struct: multiple

struct: Yeah

struct: This is because i dont check every piece

struct: im dumb

struct: thanks jacek

jacek: well, multitude of errors then

struct: yeah

struct: many

struct: I was only checking the piece I placed + the ones fliped

struct: I think fixed

struct: Wait how should it work though :/

jacek: hm?

struct: I got it semi working but need to fix some stuff


struct: is this what it should happen?

jacek: umm

jacek: no

struct: So flips dont trigger other flips?

jacek: there should be only new black and other connectable blacks

jacek: so just 1 black in this case

jacek: there is no 'chain flipping'

struct: Lol

struct: oh god

struct: Why did I though there was

struct: (╯°□°)╯︵ ┻━┻

struct: I even spent time animating chains :D

struct: I guess I could adapt it so it flips each direction at a time?

struct: or do you think its too slow jacek?

jacek: it should flip all discs simulateuosly

struct: ok thanks

struct: but in viewer too?

jacek: otherwise some people would confuse it for chaining

struct: ok you are right

IXzXI: come in clash of code :D

Astrobytes: No :D

IXzXI: D: it's bad

jacek: (this is not my alt)

Astrobytes: lol

struct: chess notation or x y?

IXzXI: yes)


jacek: x y

jacek: ah wait

jacek: by chess notation you meant A1, B1 etc.?

jacek: or Nf3

struct: a1 sorry

jacek: othello uses A1 etc. then

Astrobytes: Yeah, top left is A1

struct: Here was me thinking game had chains

struct: maybe ill create ultimate othello

Astrobytes: Just been reading back, lol

struct: 20x20 board with chains

Astrobytes: It's probably some other game already

struct: ill accept both x y and a1

Astrobytes: Fair enough. Switchable in viewer?

MSmits: btw, if you want a oware end game db, you can probably store at most 6 or 7 seed data bases

struct: I could do that

jacek: using unicode stuff?

MSmits: there are 31824 positions with 7 seeds

jacek: do you have endtables?

MSmits: no

MSmits: but I calculated it

Astrobytes: thingy does

jacek: would there be any benefit though?

Astrobytes: But not sure how big his are

struct: Well some might not winnable though right?

struct: not be*

Astrobytes: thingy = tric trac that is

MSmits: while rolling out your tree, you can end it sooner

MSmits: sometimes a lot of nodes are spent on tiny numbers of seeds just going around

jacek: and endgame table is in form [houses] -> max seed score ?

Astrobytes: Solver helps with this no?

MSmits: yeah

MSmits: Astrobytes it can help but sometimes it is not enough

Astrobytes: Understood

MSmits: btw, I am not suggesting this is an I-win button. Just that it is an option

MSmits: and also, you need to turn it off after ply 100-150

MSmits: or you'll screw yourself over with the turn limit

Astrobytes: Yeah as previously mentioned, does make sense

MSmits: right

MSmits: and of course if you have an end game database you filled your codesize and you cant use an opening book :P

MSmits: though it'd be interesting to see how many positions you can calculate in the first 1s and fill your end game database right then and there

Astrobytes: Unless you train offline and get weights and use that to .... oh :P

jacek: im tweaking my eval. quite often the score of my node is very high like 90% win chance when suddenly solver kicks in and its a lose

MSmits: doesnt surprise me

Astrobytes: Node pool creation + precalc + opening book in 1s?

struct: Its possible to tie on othello right?

jacek: yes

Astrobytes: ye

Astrobytes: ah

MSmits: node pool creation shouldnt cost anything i think

jacek: and game can be ended before board is filled

MSmits: unless you assign values?

struct: if there are no pieces right jacek?

Astrobytes: Nah

Astrobytes: @MSmits

jacek: when both players can't move

struct: Yeah or that

Astrobytes: Made that mistake before

struct: if one player doesnt have pieces the other cant move

MSmits: right now I am just doing like 1 million rollouts in the first 1s, but it's gonna always do the same move anyway, pretty pointless use of calc time

jacek: let me guess, 5

MSmits: thats the only one thats not solved as a loss in awari

Astrobytes: Yeah I get between 800K and 1.1M on first turn, pretty much always 5 lol

MSmits: if you're interested in how they solved awari: read this:


MSmits: it basically tells you how to generate an endgame database also, if you read between the lines

Astrobytes: "We computed the databases on a cluster with 72 dualprocessor machines, built by IBM. Each machine contains two 1.00 GHz Pentium III processors, 1 GB main memory, and a 20 GB IDE disk"

MSmits: basically, their entire solving method is an endgame database

MSmits: just fyi, you cant do this on oware abapa due to loops

MSmits: but you can do some similar things I guess

Astrobytes: Yep. Extra work required.

struct: Shame I doint have 72 machines

jacek: We expect that checkers will be the first game solved, possibly within the current decade.

MSmits: I'm pretty sure you can repeat this exercise on cloud computing for maybe a monthly salary :)

jacek: e. Othello will be harder to solve, and chess will definitely not be solved in the foreseeable future

struct: jacek isnt it solved though?

MSmits: it's an old paper

MSmits: yes its solved

MSmits: weakly

MSmits: which is the only interesting way to solve imho

jacek: paper is from 2001(?) and checkers were solved in 2008(?)

struct: Did not know you were quoting the paper

Astrobytes: Yeah, fix your references jacek

MSmits: oware is a LOT less complex than checkers

MSmits: it's like 10^12 positions

MSmits: some of you guys may have a HD-size that has enough room for all of them

Astrobytes: And people have worked on mancala games with computers for decades

MSmits: checkers is like 10^20 or so?

struct: yeah

MSmits: othello double that or something

MSmits: double in power

MSmits: uttt is probably similar to checkers in complexity

MSmits: between checkers and othello

Astrobytes: "double in power" - order of magnitude?

MSmits: yes that

Astrobytes: :)

struct: meanwhile yinsh has 8*10^13 starting positions

jacek: uttt with cg rules is probably a bit harder

jacek: though favors 1st player

MSmits: nope, I have calculated an upper limit of 10^35 positions, but this includes many unreachable ones

MSmits: realistically probably 10^30

jacek: i mean without cg rules you can see earlier the game will end with draw

MSmits: you mean without the "count won boards" rule?

MSmits: there are several variations

jacek: yes

MSmits: yes, that one seems to almost always draw

MSmits: it's not that hard to block the opponent from getting 3 in a row

Astrobytes: Right, time for Better Call Saul, been an educational day as always

Astrobytes: gn all

MSmits: have fun watching, gn!

struct: gn

jacek: heres something about awari and opening book via alpha-beta

MSmits: thats cool thanks

MSmits: kar liso's p1 uttt play is sometimes unbeatable I think

MSmits: it sometimes makes a mistake I can counter as p2, but often, no matter what I do, it solves to a loss vs him

MSmits: but there may be some weird narrow line of play I missed with meta mcts

struct: Now the real problem

struct: x y or y x?

darkhorse64: row, colum

darkhorse64: *column*

struct: thanks

struct: Time!

MSmits: Space!

Default avatar.png JBM: Thriftiness!

struct: Time to submit it

struct: Illedan!!!

Snef: struct do you need cg to approve it or it'll be available now ?

struct: I will be avaible in contributions once i make it public

Default avatar.png DragonJ: this is sad, fantastic bits is a pain, the state system isn't working

struct: What do you mean?

Default avatar.png DragonJ: I get the grabbed state after my wizard drops it

Default avatar.png DragonJ: so the game considers it dropped and I cant throw it

Default avatar.png DragonJ: will try using the snaffle state to try and go around the issue


struct: Shoud work

Default avatar.png JBM: why do the pieces become longer than a cell when they rotate?

struct: I use a bad method to rotate

Default avatar.png JBM: to quote a famous fellow

Default avatar.png JBM: FIX IT ^^

struct: easy fix, make circles smaller

Default avatar.png JBM: that would fix "bigger than cell", but not "bigger than flat circle diameter", no?

struct: I havent tried, I have the same problem in Yinsh

struct: Can't forget to write French statement

Default avatar.png JBM: mmm

Default avatar.png JBM: let me remember to take a closer look sometime

Default avatar.png JBM: i'm becoming way more proficient than i anticipated with their entity system

struct: Once you get used to it its pretty easy

Default avatar.png DragonJ: ok its not an int or a float or a string so how do I make it a number

Default avatar.png JBM: I've been wanting to get rid of it since the start

Default avatar.png JBM: But I'll probably try and complete tvc first

Default avatar.png DragonJ: ok it is a string but is not a string... I am confused

Default avatar.png GaryAflalo: at what time ranking is update ?

Default avatar.png DragonJ: also it says I am using python but I cant strip a string...

Snef: struct you still there ?

struct: yes

Snef: don't you want to submit an ai for othello :p

struct: Internal error?

struct: o.o

struct: it worked now

Snef: 0% win gives 1.28 ELO lel

struct: Is your AI random?

Snef: no

struct: found a seed that beats you :p

Snef: in both position ?

struct: ah right

struct: I forgot

Snef: :p

Default avatar.png hxppx: hey guys, i have been coding in python for the last 2 months but now I feel like I am stuck and I cant get better, any advice ?

Snef: do puzzle

Snef: then try multis

struct: or pick a project and try doing it

Default avatar.png Hankdane: It's not unusual for any skill learning to hit plateaus.

Snef: i'd find hard to define being stuck tho

Default avatar.png hxppx: well I guess a language as python cant be mastered in 2 months

Snef: if you are doing a project you struggle with you'll search and improve so..

Default avatar.png Nieminen: Project Euler is a great way to make sure you're challenged. Being challenged is the only way to grow :)

Snef: struct fix your seed :p

Default avatar.png hxppx: right I should take a deeper look into project Euler then, thanks !

Default avatar.png Nieminen:

Default avatar.png hxppx: got it thanks :)

Default avatar.png Nieminen: If anyone wants to add me as a friend in euler, here's my friend key - 869185_H44wgRnAQwSWLVSpDx9LgqtkThVUX0Vl

struct: Snef still here»

ganond0rf: hello

ganond0rf: if anybody here is an admin

ganond0rf: im getting security checks after completing clash of codes

ganond0rf: to make sure im not a bot?

ganond0rf: lol

ganond0rf: :robot:

ganond0rf: the captchas are annoying

LelouchVC2: They went away for me after a certain level

LelouchVC2: Might have been a coincidence though

Default avatar.png DragonJ: my tron code prints this


Default avatar.png DragonJ: a=1

Default avatar.png DragonJ: print a

Default avatar.png DragonJ: get 10000

Default avatar.png DragonJ: a=10000 and I set it equal to 1...

AbundantPuddle: Don't drink and code

Default avatar.png DragonJ: I am not drunk my code is saying 15 is not between 0 and 20 multiple times and it confuses me

Default avatar.png DragonJ: switching to hardcoding because doing anything else is failing