Chat:World/2021-01-02
eulerscheZahl: clash of code gives CP, not XP
jacek: happy Caturday
Wontonimo: correct, my bad, it's CP
Wontonimo: hello
ZzzTRAPzzZ: whats cp?
sbooyah: I bet you could guess
ZzzTRAPzzZ: clash points?
sbooyah: You got the gist
jacek: this is also bash command
immijimmi: yikes CP is not the best name for it
jacek: oO
MrSok: hey guys, is there any way to persist calculated data ?
Stilgart: persist between two tests/games ?
MrSok: yes, if you want ingame calculated data to persist
eulerscheZahl: each game is a new process. you can't transfer anything
MrSok: yes i thought so but i see some impossible solutions in code golf
Stilgart: cheating is the way :(
Stilgart: (i don't do it that much, and I am top30, though)
Stilgart: eulerscheZahl: should I tell mouton5000 to put back his puzzle ?
eulerscheZahl: sure, go ahead
eulerscheZahl: do you consider something like this cheating?
exec(bytes("㵡楛灮瑵⤨献汰瑩⤨潦 湩爠湡敧椨瑮椨灮瑵⤨⤩㵢湩異⡴牰湩⡴畳⡭湩⡴季崱昩牯挠椠晩戠椠季崰⤩","U16")[2:])
MrSok: so you cant weite anything to text files huh>
eulerscheZahl: correct. no memory between runs
Stilgart: eulerscheZahl: wep
MrSok: *write
Stilgart: i consider not handling North in thor cheating
eulerscheZahl: ah. but Thor goes North now
eulerscheZahl: they updated validators
Stilgart: not exactly
Stilgart: they tried :)
MrSok: but you could read from web things
eulerscheZahl: there's something about diagonal movement iirc.
eulerscheZahl: but i don't remember what exactly. at least I found a way to abuse their lack of testing
Stilgart: but it is quite specific
Stilgart: me too, but this is cheating to me
eulerscheZahl: yeah, i prefer generic solutions too :(
Stilgart: it wouldn't be hard to write a referee à la batman
Stilgart: for thor at least
eulerscheZahl: for don't panic my code would break if you give it more than 9 floors
Stilgart: mine too, but only a matter of one char
MrSok: so how big you managed for panic
eulerscheZahl: 175 in python. i'm a bad golfer
eulerscheZahl: and i don't use that unicode trick
MrSok: well in python it is possible, but in pascal 110 is impossible
eulerscheZahl: how many chars do you need for a system call in python?
eulerscheZahl: 110 in pascal. same user has 79 in bash
eulerscheZahl: so 31 chars for the system call?
MrSok: well, those guys ruin all the fun in this project
eulerscheZahl: not my fault. i'm just delivering the news
MrSok: i know :)
MrSok: well i will stop trying anything in golf, it's more than a best cheat finding contest then a programming one
MrSok: every code should be checked for validity and fair programming
MSmits: fair programming is a slippery slope
eulerscheZahl: try the bot programming section
eulerscheZahl: there you can see what your opponent is doing. not the code but that actions generated by it
jrke: MS i joined connect4 writing my first logical bot
ChampionCoder: Just a question: Since there are "Legend" almost everything (legend levels, legend ranks, legend bot programming levels, legend achievements), are there Legend skills too?
ChampionCoder: Skills as in the things needed to solve a puzzle
MrSok: skills as being champion coder for instance;
MrSok: ?
MrSok: rofl
ChampionCoder: well, no, but the boxes you tick after having completed a puzzle
ChampionCoder: Wish I could upload a pic
MrSok: explain
zhoubou: You mean on home page, those quests?
ChampionCoder: No! Not the quests
zhoubou: Oh I know what you mean
Westicles: You aren't a true legend until they talk about you every day on #fr
ChampionCoder: Above "achievements" on the home page?
zhoubou: Those skills such as "Conditions", "Arrays", etc.
MrSok: aaah ! yes good point
zhoubou: I have no idea if there are legend ones
zhoubou: Someone else might know more :)
zhoubou: But from what I'm seeing, it doesn't follow the pattern
zhoubou: It's fundamentals, intermediate and advanced instead of bronze silver gold
ChampionCoder: Yeah I saw it followed the typical system until Gold
ChampionCoder: Similar colours :sweat_smile:
zhoubou: I checked very hard puzzles, and can't see any red ones
ChampionCoder: Just general info, that's why I asked
zhoubou: Yeah, I got curious as well
MSmits: jrke welcome on connect 4 then :)
Raph_Hax0r: Can any please tell me how I can check the leader board for clash of code?
struct: https://www.codingame.com/multiplayer/clashofcode/leaderboard
Raph_Hax0r: Thank you very much! :D
ikerasiotis: did anyone know any good avatar generator?
proogrmr: :\
jacek: o:
lopidav: hey, does anyone knows how to get contribution id from question id?
damnson: shit
Astrobytes: damnson: don't swear for absolutely no reason please.
Toby75: How can I add tags to my contribution? like loops, conditions...?
jacek: bloody hell!
**Astrobytes strangles jacek
jacek: there is tags edit text box when you create contribution
jacek: except for clash
Toby75: can I change that when I chose clash?
jacek: Astrobytes welsh eh? https://www.reddit.com/r/Jokes/comments/kodszt/my_wife_said_to_me_youre_shagging_that_girl_from/
jacek: clashes dont have tags
Astrobytes: Very odd language.
Toby75: No I mean change from clash to puzzle or something like that
jacek: unlikely
Toby75: :(
jacek: just abandon this one and create new
Toby75: nevermind
Toby75: I just published a new contribution, would someone mind checking it out? I took a lot of effort, it would be amazing!
Toby75: https://www.codingame.com/contribute/view/601786a4d4ff9aad79068c73b80a5727e0be
lopidav: ok, gonna check it out
Toby75: thank you!
eulerscheZahl: what is "a lot of effort" measured in hours?
jacek: i wonder how i can vectorize 3d array
jacek: as in use those fancy simd or avx
storm122: :thunder_cloud_rain: :thunde_cloud_rain:
struct: good luck jace k
struct: What are you trying to do?
jacek: http://chat.codingame.com/pastebin/ea3febeb-c238-4557-85d3-23bc7bccfaf8
jacek: to somehow vectorize this nested loop sum
struct: I know how to get from index on 1d array but have no clue on 3d
jacek: im thinking of converting it to 1d
struct: https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm256_i32gather_&expand=3007
jacek: but hmm doing this got me about 5-10% speed
jacek: for (int j=0; j < TUPLES/2; j++) {
score += hiddenWeights[i][2*j][ts[2*j]] + hiddenWeights[i][2*j+1][ts[2*j+1]]; }
struct: arr, _m256(indexes), sizeof(array type)
jacek: like manual unroll
kolioxyz: isn't "Next growing number" test 5 not true?
jacek: why
kolioxyz: for input: "11123159995399999" expects:"11123333333333333"
jacek: each next digit is >= than previous
MSmits: darkhorse64 you here?
jacek: [slowpoke]
MSmits: maybe he lives beyond australia
darkhorse64: hi
MSmits: actually beyond the US i should sau
MSmits: hey
MSmits: have you noticed connect4 seems lopsided in favor of p1?
MSmits: i am thinking of suggesting pie rule
MSmits: when i play my bot against itself it wins most matches as p1
darkhorse64: Too early to tell but it seems like 4 as p1 is not good
MSmits: http://chat.codingame.com/pastebin/d911b5fd-404e-4e32-beb4-1fd1e0c2d90b
MSmits: started running meta mcts to test
jacek: 1039, serious confidence
MSmits: games :P
jacek: come back after million
MSmits: true, but a steal wont hurt
darkhorse64: MSmits is a prolific book writer
MSmits: I'll let it run overnight
jacek: so you have 3 cores busy now?
MSmits: nah i stopped yavalath for the moment
jacek: i know! to make it more fun, connect4 should disallow connect3
MSmits: lol, that would make it wayyyy easier to solve
MSmits: the advantage of steal is, that out of 5 starting moves, if one is solved as a draw, the entire game is solved as a draw
MSmits: and it will not be otherwise, judging from that solve-table you shared
MSmits: (extrapolating from other sizes)
darkhorse64: tric trac is on the lb too. Competition is heating. I need to improve my C4 bot. I intended to steal the solver for detecting winning moves but it looks no good. Detecting open ended 3 in a row is not enough
darkhorse64: *solver code*
jacek: so all the cool kids are gonna do c4?
MSmits: I kinda already ran out of ideas for my bot :P
MSmits: mcts doesn't have that much to experiment with
MSmits: (that has a major effect)
MSmits: rollout already reasonably heavy
MSmits: I did improve performance a bit last night. It now does 2.4M in first second
darkhorse64: Did you have success with avx compared to plain code ?
MSmits: i never tried plain code here.
MSmits: but i did improve my avx
MSmits: i use avx differently than you are, so it would be a bad comparison anyway
MSmits: i use it to find the winning moves
MSmits: (not to check for wins)
MSmits: my entire bot does not have a win check
MSmits: I check if the opponent has a winning move. If he does and I cant block it, i lose. If all moves lose, i play a random move
MSmits: before search i do check if i have a winning move, but thats the one time, if i have, i play that ofc
MSmits: jacek, you may have been right about the statistics
MSmits: http://chat.codingame.com/pastebin/db6905be-d4eb-474b-b9c3-53c957ca1025
jacek: such condifence
darkhorse64: So you know a move ahead the outcome, hence win check is useless
MSmits: went below 70%. I hope they will all go to 50, but doubt it
MSmits: darkhorse64 yeah exactly
jacek: still its all 2/3
MSmits: that's what the center moves were for yavalath until i solved them
eulerscheZahl: reCurs e has mirrored matches in chess. so does langton
MSmits: yeah mirrored might help but not if it is just gonna be win for p1, then win for p1 again, but for the other player
eulerscheZahl: if you consider connect4 as a multiplayer, that seems mandatory to me
MSmits: then you have uttt
eulerscheZahl: i know
jacek: but uttt has pairs in leaderboard
MSmits: uttt would be *a lot* better as a game if it had steal
eulerscheZahl: there's a reason why struct never tried to get c4 released (even with a bigger board)
struct: yeah, the code would be easy to change
struct: I think its a good game, just not suitaable to be competitive
MSmits: i'm not sure
struct: maybe for practice would be good though
MSmits: if there is 1 move solved as draw, a steal might fix the balance
eulerscheZahl: with a medium AI that you have to beat in some cases and tie in others
eulerscheZahl: as a puzzle
MSmits: also why would a bigger board not fix the problem?
eulerscheZahl: interactive like that cutting link puzzle
eulerscheZahl: skynet?
MSmits: 7x6 is way too simple, 7x9 might be also, not sure
MSmits: but bigger than that and it's very far from solvable
MSmits: then it just needs balance
MSmits: and steal can fix that if there exists one balanced move
MSmits: (starting move)
MSmits: or am I missing some vital characteristic that makes it unsuitable for competition?
eulerscheZahl: maybe i'm just too biased. those static starting positions that call for a book just turn me off somehow
MSmits: ahh of course, that's always going to be a problem
eulerscheZahl: i know it's still a lot of work to generate the book
MSmits: also for some games it doesnt help all that much
MSmits: if uttt had steal, books would be useless
MSmits: (so would many heuristics)
MSmits: D&B is pretty much unbookable and has fixed starts. So is Go.
MSmits: this is mostly because of the many possible starts and huge branching
jacek: amazons *.*
MSmits: seems like a nim game
MSmits: kinda fun
MSmits: but yeah hard to book
MSmits: both open and end
Stilgart: D&B ?
MSmits: amazons
MSmits: dots and boxes = D&B
struct: I have it saved somewhere
struct: Last time i checked it was working
MSmits: your old connect 4?
jrke: damn miklla took the heat
strattan: So I have new desires to learn AI and Im going to learn C++ alongside it.
struct: no, Amazons
Astrobytes: yeah you showed a working version
MSmits: oh
jrke: amazons?
struct: https://en.wikipedia.org/wiki/Game_of_the_Amazons
lopidav: Can someone go to https://www.codingame.com/contribute/view/512255ee4b586a5cf9ff812987123aeddad5 and press "test in IDE"? It doesn't work for me and I wonder if that's my problem or contribution broke
MSmits: looks like i have a reason to go back to D&B. Will be a week or two though
jrke: An error occurred (#404): "Couldn't find the question related to this contribution". - lopidav
lopidav: ok, cool, thx
struct: Is this what happens when a clash is removed?
eulerscheZahl: and contribution, not just clash
eulerscheZahl: pending/wip => delete (not refused)
lopidav: oh, jrke, you approved this one!
jacek: oO
jrke: i didn't even remember when but yes i did that
lopidav: eulerscheZahl, but this one is up and going. Got it in my clash, the solution got 85% on validators, and all tests green. Went to check out what's wrong and got this
eulerscheZahl: ooh, interesting
lopidav: It was deactivated for reverse tho. Maybe the deactivation process deletes too mush
eulerscheZahl: (didn't click before, thought the initial link was broken already)
eulerscheZahl: i haven't seen such a behavior before
Astrobytes: Yes, that seems new.
eulerscheZahl: "This contribution hasn’t received enough positive votes from the community. The "REVERSE" option has therefore been deactivated."
eulerscheZahl: might be related to this
struct: seems like my code, do one expected thing and break everything
eulerscheZahl: but fastest+shortest are still active
lopidav: maybe it has a wrong active version
lopidav: it does, it works fine with active version 8 and below
lopidav: also, my code wasn't working because one of the validators got a corner case that no tests were covering
jacek: or your code had not enough if else
Stilgart: lopidav: the deactivation process works as users tell
Stilgart: and I doubt we can fix the users :(
jacek: wait? it only deactives the mode? not entire clash?
Stilgart: you can reactivate reverse mode by hand, though
lopidav: one mode at a time
Stilgart: jacek: it's more logical this way
Stilgart: some reverses were impossible
lopidav: jacek my code had s>0?s:-s and there was a possibility of s being 0
lopidav: and my mistake was using js
Stilgart: (input: daytime, output: angle between the hands)
Westicles: I notice they mostly speak english in #IN, instead of hindi or bengali. So why is #fr so strict (no arabic allowed, for example)?
eulerscheZahl: and discussing awesome new contribution ideas on #in
eulerscheZahl: i guess exactly because they don't have just one language in India
eulerscheZahl: watch the Jim Browning videos. sometimes they even talk to each other in English in person despite them knowing the same native language. different culture/mentality I would say
Westicles: oh, I see. #fr means the language, not the country. makes sense
eulerscheZahl: i think country
eulerscheZahl: create a new account, located in some french colony and see if you get added to #fr or only #world
Westicles: But france is like 10% arabic speakers...
eulerscheZahl: i'm from Germany and thus have 2 channels: #world and #de and can't even leave #de if I try
jacek: huh
eulerscheZahl: don't you have #po #pl or whatever your countrycode is?
darkhorse64: "france is like 10% arabic speakers". This smells like pure bullshit.
jacek: in the chat here?
jacek: its empty
jacek: i have only the world tab
eulerscheZahl: i have world and de that I can't close
eulerscheZahl: no X, no /leave
eulerscheZahl: when I try /leave: "You cannot leave this channel."
jacek: being trapped in #de... thats the price for being mod
eulerscheZahl: i could never leave
eulerscheZahl: from day 1 of being on CG
Westicles: darkhorse64, google says 5 million out of 65 million. close enough
Westicles: If there was a #US, you would have to include spanish
darkhorse64: wikipedia says 3.6 %
eulerscheZahl: rounding errors
Westicles: speakers at home? I think not
Westicles: anyhow, no big deal. those of us fighting for a diverse future know it will take take to come to fruition
darkhorse64: alt-right wing rounding errors
Westicles: *time
eulerscheZahl: oh, you have those right wing parties inventing their own statistics too?
Westicles: yeah, unfortunately
eulerscheZahl: i meant fr I know that you have Trump in the US
struct: Arent they everywhere?
darkhorse64: Yep, with tales like "great replacement"
struct: They are starting to grow on Portugal too
Astrobytes: Yep.
eulerscheZahl: corona really gave them some boost :(
Astrobytes: Well, covid came from 5G Muslim alien broadcasts from Afghanistan you see
Astrobytes: <insert wild conspiracy here>
MSmits: this is why I didn't get it, no smartphone
Westicles: You kid, but mm wave 5G really can shoot the eyeballs right out of your baby
eulerscheZahl: bill gates *incoherent mumble* babies *more stuttering* pizza
darkhorse64: and masks deplete oxygen in your brain so that goverment can control with the chip Bill Gates injects in your blood
Westicles: Not from a phone, but repeaters have crazy amounts of antennas and beam sterring
Westicles: steering
MSmits: radio waves can only cause heating though
MSmits: and very little of it
eulerscheZahl: remote controlling a reporter :thinking:
eulerscheZahl: https://www.youtube.com/watch?v=D9FBXb4G4GI&ab_channel=Movieclips
Westicles: you don't need much of a skin depth with eyeballs
MSmits: it's all water, you can't heat water locally
MSmits: heating the eyeballs means heating the body, unless you do it extremely fast
MSmits: try doing that with radio waves
Westicles: Usually not, but the beams are really tight. The EIRP levels can get surprisingly high
MSmits: will need to see evidence before i believe that
MSmits: they're not lasers
MSmits: the emitted power can't be focused that well
eulerscheZahl: is that the moment when one has to say "there's plenty of evidence, just open your eyes"?
Westicles: even just a phone can do +43 dBm, and that is like an inch from your eye. I forget the limit for base stations, something like +78 dBm I think
MSmits: whats dBm?
Westicles: milliwatt decibels
VizGhar: I've checked 6 CoC contributions and i feel depressed o.O The CoC contributions should not give you 250XP... there is too much of them
jacek: i presumed physics teacher would know that
MSmits: we dont know every unit
MSmits: google tells me thats about 100 mW
MSmits: ah
MSmits: its logarithmic
eulerscheZahl: i complained about that long ago VizGhar. CoC is much less effort than a full-blown multiplayer. they didn't listen to me
MSmits: nvm
jacek: shitty multiplayers would be worse than shitty CoCs
Westicles: 43 dBm = 20W. 78 dBm=63kW
MSmits: Westicles you should try to calculate how much time it takes to heat an eye by 1 degree celsius using your emitter
MSmits: but also take into account the fraction of power actually received by the eye
Westicles: It is a beam, so all of it
MSmits: doubt that
MSmits: eyes are small
MSmits: these emitters must be pretty large
MSmits: is it a dish? If so, the beam is not going to be tighter than the width of the dish
Westicles: Beam steering. That's the only way that stuff works, 40 GHz doesn't propagate very well
struct: Is the code vs JP worth porting?
struct: It was posted here before
struct: Code vs Reborn*
Astrobytes: that one was the one the JP guys were competing on?
struct: yeah
struct: https://www.nicovideo.jp/watch/sm35158232
Astrobytes: Yeah I remember it. Don't see why not
eulerscheZahl: might be a little too close to STC to be a relevant additino here
eulerscheZahl: even in the attack mechanic looks more interesting there
eulerscheZahl: not just 1 large attack and instant death
struct: also you need to clear your "junk blocks" queue
struct: before puting them on opponent
eulerscheZahl: i still say: "we have STC"
eulerscheZahl: but i also say we have CSB and some users liked bitrunner. so don't listen to me
MSmits: if you do port a game like this struct, make it your own and test it well. Don't just copy it entirely
MSmits: make really strong bots and see if you run into balance problems, boring games etc.
MSmits: Like I am doing for connect4 atm
MSmits: http://chat.codingame.com/pastebin/a10c18d6-ab60-4696-b969-273929bc1120
MSmits: (changed it to always pick the least visited starting move)
MSmits: that way we can eventually see if a steal is a viable solution
reCurse: STC is pretty bad so it would be good to replace, problem is no one will participate so who cares
MSmits: well if it is a good game, people might
reCurse: Let's not fool ourselves here
Stilgart: I agree with reCurse :(
MSmits: if you look at community multis, some get really popular, many dont, it's hard to predict. But you're right, a game like that would not be my favorite
reCurse: The only games that are popular are contests
Stilgart: reCurse: any idea about making STC better ?
reCurse: I certainly do
struct: imo points for skulls are too cheap
struct: or board too small
reCurse: No and no
Stilgart: MSmits: are you really sure about connect4 ?
MSmits: what do you mean really sure? Whats your question?
Stilgart: sounds more suitable as a puzzle
MSmits: I am not really sure the 7x9 is big enough
MSmits: but other than that it's fine
struct: What is wrong with stc in your opinion re curse?
Stilgart: I fear it is not competitive enough
reCurse: sigh
MSmits: what makes a game competitive Stilgart?
Stilgart: to be honnest, I'd rather have connect4 as a multi so I can skip it
MSmits: do you not like the mechanics?
Stilgart: (I really dislike ported games)
MSmits: We have many games that are equally complex
Stilgart: but that is my personnal opinion
Stilgart: still, I am not convinced that connect4 is even balanced
MSmits: some sizes are solved as draw
Stilgart: nor that bot will be discriminate properly
Stilgart: I may totally be wrong, though
Stilgart: ho, and draws are the worse
MSmits: if its large enough and has steal, it will be balanced
Stilgart: draws usually ruins it all
MSmits: solved as draw doesnt mean all games are drawn
Stilgart: what do you mean by steal ?
MSmits: like in yavalath
MSmits: you play a move
Stilgart: MSmits: it might suggest that avoiding to lose by forcing a draw should not be that hard
MSmits: p2 can steal it
MSmits: true Stilgart, but thats why you test
Stilgart: on turn 1, or at every turn ?
MSmits: in 7x9 draws are extremely rare, i havent been able to force one
MSmits: turn 1
MSmits: so that means that if one move is extremely in favor of p1, p1 will not play it
Stilgart: this should help balacing
MSmits: he will be forced to play the most balanced move, if it exists
MSmits: also called pie rule
MSmits: it would in fact solve the uttt problem
MSmits: (of p1 almost always winning)
MSmits: but 7x9 connect 4 only has 5 starts, so 1 might not be balanced enough
MSmits: thats why maybe it needs to be bigger and have steal to fix all issues
Stilgart: well, you seem to have fun at least :)
MSmits: well i enjoy simple games. It might not be the case for others
Stilgart: especially those doing RAIC :p
jacek: mhm
Stilgart: ho, nice... recar 2nd and aropan 6th
Astrobytes: is R4N4 still playing?
MSmits: raic seems too complicated most of the time, for me anyway. I dont like writing huge sims
Stilgart: </lag>
Stilgart: too time consuming for a mere human
Stilgart: even AutomatonNN fears RAIC
AutomatonNN: who to help with that puzzle?
Stilgart: :)
Astrobytes: I quite enjoyed it tbh
Stilgart: It might be quite enjoyable
Astrobytes: Once I got used to the bizarre API
Stilgart: is this that bad ?
Stilgart: (not the first time I read this)
Astrobytes: It's... unintuitive.
Stilgart: is that cultural ?
Astrobytes: When you figure it out, it's OK but still leaves me shaking my head.
Stilgart: I mean, it might be that it is in fact intuitive for russians
Westicles: I'd like to see someone port the google AI ants here, that one was fun
Astrobytes: No, I don't think so. It's just rather awkward to use.
Astrobytes: But don't quote me on that, you'd have to ask some of the #ru guys.
Stilgart: might be intended to avoid not so good players, then
MrSok: :P Stilgart
Stilgart: (strangely enough, MK is not pinging in PM yet)
Astrobytes: :D
Astrobytes: Give it an hour
Stilgart: MrSok \o/
Westicles: http://ants.aichallenge.org/
Astrobytes: Westicles: the RAIC this year would also make a good CG game, albeit simpler
Stilgart: Astrobytes: BotG :scream:
Stilgart: too complicated is a nigthmare on CG
Astrobytes: Stilgart: That game. Oh dear, oh dear.
Astrobytes: The idea of this RAIC was not particularly complex.
Stilgart: it seems like CR in more complicated
Stilgart: and CR was already complicated enough
Astrobytes: CR was too complicated, I agree. But the RAIC can be simplified a lot. There was so much useless information in the inputs.
Astrobytes: *useless/needless
MSmits: code royale?
Astrobytes: Yes.
MSmits: mmh, wasn't the worst.
reCurse: *code _royale :P
MSmits: lol
Stilgart: free hl for the win
MSmits: i think code royale was painful if you wanted to do a proper search
Astrobytes: Westicles: ants looks like it would also be quite interesting, I didn't play it.
MSmits: yeah it certainly does. One day I want to make a serious attempt at PR-2. Want to learn how to do those multi agent games
Westicles: It was fun for a beginner, didn't take much to get a decent start
reCurse: But they don't have opening books
MSmits: bah
MSmits: my uttt bot still beats yours without a book reCurse :P
reCurse: Allegedly
Astrobytes: Smits would have some kind of map-type detection and book accordingly anyway.
MSmits: kinda hard to prove ofc :)
MSmits: I just think those games look cool
MSmits: gitc too, no idea how to write a good bot for that either
MSmits: someone barely pushed me into gold and thats it
reCurse: Why is there so much demand on cpu and gpus...
jacek: btc over 30k
struct: high demand low supply
MSmits: ye but he asked why
reCurse: Never been so difficult to upgrade in like ever
MSmits: how's moores law doing? Is there even a point to upgrading?
reCurse: Doing pretty good it just expands horizontally
reCurse: Even a bit vertically
MSmits: what does it mean to expand horizontally? Just more chips and power?
reCurse: Threading
MSmits: ah right
reCurse: Could really use 32 cores and a rtx 3080
reCurse: Maybe this summer if I'm lucky? sigh
MSmits: do you mean lucky because you cant find one available?
MSmits: or because you're expecting a bonus at work
Westicles: Moore's law ending messed up supply
reCurse: No lucky because it's impossibel to find
MSmits: ah ok
struct: in portugal only 3090 is available
struct: rest out of stock too
reCurse: Yeah 3090 are still approchable for availability
reCurse: Just ridiculous pricing
reCurse: 2k for a gpu that doesn't do that much more than 3080
MSmits: might this be covid related? Some problem in the supply chain?
reCurse: Probably...
reCurse: It was a rhetorical question sorry
reCurse: Just frustration
Astrobytes: guess I'll be upgrading when the UK regains it's status as a world-beating economic superpower after Brexit-ing. Oh, wait...
Westicles: I guess the real problem is all these data centers
reCurse: I mean 3950x are available, problem is it's zen2
reCurse: And zen2 has terrible bmi instructions
reCurse: I mean garbage tier level
MSmits: it's been projected that half my country's use of energy will go to datacenters
MSmits: in 2050
MSmits: someone thought it would be a good idea for microsoft to plant their :poop: here
reCurse: Nuking social media would help for that
MSmits: already on that
Astrobytes: watch out for those baby-eating Clinton-Gates hybrids spitting 5G covid pizzas at you MSmits.
MSmits: will do Astrobytes
Westicles: You kid, but pizzagate was really a thing. Kill your baby from across the table
reCurse: I repeat, nuking social media would help.
ZzzTRAPzzZ: I liek nice people with candies in white vans
Astrobytes: Yeah reCurse, I can't see 'social media' going anywhere in the near future
MSmits: I really detest this part of society
struct: What do you mean by going anywhere? Improving?
struct: or stop growing
Astrobytes: Leaving.
reCurse: There has to be a way
MSmits: Astrobytes means it's here to stay
struct: ah I see
Astrobytes: It's the new television.
Westicles: Wait, what are we doing right now? Irony is leaking
reCurse: Don't insult television like that
reCurse: That's not quite social media, at least how it's used for the most part
Astrobytes: Trust you to be pedantic there Westicles :P
MSmits: Westicles this is not what we mean though. We're here to code and chat about that mostly, the social part is a side effect
reCurse: At this rate you'll classify emails as social media
MSmits: we mean the political, religious, conspiratorial bubble people get into
reCurse: But I suspect you're trolling
MSmits: at least i think that is what we mean
jacek: why would he
MSmits: the fact that most people cant even decide whats true and whats not anymore
reCurse: I include youtubers and streamers and influencers in all that, Msmits
MSmits: same
Astrobytes: +1000000
reCurse: Not quite the same bubbles you pointed out
MSmits: i was also intending youtube
MSmits: streamers too
MSmits: plenty of political and conspiracy streaming
Westicles: reddit is the worst. you don't get any more groupthing than that
reCurse: I also exclude those actually delievering information even though I'm aware it makes the line extremely vague
Astrobytes: People would rather pay to watch people doing/saying things than actually do anything themselves it would seem.
MSmits: well thats not limited to social media
MSmits: watching sports is the same
MSmits: and thats older than we are
reCurse: If it relies on likes and subscribes it's probably social media
Astrobytes: I've never fully understood that one either, frankly.
MSmits: I can kind of understand watchign other people do things, if it's something that interests you
MSmits: i dont do it much though
Astrobytes: Up to a certain point.
MSmits: yea
Westicles: Sports is turning more and more into just betting
Astrobytes: But with a youtube/twitch chat scrolling past at 12000 lines/s it's not exactly sociable is it?
reCurse: There's a good explanation for that though
reCurse: I read a comparison to cheering in a stadium
Westicles: People are shedding religion like crazy, you have to fill it with something
reCurse: It's quite relatable in that sense
MSmits: youtube is not really bi-directional social media, it's more that the algorithm pushes you into a corner
Astrobytes: That I can understand. It's still not particularly social though.
MSmits: you're right it's not
reCurse: The algorithm is fine, it's content exploiting it
MSmits: the algorithm works yes
Astrobytes: Another pet peeve of mine from the media in general: "THE ALGORITHM DID IT"
MSmits: many people are not smart enough to withstand it though
MSmits: people honestly think they are doing research
ZzzTRAPzzZ: youtube's main role is to earn as much money as possible, so they would reccomend anything as long as it has the highest click/watch rate
MSmits: when clicking through videos
Astrobytes: Like the algorithm in question is some kind of malevolent sentient codebase that is just crushing us all.
Astrobytes: So true MSmits.
Astrobytes: and ZzzTRAPzzZ true also.
MSmits: ZzzTRAPzzZ many companies don't actually want their product to get people addicted to conspiracy theories, but that's what makes the most money
MSmits: they know it might hurt their image in the long run
Astrobytes: Who cares about that if you have the market cornered and make shitloads of money.
MSmits: governments might take action
MSmits: thats the risk
ZzzTRAPzzZ: it's a tradeoff, either quick money, but then die out quick coz bad reputation, or a stable fair product that will last but has a very slow growth I think
MSmits: there is a reason twitter is marking tweets now and youtube is banning users
Astrobytes: I've yet to see a government properly stand up to a huge tech company in recent times.
MSmits: the misinformation is also hurting them
reCurse: Call me cynical but is there that much difference between a government and a corporation at this point?
MSmits: reCurse depends a lot on the government
Astrobytes: Almost none, reCurse.
MSmits: governments are very different
MSmits: from eachother
Astrobytes: Are they?
reCurse: Wherever the power is located it gets corrupted
MSmits: yeah they sure are
MSmits: I can honestly say the corruption in my government is pretty minimal compared to the rest of the world. It's there, but minimal
Astrobytes: They're all vulnerable to business/corporate influence.
MSmits: that's true, to a degree
reCurse: You can say that?
reCurse: Or is it that they're successful?
MSmits: i've seen scandals here
MSmits: but the worst scandals are every day stuff in most countries
MSmits: thats what I mean
reCurse: Or what's actually public
MSmits: we have an extremely open society. I doubt that they are that good at hiding things
MSmits: but anything is possible i guess
Westicles: There is a weird thing going on with govt's and corps. Corps are still trying to make money, while govt's figured out they can print infinite money without consequence. It really doesn't make much sense
reCurse: ...
reCurse: Print infinite money without consequence
reCurse: Ok...
MSmits: Westicles is overstating it, but yeah, there is some vicious cycle there
Westicles: The US debt passed the sum total of all real estate in the country, and most EU countries are worse off
MSmits: it's pretty important to know who the debt is to, though
MSmits: often the government has a debt to its own citizens
MSmits: just raise taxes and pay them with it :)
Westicles: Right. And if you have your own currency. Shared currency is a mess
MSmits: all currency is shared
MSmits: what would be the point of currency?
MSmits: if it is not shared?
Westicles: I mean like the euro
MSmits: sure
MSmits: should all US states have their own dollar?
MSmits: Euro being shared has pro's and cons, there were good reasons to do it and good reasons not to
Westicles: They can't afford to. They would have to pay off their % of US debt to leave (without a war at least)
Astrobytes: Yes, I'm not convinced on the euro either. The US has always seemed to me to be impossible to run fairly. Since it is indeed a collection of country-sized states.
MSmits: they have states with < 1M population
MSmits: quite a few actually
MSmits: country sized in surface area only
Astrobytes: Yes, but that's not my point. There are vastly different cultures around the US, and almost no accounting for that by cetral govt. I know they have state control over some things but it seems like a ripe old mess to me.
Astrobytes: *central
MSmits: sure, but anything that big is going to be a ripe old mess
MSmits: i think it's quite an achievement that it's still around
Toby75: Could someone who has time have a look at my contribution? It just needs one approval, would be amazing! https://www.codingame.com/contribute/view/601786a4d4ff9aad79068c73b80a5727e0be
Astrobytes: Considering the damage their govt's have inflicted on everyone else it is nothing short of miraculous :P
MSmits: true
MSmits: well size helps with this part
MSmits: if you're big and strong, noone messes with you
Astrobytes: Still?
MSmits: it still does yeah
MSmits: militarily anyway
Astrobytes: They are considerably weaker than before.
MSmits: dont they still have a stronger military than the next 9 countries combined?
reCurse: You should witness that firsthand
reCurse: No? :P
reCurse: Astrobytes
Astrobytes: The damage part reCurse?
reCurse: Size and strength
reCurse: EU vs UK
Astrobytes: Aha, gotcha
Astrobytes: Well, we also have a delusional administration. I can't say anything else in defence.
Westicles: Hah, pretty rich EU complaining about US power. We are the only ones in a position to save you :)
MSmits: we are not complaining Westicles
MSmits: just describing
Westicles: You got two hordes right there ready to take you
MSmits: also, there is not really a *we*, half of the US is an ally of Russia it seems
Astrobytes: The UK is not in the EU. We are now your slaves. Also China. And Russia. And anyone else who feels like it.
reCurse: Really not much to be proud about in the US right now
Westicles: Why not?
Astrobytes: Westicles: I'm far from anti-American, it's just some of your administrations have been... Highly Questionable.
reCurse: If you identify as conservative I'm not even going to bother
reCurse: Might as well talk to a wall
MSmits: Westicles half of the US thinks your president has been chosen with a fraudulent election
Westicles: There is no difference in the two parties. It is an artificial line drawn to divide a population in half, as required with two parties
MSmits: lol
MSmits: that's never been less true than it is now Westicles
MSmits: there's a huge difference
reCurse: Ah yes the good old all sides are equally bad
Westicles: Trump just spent 9 trillion
reCurse: Peace out
Westicles: Jeez, talk about hurray for your side...
MSmits: I'm not going to get into a political debate defending any side on this chat, but to say that it's all the same is not realistic
reCurse: ^
MSmits: the US is extremely divided
Westicles: It isn't the same because your side is right (just to make it clear, I don't have a side)
Westicles: Anyhow, wrong place for this
MSmits: what i mean is, people identify with one side, only see news from that side, only socialize with people from that side etc.
Astrobytes: I agree that 2-party solutions are not workable.
MSmits: it's like a religion to most Americans
reCurse: Not a reason for false equivalence and inaction
reCurse: Or apathy
MSmits: I'm happy with our mess of a multi-party system
Westicles: MSmits, agreed that is the best way to do it
Astrobytes: Here in Scotland, we have, I believe, 50 MPs from the SNP (dominant party in scotland) in the UK parliament. And it's like banging your head against a brick wall.
MSmits: while playing the bagpipes
Astrobytes: No.
MSmits: mmh ok
MSmits: just my imagination then
Astrobytes: More like having porridge being chucked at you :P
MSmits: ahh that works
reCurse: If you play the bagpipes it's totally warranted
reCurse: Just saying
MSmits: lol
Astrobytes: Hey, I can't play but I do enjoy the bagpipes.
decomorreno: Hi guys is it considered cheating to use google (stackoverflow)? I cant find any info about this
MSmits: decomorreno depends to what degree
Astrobytes: No, use stackoverflow to your heart's content.
reCurse: Is programming considered cheating?
MSmits: if you're copying entire bots, it's not really sporting
Astrobytes: Yes. Someone wrote this code before.
MSmits: but to find a function to do a task is fine
reCurse: That's literally how I write java and javascript
Astrobytes: if (... OH HELL I'M CHEATING. I must invent an esolang
decomorreno: Understandable, thx :)
Centurion256: why did the chat get so political all of a sudden, it feels like i'm scrolling through my twitter feed again...
MSmits: i think it's done now
Astrobytes: hehe, sorry about that
MSmits: sorry about that Centurion256, you're right to complain
Astrobytes: It happens once in a while
Westicles: stackoverflow is fine, github is cheating
reCurse: I complained about not being able to upgrade computers, my bad
Astrobytes: :D
Westicles: lol
Astrobytes: Conversation is as conversation does
Westicles: everything went widdershins
Astrobytes: :rofl:
Astrobytes: Excellent.
Centurion256: don't get me wrong, I wasn't blaming it on anyone, it's just unusual to see this kind of discussion in codingame chat out of all places :)
MSmits: yeah, I like that it is unusual
reCurse: No it's true, by blaming social media we have become what we hate
reCurse: So social media is now joining politics in topics to avoid, interesting
MSmits: I sometimes can't resist joining in because I have strong opinions too, but this is not really the place
Westicles: Yeah, it was kind of beautiful how that transitioned
Astrobytes: Haha
Astrobytes: Where is 'the place' MSmits?
MSmits: in your cupboard, when everyone is away
MSmits: and when you're voting
MSmits: or just scream in your pillow
Astrobytes: I've always advocated conversation about everything wherever you are (within reason of course)
MSmits: yeah, but if you know beforehand that it's not going to do anyone any good, it's maybe better not to start
Astrobytes: But it's conversation nonetheless. Why hide under a veil of silence if you have something to say?
MSmits: I don't mind talking about simple political facts, but people cant agree on facts anymore
Astrobytes: Some can.
MSmits: yeah, but then you're usually in your own bubble
Astrobytes: That's why it's important to converse.
Westicles: I like that one guy last month: "You guys were gonna ban me for asking how to print yesterday but now you're talking about bombs?"
MSmits: It is my opinion that you cant converse when you dont share the same facts
Astrobytes: lol Westicles, I remember.
MSmits: lol
MSmits: he said that?
MSmits: thats awesome
MSmits: so... about bombs
MSmits: what were you discussing?
Astrobytes: MSmits: yes, I get that. However, when you fail to engage you lose all hope of any kind of progression.
MSmits: I agree, but I think all effort should go to creating places where facts are central
MSmits: werent you the one that keeps sharing links from The Guardian?
MSmits: I like that one
Astrobytes: Yes, it's the only publication I take seriously. Well, one of the few.
MSmits: there should be a lot of effort to create those
MSmits: to lure people away from their misinformation bubbles. I dont think there can be conversation before that happens
MSmits: it seems pointless
Astrobytes: There are more fundamental issues though. People are tired, scared, deprived of education - of course they will look for a quick way out. That's populism.
MSmits: education too, yes
MSmits: good point
Astrobytes: The less educated most of your country is, the better the hold you have over it.
MSmits: and the faster you'll lose it to the next populist
Astrobytes: Indeed.
Astrobytes: Up to a point.
Astrobytes: It takes time to swing from the far left/far right.
MSmits: it might still appear sudden to other people
MSmits: most of it happens in your head, suddenly you're fed up with the BS
MSmits: many people might be close to that and you wouldn't even know
Astrobytes: True. Then in retrospect people say "wtf, why didn't we see that coming".
Astrobytes: And yes.
Astrobytes: Anyway, I really do despair. Let's move on.
MSmits: good idea
MSmits: http://chat.codingame.com/pastebin/d1f34c6b-f0a2-4a0e-826c-76ee4b367d79
MSmits: update on my connect4 test :)
MSmits: that first move seems more balanced, been that way for a while
Astrobytes: explain, I haven't been following your progress too closely today
MSmits: left corner
MSmits: I am trying to determine if this is one of those games where p1 always wins
MSmits: and if it needs a steal
MSmits: like yavalath
Astrobytes: Ah ok, the balancing issue.
MSmits: yeah
MSmits: when i let my bot play itself in the IDE, p1 almost always wins
MSmits: thats not good
Astrobytes: and offline?
MSmits: well thats the link i shared, it's a meta mcts
MSmits: it's just playing games
Astrobytes: ah of course
MSmits: 4 is the middle, apparently not the best move
MSmits: 3 seems better, my bot also always uses it
MSmits: corner is understandably weakest
MSmits: so maybe p1 needs to be forced to play it, to have a balanced game. Steal does this
Astrobytes: Interesting. Any literature on that?
MSmits: well this is a peculiar size for connect 4
MSmits: usually it's 6x7 isnt it?
MSmits: it depends alot on size
Astrobytes: There have been a few variants
MSmits: https://tromp.github.io/c4/c4.html
MSmits: here you can see the various sizes
MSmits: + means p1 solved win
MSmits: - p2 solved win
MSmits: = draw
Astrobytes: Yeah I saw that previously
MSmits: 9x7 is just out of range of this
MSmits: ah ok
MSmits: well that shows you that it depends a lot on size
MSmits: so, likely what move is best, also does
Astrobytes: I would recommend trying to add steal in your offline sim and see the difference.
Astrobytes: Also with board size differences if necessary.
MSmits: dont need to, i can just look at the starting moves. The move nearest 50% is always the best move to pick with steal
Astrobytes: ah, heh, smart thinking
MSmits: different board sizes will be hard
MSmits: i would need to rewrite my bot
MSmits: it uses AVX on a 64 bit board
MSmits: 7x9 = 63
Astrobytes: eh, yeah
MSmits: i dont mind rewriting it for a larger version if thats what we're going it, but not unless we're sure, its a lot of work
Astrobytes: (and I can still do basic arithmetic btw)
MSmits: lol i know
MSmits: i am doing it because of jacek, he might read this
MSmits: he has math problems
Astrobytes: Yeah, larger boards would really be a pain in the arse
Astrobytes: It's just symbols he hates no?
MSmits: yeah, i am just trolling him
Astrobytes: ah
MSmits: i think its not too hard to split the board in two
MSmits: and do the procedures twice
MSmits: combine the result
MSmits: but it means less sims
MSmits: and you need to be careful around the split
MSmits: 4 in a rows may cross boundaries
MSmits: likely you would have shared bits in both halves
Astrobytes: That's the point where my head begins to spin with bitboarding.
MSmits: yeah i cant say i have done that before, usually on these boardgames it neatly fits
MSmits: tric trac hasnt passed us yet
MSmits: i wonder if he just hasnt properly tried his MM magic
MSmits: or if mcts is a better fit
Astrobytes: I would go with the former.
MSmits: probably
Astrobytes: For now.
MSmits: my bot is only 669 lines
MSmits: really small for me
MSmits: the sim is so simple is why
MSmits: and no eval
Astrobytes: That's because it only has 0x,&,!,| and =
MSmits: well that
Astrobytes: oh and << >>
MSmits: and this:
MSmits: http://chat.codingame.com/pastebin/c9a5e2be-612e-4fc8-a4a0-88fd2a1aa51f
Astrobytes: ah, yes, always better to call those heinous things something meaningful
MSmits: i normally never uses defines
MSmits: but for these... yeah
Astrobytes: you can do using instead, but not sure it matters, frankly
MSmits: how does that work?
MSmits: i know it in python
MSmits: never done that in C++
Astrobytes: https://en.cppreference.com/w/cpp/language/type_alias
MSmits: oh specifically for types
MSmits: define is more general i guess
Astrobytes: read on
MSmits: this makes my head hurt
MSmits: more than bitboards :P
Astrobytes: well, like I said, not really necessary
darkhorse64: For boards larger than 64, you can use encoding under several directions using as many uint64_t as you want. That deals with the straddle issues.
Astrobytes: Hm. Good point.
MSmits: hmm
Astrobytes: Much less confusing.
MSmits: but every part of the board still has possible 4 in a rows in most directions doesnt it?/
MSmits: oh wait i get it, you want to split it several ways
MSmits: split it horizontally for vertical 4 in a row checking
darkhorse64: Of course, you lose performance because you need to update 4 different representation. Yes
MSmits: ah i got it
MSmits: also you wont be saving the board on your node anymore
MSmits: I tend to put the limit on 128 bit for saving states on nodes
MSmits: i dont do it for uttt for example
darkhorse64: I wanted to make a C4 octagon with size 5 (much larger than 64). So I started thinking on the bot implementation
MSmits: oh, how does this octagon thing work, do you have an example?
MSmits: you mentioned it before
darkhorse64: Same behaviour, you drop things vertically. No gravity drift
MSmits: yeah but i mean, whats the octagon part
MSmits: having trouble imagining it
darkhorse64: It's like a bigger rectangle with forbidden slots
MSmits: hmm ok, so it widens as you go up?
MSmits: and shrinks again at the top?
darkhorse64: Yes
MSmits: I see
MSmits: well it could be interesting, but might suffer from any problem connect4 has on a board that is too small
MSmits: so size is still the solution to any problem
MSmits: but the game might be interesting to people who feel connect4 is too simple
darkhorse64: In the hope that the strange shape and the larger board will prevent solving. I reckon balancing can still be an issue
MSmits: strange shape shouldnt matter, larger board will
MSmits: well it will matter in the sense that you wont find example bots online
Astrobytes: Alright then, MöbiusConnect4 it is
darkhorse64: It's a new programming challenge for bitboarders
MSmits: thats true
MSmits: though pdep/pext fixes most issues with strange boards
MSmits: worked with yavalath as well
Astrobytes: fair point
MSmits: avx will be far harder though
MSmits: i wonder if there's any way to extrapolate from the solving table here : https://tromp.github.io/c4/c4.html
MSmits: it does seem draws disappear at larger sizes
MSmits: but p1 and p2 both win, depending on size
Astrobytes: D&B-style odd/even thing going on?
MSmits: yeah seemed like it
MSmits: it's not obvious at all, just looking at the game
MSmits: you would think p1 would always have the advantage, but thats not true at all
MSmits: these things fascinate me. I am just like those guys who make those pages. Spending years solving all the different sizes of a game
darkhorse64: Notice that with tx6, only the middle move wins, whereas nearly all moves wins (except the borders) with 9x7 according to your sim
darkhorse64: 7x6
MSmits: hmm
MSmits: well its too early to tell, but does seem that way
MSmits: it might be p2 has some narrow lines to victory
darkhorse64: My bot always plays 3 at startup
MSmits: mine too
MSmits: it plays the wrong reply as p2 though
MSmits: mine i mean
MSmits: sems 5 is best, but mine stacks on top
darkhorse64: I hardcoded naively 4 but your bot made me change my mind
MSmits: 4 is probably winning too
MSmits: but could be 3 is more forgiving, which is why the % is higher
darkhorse64: _mm256_set1_epi64x(board) looks faster than _mm256_set_epi64x(board,board,board,board)
MSmits: we'll see, I'll leave it running until the contribution is approved or rejected
MSmits: it's probably faster or equally fast
MSmits: compiler might catch it
Stilgart: darkhorse64: it would be a shame that the first one is slower
MSmits: yeah, why would it even exist if it was slower heh
MSmits: I had to convert my avx sim to something in C#. I noticed C# now gives access to these functions
MSmits: I didnt want to learn how though... so i rewrote everything to loops :P
darkhorse64: I now beat consistently trictrac as p2. Yes, you are right, it's getting late, silly me
struct: darkhorse64 they are both a sequence
struct: I dont think it matters
darkhorse64: a sequence ?
struct: "This intrinsic generates a sequence of instructions, which may perform worse than a native instruction. Consider the performance impact of this intrinsic."
MSmits: mmh i wonder how it would perform worse
MSmits: under which conditions
MSmits: I only use it once during the winning moves function, to fill the 256 register
struct: also if you are loading from an array[4]
struct: you can use gather
darkhorse64: On CG, it performs ~8% better just changing this very line but stills far from the improvement avx give me on my machine
MSmits: is that just a memcpy struct?
struct: wait i was wrong
struct: gather lets you load from indexes of array
struct: _mm256_i64gather_epi64 (__int64 const* base_addr, __m256i vindex, const int scale)
MSmits: yeah so its just loading from any sequential piece of memory basically
MSmits: like memcpy
Astrobytes: like a memcpy
Astrobytes: sorry, too late :(
MSmits: it's ok, then we know you're still around
darkhorse64: echo in the chat
struct: I guess, but the indexes dont have to be sequential
struct: you can load from 0, 5, 100, 200
MSmits: ohh ok
MSmits: but then it's slow
Astrobytes: aha
struct: but if load alligned memory
struct: you can use load
MSmits: I see
struct: Im not sure if it works with 64 ints though
MSmits: but for connect4, we're basically loading from 1 64 bit bitboard
struct: loadu loads from unaligned memory
MSmits: we're just spreading that thing around the register to have 4 copies
struct: I see
struct: So I guess set1 is enough
MSmits: that way you can use shifts and such to check in all 4 directions at once
struct: you load the same board in all 4?
MSmits: yeah
struct: and then check a different direction for each?
MSmits: thats what i do yeah
MSmits: left + up, + upleft + upright
MSmits: it's all a shift in the same direction
MSmits: with different amounts
MSmits: so you can use the shift function, with a shift array with different counts
MSmits: shift 1, shfit 9, shfit 8, shift 10
darkhorse64: 8 lines + 9 constants
MSmits: 9 constants?
struct: http://chat.codingame.com/pastebin/d1a1a9dc-217c-4082-ba99-7869acedaeea
struct: http://chat.codingame.com/pastebin/c2625726-5c3d-4626-a3d4-4ed82e0eb61a
darkhorse64: for guarding bits, shifts, etc
struct: Those are the differences
struct: bettwen set1 and set
MSmits: you mean masks darkhorse64?
darkhorse64: http://chat.codingame.com/pastebin/dd3ddcb1-611a-4af8-a69b-d062f920343d
Astrobytes: Right. This is too much for my rum and Rammstein clouded mind. I bid you gn/bn people
MSmits: gn Astrobytes :)
Stilgart: gn Astrobytes
darkhorse64: gn
struct: gn
MSmits: darkhorse64, instead of having a shift 2, isnt it better to shift once, then shift again?
MSmits: if you're using the earlier result anyway
MSmits: then you use 1 less register
MSmits: those things you call guards, look like my masks to avoid shifting over the edge of the board, is that what they do>/
MSmits: yeah that must be it
darkhorse64: Yes. I shift once, for lines of two and a second time for lines of 4 reusing the previous result
MSmits: your "all" is my: const uint64_t FULL = 0x7FFFFFFFFFFFFFFF;
MSmits: I use hex to not have such long lines hehe
MSmits: ahh ok
MSmits: your function does a different thing
darkhorse64: Easier to write bit by bit
MSmits: mine works like this
darkhorse64: it's a win detection
MSmits: each part of the board has 4 ways it can be part of a 4 in a row
MSmits: (in 1 direction)
MSmits: it shifts all of the other 3 parts of the board to it
MSmits: and with AND sees, if a 4 in a row is possible on this spot
MSmits: so 0XXX and X0XX and XX0X and 00X
MSmits: so I need 4 results times 4 directions
MSmits: that last one was wrong bw XXX0 ofc
struct: darkhorse the 8% difference is on same cpu?
struct: and how often do you load the board?
MSmits: might be an intel amd thing?
darkhorse64: I have repeated the test around ten times. I know about CG 3 different CPUs. I load the board each time I play a move during rollouts. It's really a hot spot
darkhorse64: *about*
struct: its 5 cpus
MSmits: same for me, i do the winningmoves thing every time i play a move also
MSmits: btw darkhorse64, do you save the board on the node?
struct: but I see, loading everytime might make a bit performance hit
darkhorse64: Yeah, it might be very accurate. I'll do it on my machine although it seems to perform much better
MSmits: I've been thinking about maybe incrementally change the winningmoves thing as opposed to just recalculating the entire board
MSmits: but anything i think of seems slower
darkhorse64: I do that for Y
MSmits: me too
MSmits: i have a winboard, a loss board a trap board etc.
MSmits: doesnt seem feasible here
darkhorse64: same
darkhorse64: I reread the code this afternoon. Ouch !
MSmits: yeah, i will never understand the code i use to generate my lookup tables again
MSmits: at first i manually coded them at risk of errors, because it seemed too hard to generate them
MSmits: but finally got tired of those huge tables, spent a day on it and never looked back
darkhorse64: No but my implementation is bare bones
MSmits: what do you mean
darkhorse64: lag. Answering a previous question on storing board on node
MSmits: oh ok
MSmits: well i think it doesnt really matter in this case
MSmits: because you're updating those winboards and such anyway
MSmits: thats way more expensive than updating a normal board
darkhorse64: I think too, A xor plus one update for heights
MSmits: right
MSmits: oh now that you mention it, i dont think i save the board on the node here either
MSmits: confused with oware, bandas and such
MSmits: they are also 128 bit
darkhorse64: At first, I only have two boards but I thought managing available moves would be beneficial
darkhorse64: *only had*
MSmits: yeah it definitely is, mostly in the random rollout
MSmits: but when the selection tree goes deep, it does get pretty expensive
darkhorse64: which makes me think it could be efficient in uttt
MSmits: hmm, yes, thats what that page did i think
MSmits: someone shared something
MSmits: i forgot who
MSmits: https://minimax.dev/docs/ultimate/
MSmits: this part:
MSmits: https://minimax.dev/docs/ultimate/pruning/
MSmits: you keep track of critical squares
MSmits: to avoid playing
MSmits: reduces branching in the rollout
MSmits: basically, if you know the other guy has a winning square in some board, you avoid playing any square leading to that board, including all free moves
darkhorse64: I have that in my rollouts, avoid sending opponent to winning boards but it's quite heavy and not very beneficial. As usual, a game give clues to another
MSmits: hmm ok
MSmits: not very beneficial might be beneficial enough
MSmits: i tried thinking about endgame db for uttt
MSmits: but i cant see anything past just the last unfinished board
MSmits: the number of possibilities with 2 unfinished boards is extremely large
MSmits: doable locally, for sure, but not in 1 second on CG
darkhorse64: It hampers my rollout count too much
MSmits: ah I see
MSmits: maybe i should not have my meta mcts bot for connect4 run at 100 ms per turn, this takes forever :)
MSmits: I sometimes make them run much faster locally, since it doesnt seem to cause problems
darkhorse64: But if I can get available moves faster ... I really need to think about your winning position code. I understand it but bitboarding it is another story and it's getting late
MSmits: you'll wake up with the code in your head
MSmits: happened to me a few times, very rare, but awesome
reCurse: Drugs are bad mmkay?
MSmits: hey, some people dont need drugs for this :P
MSmits: did this never happen to you during a contest?
reCurse: No that's what showers are for
MSmits: ah well that works too
darkhorse64: Is CG a drug ? Tooth brushing is my favorite
AnonymousUser: Some drugs good, some drugs bad
MSmits: allright I should get some sleep.
MSmits: gn !
reCurse: nite
darkhorse64: gn
struct: gn
lopidav: hey, can someone join a private clash, I need to test some staff: https://www.codingame.com/clashofcode/clash/15281113575664e5de8e882728068cc046baebd
lopidav: not needed anymore
XIlayPVPX: yo, so I'm trying this AI game
XIlayPVPX: it keeps saying I'm 1# at wood league
XIlayPVPX: how do I try a "Bronze game" like the website wants me to
struct: you need to be above the boss
struct: after all matches end if you are above it you will get promoted
XIlayPVPX: it took a bit of time to update
XIlayPVPX: I got the promotion in a 5 minutes delay xd
gusto: is the site slow for others as well?
AbuuDarda: yeah its slow
DJSchaffner: yeah my tests take ages to complete. and i already thought i screwed up something :D
ZzzTRAPzzZ: bruh the site is too slow
onlyspaceGHOST: it's normally ok
onlyspaceGHOST: it's fine for me now
onlyspaceGHOST: was bad earlier
Olusola: Hello
RyanGilbert: why does the website want to see my clipboard?