Chat:World/2021-01-02

From CG community
Revision as of 11:58, 15 June 2021 by Chat Log (talk | contribs) (Created page with "<img src=/a/43135502422075> eulerscheZahl: clash of code gives CP, not XP <img src=/a/35448723594340> jacek: happy Caturday <img src=/a/54970169109216> Wontonimo: correct, m...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

eulerscheZahl: clash of code gives CP, not XP

jacek: happy Caturday

Wontonimo: correct, my bad, it's CP

Default avatar.png jamieSloop: hello

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

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

Default avatar.png ChampionCoder: Skills as in the things needed to solve a puzzle

MrSok: skills as being champion coder for instance;

MrSok: ?

MrSok: rofl

Default avatar.png ChampionCoder: well, no, but the boxes you tick after having completed a puzzle

Default avatar.png ChampionCoder: Wish I could upload a pic

MrSok: explain

Default avatar.png zhoubou: You mean on home page, those quests?

Default avatar.png ChampionCoder: No! Not the quests

Default avatar.png zhoubou: Oh I know what you mean

Westicles: You aren't a true legend until they talk about you every day on #fr

Default avatar.png ChampionCoder: Above "achievements" on the home page?

Default avatar.png zhoubou: Those skills such as "Conditions", "Arrays", etc.

Default avatar.png ChampionCoder: Yes!

MrSok: aaah ! yes good point

Default avatar.png zhoubou: I have no idea if there are legend ones

Default avatar.png ChampionCoder: Ok thanks

Default avatar.png ChampionCoder: :)

Default avatar.png zhoubou: Someone else might know more :)

Default avatar.png zhoubou: But from what I'm seeing, it doesn't follow the pattern

Default avatar.png ChampionCoder: Ah

Default avatar.png zhoubou: It's fundamentals, intermediate and advanced instead of bronze silver gold

Default avatar.png ChampionCoder: Yeah I saw it followed the typical system until Gold

Default avatar.png ChampionCoder: Similar colours :sweat_smile:

Default avatar.png zhoubou: Haha yeah

Default avatar.png zhoubou: I checked very hard puzzles, and can't see any red ones

Default avatar.png ChampionCoder: Ohh ok thanks

Default avatar.png ChampionCoder: Just general info, that's why I asked

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

Default avatar.png JASSSIM_ALSOKNI:

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

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

Default avatar.png kolioxyz: isn't "Next growing number" test 5 not true?

jacek: why

Default avatar.png kolioxyz: for input: "11123159995399999" expects:"11123333333333333"


jacek: each next digit is >= than previous

MSmits: darkhorse64 you here?

Default avatar.png saylor: happy new year

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

Default avatar.png strattan: Good day

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

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

Default avatar.png FireGhost_110b: hello world)

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.

Default avatar.png MACTEP: Hi!

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.

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

Default avatar.png decomorreno: Understandable, thx :)

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

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

Default avatar.png oscarf24: Hey y'all

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

Default avatar.png AnonymousUser: Some drugs good, some drugs bad

Default avatar.png AnonymousUser: ez

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

Default avatar.png XIlayPVPX: yo, so I'm trying this AI game

Default avatar.png XIlayPVPX: it keeps saying I'm 1# at wood league

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

Default avatar.png XIlayPVPX: it took a bit of time to update

Default avatar.png XIlayPVPX: I got the promotion in a 5 minutes delay xd

Default avatar.png gusto: is the site slow for others as well?

AbuuDarda: yeah its slow

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

Default avatar.png RyanGilbert: why does the website want to see my clipboard?