DiL: hi guys! is it possible to definetly close a DM chat?
Uljahn: Automaton2000 to the rescue
DiL: I mean: I would like to close a Direct Message chat opened with another user. we're no longer chatting but it still keeps showing... thanks
Automaton2000: you are just going to say that
LelouchVC2: Yea, does that all the time
Uljahn: DiL: close it and reload the page
DiL: Uljahn: I tried, didnt solved
Uljahn: try ctrl+f5
DiL: thanks Uljahn: fixed it!
AntiSquid: WINWINWIN hi
AntiSquid: weird question to ask here :p
AntiSquid: at the top right click save and the save & commit, which runs all cells and saves your work
AntiSquid: then you need to click on the number and click "go to viewer", then scroll down to output, select the file you want to submit, most likely the one ending in .csv and then click submit ! and then make sure to select the your best score on the submit screen
AntiSquid: geez CG makes life much easier
AntiSquid: also you could ask people on kaggle how to do stuff there lol, they're very helpful
AntiSquid: i joined their discord but nobody talks in there
AntiSquid: WINWINWIN are you still there?
AntiSquid: https://www.codingame.com/learn click python in the checkbox, but there are better tutorials to just learn python on other websites Raghuveer
WINWINWIN: Yeah, Im back AntiSquid :D asked it here as could not get an answer anywhere there
caubeloatchoat24: Yuck! Are u only win 3 game ?
WINWINWIN: AntiSquid, I am not able to find the output in the notebook viewer, I think it is being deleted after I exit the editor
WINWINWIN: @caubeloatchoat24 not Evan that many :P
caubeloatchoat24: Why this code error bro: "cout << 1^2;" (in C++). Or i have to use a template?
caubeloatchoat24: "^" is Bit Xor
WINWINWIN: print(o) n times
Uljahn: if o is of str type, it could be shortened to: print("\n".join(o*n))
WINWINWIN: would that work?
remi6: exec(n*"print(o);") is shorter
Imsure1200q: what do you think is good golfing language?
struct: ruby perl
Imsure1200q: k i learn ruby
Imsure1200q: you cant fool me java is trash
Imsure1200q: yep perl is confusion
Imsure1200q: i think the tutorial section was rushed lol
Astrobytes: perl is only confusing if you don't know what you're doing
struct: puts [?o]*n print((o+'\n')*n)
struct: ah o is a var
struct: even shorter than
struct: dont need the ?
WINWINWIN: codegolf stackexchange
Imsure1200q: zolac just made the worst reverse mode coc :((((
Imsure1200q: 9 -> 6
Imsure1200q: 1874587458 -> 272896189
Astrobytes: Ah WINWINWIN beat me to it
Imsure1200q: you always get beat
Imsure1200q: wait wrong face lol
WINWINWIN: Hi Imsure1200q how`s space mazing coming along?
Astrobytes: Finished Space Maze yet?
Imsure1200q: nah c++ was rude to me
Imsure1200q: and music production wooo
Imsure1200q: working on 3 musics so
Imsure1200q: but imma come back to it later and not use the A*
Imsure1200q: just gonna use practical solutions
Imsure1200q: how do you do red letters
Astrobytes: Red letters are a CG Premium feature only
**Imsure1200q slaps ? around a bit with a large fishbot
Imsure1200q: lol fishbot
WINWINWIN: Yes, it is very expensive to get red letters
Imsure1200q: orange letters?
WINWINWIN: Even more so
Imsure1200q: r a i n b o w l e t t e r s
Imsure1200q: how about latex
Imsure1200q: wdym 33
Imsure1200q: is herdre a bot
struct: also if you might want to learn bash
Imsure1200q: w a n n a t a l k a b o u t s p a c e m a z e
struct: I solved it
struct: preety easy
Imsure1200q: g o o d !
Imsure1200q: but c++ trying to make fun of me even if im using absolutely correct syntax so
struct: C++ fault surely
Imsure1200q: hey even google doesnt have an answer
Imsure1200q: imma reset my entire progress in Space Maze
Imsure1200q: back to the start
Imsure1200q: is there a way to sync IDE with CodinGame?
Imsure1200q: liek another ide
struct: There are extensions
Imsure1200q: is there for firefox?
struct: i dont know
struct: just search CG Sync on forum
Imsure1200q: "Warning: your code did not read all available input before printing an instruction"
Imsure1200q: ???? huh
struct: ignore it
AntiSquid: https://www.youtube.com/watch?v=y3RIHnK0_NE :joy:
Imsure1200q: is that a rick roll
AntiSquid: ahm, no?
AntiSquid: do people love rickroll in Philippines? Imsure1200q
AntiSquid: maybe trolling each other with rick roll at karaoke parties ? Imsure1200q
Imsure1200q: i guess
Imsure1200q: idk tho, just cant risk that rick roll man
AntiSquid: it's not rick roll
ToreForsell: rickity rallity
Hjax: good morning
eulerscheZahl: good afternoon
Hjax: im trying to rewrite my othello program in rust, not sure how successful im going to be
Hjax: it wouldnt surprise me if it ends up slower than the java one
Hjax: oh Washier just passed me
dbdr: Hjax: it should definitely be faster if done right
dbdr: let me know if you have questions
Hjax: im not super far along yet
Hjax: i wrote movegen and make
Hjax: and the move gen seemed slower than the java equivalent, but i think the jvm is just optimizing it away somewhat because i was just calling it in a loop
struct: also remember that ide in rust is in debug
struct: so its way slower
Hjax: im writing it in intellj locally
struct: ah ok
dbdr: are you using the release mode?
Hjax: most of the language doesnt feel that foreign, the array slicing thing is pretty weird
dbdr: that's pretty powerful, no?
dbdr: or what is weird?
Hjax: the idea that a slice of an array is a view of the array, rather than a new array
Hjax: also it seems i cant for each over an array, just a slice?
dbdr: you can do a new array is you want, but if you don't need it, a slice will be faster than what you could do in Java
Hjax: yeah is neat, its just new to me to have it work that way
dbdr: you can do both for x in array and for x in &array
dbdr: first one consumes the array
dbdr: most times you'll use for x in &array
Hjax: when you get a reference to the array you just get a slice of the whole array right?
Hjax: hopefully it will be a lot faster than my java version at the end, the entire bot is basically just bitmath
Hjax: so id expect a compiled language to be pretty speedy with it
dbdr: the JVM can be reasonably good at compiling bit operations
dbdr: Java is a compiled language ;)
dbdr: but you definitely got more control in rust
Hjax: java is in some magic place in the middle between complied and interpreted
dbdr: yeah, the machinery is complex
Washier: hey guys.
dbdr: but for any code that matters, it will be compiled after startup
Washier: loving the Othello
Hjax: i tried pretty hard over the weekend to optimize my java mcts, and i couldnt do better than 10k rollouts on turn 2
Hjax: Washier your newest submit is a lot stronger
Hjax: well done
dbdr: with MCTS you probably need to allocate, right?
struct: how far from the boss Washier?
Hjax: hes 0.3 behind it
Washier: if I can give a tip - it is really really simple once you realise one thing
dbdr: go go go Washier
Washier: soo close, the boss just pips me atm
Hjax: so i tried using a node pool, and it was way worse than not using a node pool
Hjax: maybe i did it wrong somehow
struct: I guess the boss is a bit above average
struct: on strength
Hjax: the boss is a monster
struct: but if you compare against top bots it isnt very good
dbdr: I think fast MCTS implementations in all languages end up preallocting, and using indexes in the large node array
Washier: its very good.
Hjax: boss should have been a 10k rollout mcts, not 40k lol
Hjax: Washier what does your bot do? mcts or minimax?
Washier: spent some time building board\movegen logic. all bitbaording. was worth it.
Hjax: yeah i think my bitboard is pretty solid / fast
Hjax: but i think my use of memory is poor, and thats why im slow
Washier: then once you find the same aha moement i did, you will be stronger
Washier: i'm only going 4 deep
Hjax: well im doing mcts
Hjax: probably need a different aha moment
Washier: still need to understand mcts yet.
dbdr: are you doing playouts until the end?
Hjax: me? yes
Hjax: i do full random playouts to the end of the game, i get about 10k on turn 2
Washier: oh wait, i'm thinking gametree again. leme see how many random games i can play in 150ms
Washier: haha, I only manage ~300 playouts from turn 1. 10k is wow
struct: turn 1 or 2?
struct: ah sorry
Hjax: the boss does 40k though
struct: I was thinking on uttt
struct: or not
Washier: turn 1. dont have playout code, just a loop
struct: wait on first you have 2000ms
Washier: yes. i use that to fill a cache used by my bit counter. but i measure 0.5ms per random game, so i can playout a measly 300 :)
struct: What do you define by playout on minimax?
struct: until you reach max depth?
struct: Also remember that code in Arena runs on release mode on C#
struct: So the numbers on IDE are not accurate
Washier: i did run realease. i dont define playout for minimax, but to max depth = 4 is what i mean yes
Hjax: wait since when is the first turn 2000 ms?
Hjax: i thought it was 1000
struct: I increased it
Washier: usually is 1000 afaik ye
struct: But its like this since release
Washier: do you guys do stuff in that time?
Hjax: i search for what i thought was the whole time
Hjax: but apparently it was only half of the time
Hjax: i just tried to add a node pool to java again
Hjax: 1/5th the speed
Hjax: i probably should take into account symmetries, but i feel like thats hard to make work with mcts
struct: Do you take symmetries into account dbdr?
struct: I doubt its worth it tbh
struct: But I havent played the game
Hjax: it matters a lot in the opening
Hjax: i would get a lot more tree reuse
dbdr: struct: no
Washier: my gut also says symmetries not worth it. dont want to offend people because i'm a very small fish in a big pong but i think a simpler bot is better for othello.
Hjax: i still dont really understand how i am messing up node pools
Hjax: you create a big array of nodes on startup, and use pool[index++] whenever you need a new node
struct: Do you have multiple pools?
struct: Where are you running into problems?
Hjax: using a node pool divides my search speed by 5
struct: In java right?
Hjax: havent finished my rust implementation yet
Washier: haha. wish i Could say that.
wlesavo: RIIR :slight_smile:
jacek: symmetries help when building opening book
jacek: in actual game tree search, no
jacek: are they treated as characters, not numbers/
struct: put entire code here
darkhorse64: You must say you are sorting them as integers
Astrobytes: ^ this
Astrobytes: sort() without args is alphabetical
Hjax: Astrobytes you missed me whining about how slow my mcts is
Astrobytes: Ah there you are Hjax, how is it going?
Hjax: i cant get over 10k rollouts :(
Hjax: so i started porting to rust
Astrobytes: Oh hey, well that should help
Hjax: but it makes me unhappy to not understand exactly why it is slow
Hjax: so im still trying to figure it out
Hjax: at some point ill get fed up with mcts and go to minimax i think
Astrobytes: Hm. I'd just roll my eyes and mumble Java-JVM-something
Astrobytes: I still think MCTS is promising, and you should get way better results in Rust
Hjax: ive seen some mention when i was reading online of a hybrid approach
wlesavo: Astrobytes or rather why in this stupid java cant anything work the way you would expect it to work
Hjax: you do a mcts tree building thing, but replace the rollouts with a low depth search
Astrobytes: lol wlesavo
darkhorse64: Another possible explanation is that your bitboarding code is slow
Astrobytes: Ah yeah, the minimax hybrid thing
Hjax: i spend less than 5% of my total time in my movegen and make functions
Hjax: i have profiled it a lot
Hjax: im pretty confident my bitboards are fast
darkhorse64: Ok. Wrong explanation then
darkhorse64: Back to Java sucks .... :grin:
ekym: (╯°□°）╯︵ ┻━┻
darkhorse64: I am a C++ only guy with enough background to write in languages with C like syntax. Can't really help
Hjax: i spend some large amount of my time in my rollout function
Hjax: which is just getting a random number, masking off the random move, making it, and checking if the state is terminal
struct: cant the GC be the problem?
Hjax: the GC is /always/ a problem
struct: I dont know java so Im just throwing stuff
Hjax: if the rust version is fast ill blame java
Hjax: its pretty much a direct port, because its almost entirely bitmath
Hjax: so it shouldnt take me that long
struct: You seemed stornger vs the boss Washier
Washier: that bot is a bastard. shot me down again
struct: Did you change anything?
Washier: im looking ahead 5 moves now. but also limiting(beam seach) it to the first 9 moves. still dumb hint hint - me thinks its all in the eval function
jacek: you implemented prune array eh
Washier: Snef is also really tough
Hjax: Washier is beating coffee cup and losing to me
Washier: yes, but very dumb, just expand the first 5 moves(order from top of board!)
Hjax: so im gaining points
Washier: HJax, also reallly really tough bot.
Washier: Also keep losing to field3
Washier: my bogey bot
struct: Just wait until you face dbd r :)
Hjax: once i get more playouts ill be more scary
Washier: would b an honour if I get there
Washier: HJax, i think you search way more space than me.
Hjax: yeah but im doing monte carlo instead of having an eval function
Hjax: which is probably just worse
Washier: not sure
Washier: BeardedWhale also kick my behind often
Scarfield: "Someone might eventually know something" :p
Washier: hahaha, very good. but i dont hink so
Hjax: Scarfield actually knows everything, hes just too humble to say so
Washier: saw that. humblest of all
code_maniac: "So humble that you will not be able to comprehend it" That's what his/her bio says :p
Hjax: when i said "he", i thought to myself "i have no idea the gender of anyone on this site, but im just going to go with he unless im informed otherwise"
Washier: it doesnt matter.
code_maniac: well i was also writing he only, but than thought it is better to keep both :p
Hjax: id imagine the gender ratio on this site is very male favored
Washier: i would imagine so too. its unfortunate. my wife is way more clever than me, big time engineer, women can most certainly dooo eet
code_maniac: i don't think in that perspective, i think this community is pretty active and helpful.
Hjax: oh for sure, its just a cultural thing, women get scared away from engineering and especially programming
Hjax: which is a shame
code_maniac: No everywhere
jacek: i see femaly avatar, im assuming female
jacek: i thought re curse was one
Washier: i also do that. naturual i suppose
Hjax: i feel like that assumption will be wrong more often than its right
code_maniac: And the first program ever written was written by a lady
Washier: Ada Lovelace
Hjax: my avatar is female, but i am not, for instance
Astrobytes: I really am a cat.
Hjax: re curse is 2b from nier automata
Hjax: pretty popular game
struct: What am I?
Imsure1200q: a struct
Imsure1200q: from c
Hjax: oh yeah all of the cat avatars are actually cats
Hjax: teccles is currently sleeping in the sun somewhere
Hjax: Astrobytes do the paws make it hard to type?
Washier: thibk 80% of people on here love cats
Hjax: i have considered joining the ranks of cat avatars
Astrobytes: Not at all! It's easy once you get the hang of it Hjax :P
Hjax: i have a very old cat, he could be my profile picture
Washier: mine is turning 13
Hjax: hes 18 years old
Imsure1200q: he like older than you?
Washier: wow. you win
Astrobytes: Both of mine have been known to 'type' in this chat once in a while
Imsure1200q: aka press keyboard
Hjax: not older than me, im 23
Astrobytes: 18! wow, old fella!
Imsure1200q: does it have babies
Washier: 18 is very impressive
Imsure1200q: take a picture of the babies
Hjax: no babies
Hjax: just one old, clingy cat
Hjax: he went deaf a year or two ago
Imsure1200q: what if it had babies but they ran away
Hjax: but hes still happy
Astrobytes: Aw bless him
Washier: i have two boxers along with the cat. opposite of relaxing
Imsure1200q: and if u have a dog then does your cat fight ur dog
Astrobytes: lol, great dogs, boxers
Washier: clowns of the dog world
Washier: cat is boss tho. she takes none
Astrobytes: My cats are both nuts.
Washier: best kind of pets
Astrobytes: One is permanently attached to me, follows me everywhere.
Hjax: my cat is like that too
Hjax: i can walk circles around my house, and he will just follow the whole way
Washier: pets are the best stress relievers i find
Astrobytes: Yup. I know that feeling.
Washier: this Othello bot is stubborn. will have to sleep over it
Washier: time for pirate metal :)
struct: We need 10 bots on wood 1
struct: so we get 100 battles per submit :(
Astrobytes: lol, not massively into pirate metal but being Scots means I automatically like Alestorm
Washier: haha Alestorm yass
Washier: struct - should get better as more people join
Astrobytes: yeah I'm actually surprised there aren't more players atm
jacek: maybe they are hooked to yinsh
Washier: yinsch looks complicated :)
Hjax: othello is getting me to finally learn rust
Hjax: so thats a victory
jacek: nah rust isnt succesful in othello
jacek: only 2 rust bots in wood 1
Astrobytes: Maybe you can translate some of your other bots too for more practice
struct: rust bot only has around 99% win rate
Imsure1200q: into tbilisi
Washier: rust sounds like managed C with some threading bits, me like
struct: yes NewfieBullet
Washier: Tiblisi is the capitaol of Georgia
Hjax: usually im good at the non speed critical multis
Hjax: so porting rust doesnt have a real benefit
Hjax: which isnt super motivating
Hjax: my PR2 is in python, who needs speed anyway
Washier: HJax, you into data science\machine learning?
Hjax: im interested in it
Hjax: i dont really do any myself, but i follow the bigger advancements somewhat
Washier: still like coding?
Hjax: it would be cool if this site allowed pytorch or something
Hjax: yeah i love coding, i do it professionally and still have motivation to work on personal projects
Astrobytes: Used to have Keras (iirc) but for python2, and had a number recognition puzzle. But got deleted.
Hjax: the barrier of entry to using a NN on this site is pretty high
Hjax: since you have to write it yourself from scratch
Hjax: i guess you can use numpy
jacek: or goold old vectors in c++ ;v
Hjax: i would try to go full alphazero on othello, but its too much work without libraries
Washier: HJax, i'm askin bcause you sound like you wpuld get tired of coding in 5 years. imo. data science and NN's are great to learn
Hjax: i conceptually understand nns, i have wrote some simple ones
Hjax: i took a machine learning course in college
Scarfield: not quite Mr. Burns hands
Hjax: i still have a lot to learn in terms of systems languages
Washier: cant go wrong with C.
Hjax: im fine in high level languages, but learning rust will keep me occupied for a while
Washier: pointers master you must
Scarfield: The order of the movies decided i did
Hjax: i think im reasonably competent with both java and python
Hjax: although trying to write high performance java seems to be going poorly for me
Hjax: ¯\_(ツ)_/¯ blame the jvm
Washier: me thinks when it comes to these managed langs(java,c# etc), you need to stick to the same stuff you would in low level langs.
jacek: so clashy
AbundantPuddle: Somebody just surpassed you. Lol.
Washier: sorry NewfieBullet
Hjax: tomatoes doesnt seem to be getting more rollouts than me
Hjax: i wonder whats different
tomatoes: they're not completely random
Hjax: ah, you biased them
Hjax: heavy playouts
jacek: so heavy
Astrobytes: So heavy that you will not be able to comprehend it
struct: When NNs for Othello?
Astrobytes: When I finish my AlphaZero implementation
Astrobytes: (not really)
Washier: For the evaluation funvtion
Astrobytes: I'd wager at least one person will be working on it
Washier: 1. Search deeper. 2. Evaluate leaf nodes better. 3. Profit
jacek: is N tuple network a NN?
struct: What is that?
Washier: tuple might be how you feed it
jacek: tuple, an extracted pattern from game board
Imsure1200q: > : )
Washier: i hate js in code gold, its short
Imsure1200q: lol u hate losing to peepl?
Imsure1200q: but i hate ruby people
Imsure1200q: do you hate them too?
Imsure1200q: cuz ruby shorter than js
Washier: Console.WriteLine...and i lose laready. learning ruby as a comeback
Imsure1200q: whats that language lol
Imsure1200q: pretty inconvenient
Washier: but short
Imsure1200q: no the one with Console.WriteLine
Imsure1200q: in ruby its puts
Imsure1200q: e w w
Washier: same as Java
Imsure1200q: java is system.out.println
Imsure1200q: yeah, kinda long
Washier: remember, every language has its place. all languages are good
Washier: except cobol
Imsure1200q: how to thumbs up emoji
struct: jacek that quality though :(
jacek: its java
Imsure1200q: java is going down the toilet i guess
struct: I mean picture quality
struct: its 249x243
Imsure1200q: and the imports tho
Washier: C# is the same, VB.Net also. it a trade-off
Imsure1200q: import Java.util.* //18 chars
Washier: except when golf
Imsure1200q: using namespace std; //19 chars
Imsure1200q: isnt VB.net close to C#
Hjax: who is golfing in java
Hjax: dont do that
Imsure1200q: who was that Eric guy
Washier: i do it in C#, often beat java, c\c++ bots ;)
Imsure1200q: idk but every code golf and i see a person who completed 20% and has 584 chars
Imsure1200q: ... and shows his code
Imsure1200q: ... and its j a v a
Washier: helps people learn
Imsure1200q: not if its 20%
Imsure1200q: especially the void main(String args) function
Washier: seeing not how to do something is also instructive
Washier: thats when its only you and bots
Imsure1200q: do you mean putting 0 code
Imsure1200q: lol so the java guy is a bot?
Washier: check their profiles. it saysa bot if it is one
Washier: kinda sad
Imsure1200q: how about AlkhinJohn he sometimes uses java
Imsure1200q: and the java always last place in codegolf xD
Imsure1200q: its a law
Washier: every language has its place
Imsure1200q: but java is not in codegolf
Imsure1200q: will codingame have support for jelly and osable?
Washier: no, neither is C#
Astrobytes: The reason they have bots is so you can still clash when there aren't enough real players
Washier: exactly. its pretty cool really. but sad
Hjax: so i just biased my rollouts, which makes my win probabilities look awful,
Imsure1200q: ya everytime, theres like at least 2 bots in a clash
Hjax: but i think my bot is better
Imsure1200q: so much bot bot
Washier: bots is the beesknees
Astrobytes: Nice one Hjax. Wait, your Rust or Java?
Imsure1200q: btw what do we do after we solved a contribution puzzle
Astrobytes: Give it a test run then!
Hjax: yeah its submitted already
Imsure1200q: ye all the testcases is good
Imsure1200q: after submitting the results will it be validated already?
Imsure1200q: or do we need to review it 5 stars
Washier: once you submit its done
Imsure1200q: theres no submit button
Astrobytes: A pending contribution?
Astrobytes: Leave constructive comments if applicable, vote down or up as applicable.
Astrobytes: Try it in multiple languages etc
Imsure1200q: is there a standard for validating contributions or personal thoughts
Imsure1200q: I'm pretty sure the contribution can be done in all languages
Hjax: i think my changes are a massive improvement against snef and the boss, and a huge regression against field3
Astrobytes: Yes, but you need to test the generated stub code etc
Imsure1200q: whats stub code?
Astrobytes: lol Hjax, too specific?
Washier: go Hjax, good luck
Hjax: dunno, i just biased my rollouts to pick moves that my opponent could also make first
Hjax: and now it beats snef and the boss
Washier: getting warmer
Astrobytes: Imsure1200q, the default code is generated by the stub code. Check it works in all languages, it sometimes doesn't
Hjax: i should really set up brutaltester
Hjax: for othello
Hjax: its a program that mass runs test games locally
Astrobytes: Definitely a strong submit Hjax, good improvement
Snef: Hjax nice submit
Hjax: i need more games against you snef
Hjax: aw i lost one
Hjax: i jinxed it
Snef: I maybe saw one bug again with a game vs you
Washier: i also was pleading for more agains Snefm they will come
Hjax: low win% when i was winning?
Imsure1200q: is lua a code-golf?
Snef: I see my self winning (score=0.78) next turn i see myself loosing (score=-0.9)
struct: not good enough for golf
Snef: it shouldn't change that much in one turn
Hjax: monte carlo sometimes misses singular important moves
Imsure1200q: how about perl?
Hjax: and suddenly realizes how bad its position is
Washier: python is the most accessible and golfy at the same time is it not?
Snef: yea but not that much usually
Hjax: man this submit is doing super well against the boss
Snef: spam submit to bring him down then :p
Imsure1200q: i guess ruby tops them all golf-languages?
struct: I think perl can beat ruby sometimes
struct: also bash is good
Washier: i keep losing about 2 out of 7 against boss
Washier: bash is good to know too
Imsure1200q: maybe ruby will welcome me well
Washier: that safe
Imsure1200q: perl was too messy so
Hjax: the matchmaker really doesnt want me to play snef
Washier: haha know the feeling
Hjax: im playing scarfield a ton, and no snef
Washier: me too!
Imsure1200q: hjax whats the game name
Snef: Hjax there is CGBench tool
Snef: to test code
Snef: it's really usefull
Hjax: i know about it
Washier: Scarfield is like my friend now i played him\her so many times
Hjax: i dont want to test, i want rating points
Imsure1200q: Vb.net looks gross imo
Snef: well submit again :p
Washier: you are competitive ;)
Snef: hopefully you'll get boss below me :D
Hjax: so many games against scarfield and k4ng0u, no snef
Hjax: i dont get it
Washier: you beat me twice know Hjax
Snef: it's just random
Hjax: the rng hates me
Hjax: im just kidding :P
Washier: dont believe that :)
struct: Nice submit jacek
jacek: nope, i jsut reverted to old one
struct: oh ok, it lokoed better than previous
Washier: think the nature of the game introduces a lot of noise.
jacek: ooh, i timeouted
Astrobytes: HOW D A R E YOU
Washier: my bots usally live on that edge. 1 timeout in 10 games is ok. push push
Imsure1200q: is monte carlo tree search
Imsure1200q: just rapid testing
Snef: and statistics
Imsure1200q: just randomly guessing and hoping to find the solution?
Snef: not really
Astrobytes: No, it's when you climb a tree, and just look around in random places for nice leaves.
Imsure1200q: but making random guesses educated by previous guesses?
Astrobytes: That's the statistical part
Snef: Hjax could you bring down the boss instead of me ? :(
Imsure1200q: astro im pretty sure monte carlo or smth did not climb up a tree and pick some leaves and then come up with the controversial MCTS
Washier: you play as many games as you can for each of your next moves. the move with the best outcoe you choose
Imsure1200q: im pretty sure newton didnt say "an apple fell on me so imma make this life-saving mind-blowing 3 laws"
Imsure1200q: i mean if he did then ok i guess
Washier: you need to implement(or git) a game engine to do this. 75% of the fun
Imsure1200q: so its basically simulation?
Snef: you need simulation to use search algorithms
Imsure1200q: intel i3
Washier: you can doo eeet
AdamJimenez: how do i close chat
Imsure1200q: the youtube play button on the bottom
AdamJimenez: found it thanks
AdamJimenez: i thought it was to run my script
Astrobytes: That one's a bit more to the left.
AdamJimenez: no shit
Imsure1200q: just looking for a challenge that doesnt use simulation
Imsure1200q: everytime i use simulation my CPU and Memory go 100% and Codingame be like "ooo ur not responding i fail ur code"
jacek: gg washier
Snef: Imsure1200q your code isn't running on your computer
Astrobytes: It's nothing to do with your computer
Washier: so stoked.
Imsure1200q: oh good then i just trash at optimization
PatrickMcGinnisII: Astrobytes i don't think the error_log is being flushed in othello before the output is processed
Astrobytes: GG Washier!
Imsure1200q: but c++ is not letting me optimize :(
Imsure1200q: giving me an error with pairs
Imsure1200q: when i do the A* algo
struct: grats washier
Hjax: did i bump you above the boss?
Hjax: or did you resubmit
Snef: you did
Washier: i didnt do nothin
Imsure1200q: why is Code of the Rings related to brainf**k
PatrickMcGinnisII: when i do a die(); the error_log stops in its tracks too
Hjax: with him gone, i think i can promote now
Washier: btw, losing my ass of in the new league
Washier: i miss the boss and the wood 1 gang
Astrobytes: PatrickMcGinnisII: If it wasn't happening before it might be in your code?
PatrickMcGinnisII: Astrobytes sry didn't see struct
Hjax: trying something new, it looks weaker though
PatrickMcGinnisII: trying to track down a bad node in my othello tree, think its in my move generator
jacek: good thing your bot is slow, not much to track :v
PatrickMcGinnisII: all i get is a bad index on line 0:... , when i try to add to error-log to track it down it executed the die command before the log has finished being written to
Astrobytes: Can you do a manual flush?
PatrickMcGinnisII: if I let it run without the die command, i get a big warning that keeps me from reading the error_log very well
PatrickMcGinnisII: something about not reading all input before outputting ...which is BS
Astrobytes: Yeah, that's CG's latest annoying error msg that pops up whenever it wants to
Astrobytes: Usually when I write to stderr more than 1 line
PatrickMcGinnisII: As soon as I do a depth 2 search I gete garbage, depth 1 is fine
PatrickMcGinnisII: I'll figure it out, yea that warning is annoying
struct: C# made it before Java
Washier: wooopw oowwowpp
eulerscheZahl: "C# made it before Java" The Simpsons did it before
Washier: honour to meet you sir
Astrobytes: Ah, Toad Worship. Don't lick him.
eulerscheZahl: no need to see it as an honor ;)
eulerscheZahl: jeez, that looks weird
eulerscheZahl: i only knew this one https://external-preview.redd.it/2pikW9Q9BAwUm2cuageNrJBTwRGJWTFLJ7xsOU4s0us.jpg?auto=webp&s=41710a1cb26c58148bdf1e6b8ec70a7a02b50c7d
Astrobytes: My eyes!
Washier: <scribling notes on a pad>
Astrobytes: hahaha oh dear
PatrickMcGinnisII: damnit, I make a move array outside of the class to save time and save it in the class, but apparently php doesn't opy it fast enough before my program tries to access it...wth is going on, it works in other langs.
PatrickMcGinnisII: The php kernel needs an enema
PatrickMcGinnisII: i'll move it into the class and see if that works
eulerscheZahl: you are free to code in another language
PatrickMcGinnisII: as soon as i make over 11 nodes, it barfs ... its not my move generator
Astrobytes: Passing around unsigned longs is faster than passing around arrays
Astrobytes: in PHP anyway
Astrobytes: And yeah, c'mon man just use C will ya :P
PatrickMcGinnisII: I'm passing a list of 0 to 63 ints
Washier: 1st rule of code. Be absolutely sure its not your issue
Astrobytes: But why, when you can just set n out of 64 bits
Washier: pass a ulong
Washier: the whole game engine can be built with ulong's, no lists needed, think masks
Astrobytes: Would definitely advise against arrays Patrick, sure convert to an array where you need to but just use ul's
PatrickMcGinnisII: well I found php doesn't like free nodes, so I basically store the node pointers in an array ... so the memory cleanup starts screwing up once I dump a tree about a dozen times
PatrickMcGinnisII: I'll clean it up, just a php thing, ignore me
Washier: good luck
PatrickMcGinnisII: barfs intermittently: $this->l[$startnode]->movelist[$i]
Astrobytes: lol, classic
PatrickMcGinnisII: smh, I been writing in C since 1987
Astrobytes: Why stop now?!
PatrickMcGinnisII: I did Pascal before that
PatrickMcGinnisII: and basci and asm before that
PatrickMcGinnisII: and then they taught me fortran in college, and I hated them for it
PatrickMcGinnisII: I should do C#
PatrickMcGinnisII: i know
Astrobytes: FORTRAN is useful, not here but it's got it's place
jacek: in graveyard
PatrickMcGinnisII: I should clarify, Fortran 77
Astrobytes: Isn't that still the most frequently seen version? Legacy systems and all
PatrickMcGinnisII: i have no idea, the formatting can kiss my ___. I think the math functions in Lisp were better
Astrobytes: And the modern compilers optimise whatever the version
PatrickMcGinnisII: oops, GF wants to NETFLIX and chill... (Program<=>Girlfriend) = -1
eulerscheZahl: then share the given info NewfieBullet
eulerscheZahl: <=> is that the new C++ spaceship operator?
eulerscheZahl: january february march april ...
jacek: did you write it euler
Yolo_Swagosaurus: Jesus, some people do not understand the idea of shortest mode
eulerscheZahl: no. but saw the clash before. i think when it was still pending
eulerscheZahl: i never created a clash of code
Astrobytes: You so should
Astrobytes: Clash of Toad
eulerscheZahl: nah, i prefer working on bigger things
eulerscheZahl: and then fighting with the graphics :D
Yolo_Swagosaurus: Guys are there any bots on this website?
Hjax: i like how im taking snefs rating points and donating them to field3
Astrobytes: So generous of you
Hjax: call me robin hood
eulerscheZahl: there are thousands of bots, Yolo_Swagosaurus
Yolo_Swagosaurus: eulerscheZahl Why tho?
eulerscheZahl: even a few in clash of code. and > 100k at coders strike back
Hjax: isnt that the point of the site?
eulerscheZahl: it's part of the website: write your own bot and compete
Hjax: would be pretty depressing if there were no bots
Astrobytes: There's a whole section dedicated to 'Bot Programming' so...
Yolo_Swagosaurus: No i mean in clash of code
eulerscheZahl: even on chat: hi Automaton2000
Automaton2000: i would like to use a ga
Yolo_Swagosaurus: well frick me then
Hjax: the clash bots are there to give you an opponent if no one is around
Hjax: otherwise clash would never have any players
Astrobytes: DAMN YOU
LelouchVC2: who are the clash bots?
Astrobytes: I was literally about to hit enter
Hjax: ok well i dethroned snef with a heuristic that i dont really understand
eulerscheZahl: https://www.codingame.com/leaderboards/clash/global?column=clashescount&value=DECREASING everyone above 10k clashes is a bot
Astrobytes: gj, what's your heuristic?
LelouchVC2: if there are bots
Hjax: literally just "play moves that are also available to your opponent first while doing rollouts"
LelouchVC2: how is tychkorg not a bot
LelouchVC2: he's on like 24/7
eulerscheZahl: tychkorg *is* a bot
Hjax: im still 1.1 points behind the boss
Hjax: but for some reason that was a huge improvement overall
jacek: do bots need to do the captcha? :o
eulerscheZahl: https://www.codingame.com/profile/cf32237762b3e3a59bf053529ac635d29520652 literally says so on the profile page
LelouchVC2: i never looked at his profile
darkhorse64: basically, you are restricting move choices for your opponent
jacek: mobility heuristic eh
Astrobytes: It's called mobility. You wanna maximise yours and minimise his
Hjax: yeah im familiar with it as a minimax heuristic
Hjax: but i didnt think it would work in monte carlo
Astrobytes: Anyone tried EPT with this yet?
darkhorse64: I'll let you know when I leave lb bottom
Astrobytes: That or the hybrid shallow-depth MCTS-minimax idea I think should be good
Astrobytes: (The one you mentioned earlier Hjax)
LelouchVC2: My life is a lie
LelouchVC2: the people i've been fighting against
LelouchVC2: have been bots
eulerscheZahl: they are real players from the past
Astrobytes: lol darkhorse64, at least you fixed the timeout
LelouchVC2: im so dead
LelouchVC2: CoC has betrayed me
eulerscheZahl: time to get into multiplayer games
LelouchVC2: Not all my rivals have been bots
LelouchVC2: but so many
Hjax: join us in othello
LelouchVC2: Is that bot programming?
LelouchVC2: My first and only bot
eulerscheZahl: or upload your own game: otoado
LelouchVC2: And the damn game broke at my peek
Astrobytes: In multiplayer everyone is a bot. But it's bots written by us.
eulerscheZahl: or github
Astrobytes: "otoado" :D
Astrobytes: Yeah, don't github your bots.
Hjax: Astrobytes can you run a game against me, i want to see how badly i lose
LelouchVC2: fist fight, it gives better results
eulerscheZahl: never bring a fist to a gun fight
Astrobytes: Hjax: https://www.codingame.com/replay/475152781
jacek: such passion
Hjax: that wasnt particularly close
Astrobytes: Swapped: https://www.codingame.com/ide/puzzle/othello-1
eulerscheZahl: great link
Astrobytes: Quiet toad :P
Hjax: i put up a fight that game at least
Hjax: your eval didnt just increase forever
Astrobytes: lol indeed
Astrobytes: My arena version is not... optimal, may I add (it's pretty shit)
Hjax: well i know my bot is terrible
Hjax: it wins by mistake sometimes :D
Astrobytes: And my IDE bot jsut crashes so :D
eulerscheZahl: silence! I kill you!
eulerscheZahl: sorry i'm late with that joke, was distracted
Astrobytes: I keeeeeeel you!
Astrobytes: Ahmed. Such class.
Hjax: you forgot the phlegm
darkhorse64: Astrobytes: yes, there was a issue with the solver not exploring all nodes (which is a good thing par se). When I had several skip nodes in a row that resulted sometimes in selecting nullptr. Now, the solver is working which increases my bot strength. Still last but closer
Hjax: you are using mcts solver?
darkhorse64: Yes. But I was not careful enough with pass moves
Hjax: how much did solver help
Hjax: i havent tried to implement it yet
LelouchVC2: Where's this othello thing
LelouchVC2: SO i can enhiliate u all
LelouchVC2: thanks <3
darkhorse64: I helps in two ways: once, a node is solved, it does not get explored anymore.
Astrobytes: Aha, I see. Not an instantly obvious bug indeed.
darkhorse64: You also don't need to explore all children of a solved node. Yeah, I use skip nodes (a null move that just switch players) to keep on alternating players (allowing lots of code resuse) but it's more tricky that it seems
Astrobytes: Definitely easier to handle null moves within a/b framework
darkhorse64: My initial intent was to include the solver in the boss. It would have been even stronger
Astrobytes: Next boss.
Snef: i'm glad you didn't
tomatoes: passes has great bug opportunity
LelouchVC2: I usually do <3
Astrobytes: Hi tomatoes, good submit earlier :+1:
LelouchVC2: anyone coding this othello bot in C++?
Snef: you can see it on the leaderboard
LelouchVC2: could have just said, "Yes, I am"
Snef: yea but that way you can see for others
LelouchVC2: just a quick question :(
LelouchVC2: even though it's outputting infront of my eyes, it tells me iv timed out
LelouchVC2: Any insight?
LelouchVC2: replayed a million times
struct: Paste the replay hjere
LelouchVC2: With C# equivalent code, it plays the first round
LelouchVC2: And then times out
jacek: and the code
LelouchVC2: i only wanted to test out the game. I only added two lines
struct: you need endl
struct: after you output
LelouchVC2: wew, that's gay
jacek: you need to get all inputs
struct: also get all inputs yeah
struct: or you will have problems
LelouchVC2: okie <3
LelouchVC2: thanks guys
jacek: someone codegolfed it into 126 chars
LelouchVC2: Crazy idea
LelouchVC2: Your code creates a new game for every turn, and the new game is exactly where the current game is at
LelouchVC2: and it plays out the scenario of making each move
LelouchVC2: you run out of CPU power about 20 seconds in
LelouchVC2: But you can't lose ;)
Astrobytes: Um, yes.
Astrobytes: minus the CPU part and not losing
LelouchVC2: That was everyone's reaction when they got there too
Hjax: i feel like LelouchVC2 almost figured out minimax
Hjax: but then didnt
Hjax: the mobility heuristic is so funny for mcts
Hjax: my bot will usually report below 20% win chances
Hjax: and then suddenly spike to 100%
Hjax: when it solves the game
LelouchVC2: Like when your climbing a mountain and cant see the top
LelouchVC2: "WE WONT MAKE IT"
LelouchVC2: 10 steps later: "oh, we're here"
Astrobytes: Or are you? Might be a local maximum.
Astrobytes: So you figured out minimax and hill-climbing so far, anything else to report?
jacek: true ai
Astrobytes: Prune Array™
LelouchVC2: I figured out that the boss is racist
LelouchVC2: He think he's an expert just because im black
LelouchVC2: well, i have an idea for how I want my bot to play
LelouchVC2: But the thought of coding it makes me lazy
Hjax: werent you saying youd destroy us a few minutes ago
Astrobytes: LelouchVC2 08:49PM Where's this othello thing SO i can enhiliate u all
jacek: shakespear eh
Astrobytes: As men in rage strike those that wish them best
jacek: how can i see the boss points?
Astrobytes: View a replay
Hjax: im surprised people dont use the debug prints more in games like othello
Hjax: its fun to see the win% move around
Astrobytes: Sometimes a source of shame too :D
Hjax: my bot can make snef print out WIN, and then win after
Astrobytes: snef's win prediction is a bit off I think
Snef: i don't have solver
Hjax: i usually get at least a :) while im winning
Hjax: what win % is the :) Snef?
Snef: 65% for :) 85% for WIN
Snef: 45% for :( 15% for LOSE
Snef: 35* for :(
LelouchVC2: I'll still destroy you all
LelouchVC2: Just when I get around to it
Snef: LelouchVC2 use the time you chat to code :)
Snef: and destroy us
darkhorse64: The proof of the bot is in the submitting
LelouchVC2: Have some errands
LelouchVC2: I'll start coding it tomorrow if bot coding is still in my veins
Uljahn: submit or delete
Uljahn: dive into coding the struct way
Hjax: rank 1 in one submit or delete
Astrobytes: Betcha 10 codinpoints he doesn't
Astrobytes: Right, I'm out for tonight. darkhorse64 fix your bottom, gl Hjax, I expect you in Wood 1 tomorrow! gn all ;)
tomatoes: wood 1.5
Hjax: ok ive joined the ranks of the cats
LelouchVC2: rank 0 in one submit cause im so pro
LelouchVC2: come over and the deed shall be done
LelouchVC2: Wtf is thisssss
LelouchVC2: Literally all I added was a single nested if statement and my program doesn't output in time..
LelouchVC2: Everytime I give bot programming a try, it's just trash on here
LelouchVC2: The first round should be give 2000ms, which is 2 seconds
LelouchVC2: MY PROGRAM IS DEFINITELY NOT TAKING TWO SECONDS
LelouchVC2: Yea, idk
Hjax: if you are timing out, its probably that you arent printing anything at all
Hjax: rather than a single if being too slow
struct: or not printing \n once again
Hjax: oh struct youre still awake?
Hjax: im used to being all of the EU people being gone by now
struct: Yeah I just got back home
struct: I usually stay awake until 3-4 am
Hjax: man im good at typing
Hjax: i combined two sentences
struct: Im confused
Hjax: " im used to being all of the EU people being gone by now "
Hjax: i started typing "im used to being alone"
Hjax: and then switched midway through
struct: I read it just fine
struct: That also happens to me
LelouchVC2: It says "did not output in time"
LelouchVC2: I put a "cout << "HERE";" in different parts of the code
LelouchVC2: before that ONE NESTED IF STATEMENT, it outputs HERE
LelouchVC2: RIGHT AFTER IT, it outputs nothing
Hjax: cout? that will count as an invalid output from your bot
LelouchVC2: There's no outtput at all. And why would cout be invalid output?
LelouchVC2: I'm coding it in C++
LelouchVC2: Keep doing it and it'll get easier
LelouchVC2: The program you write will be fed input
LelouchVC2: All you have to do is take the input and make the program be able to output what the tests expect
LelouchVC2: hi 17, I'm Lelouch
LelouchVC2: Just when you give bot coding another chance, it fucking destroys ur will to do it
LelouchVC2: I don't know php
LelouchVC2: I know C#, which is similar
LelouchVC2: C++ is where it's at though
LelouchVC2: So you'll see a premade program which takes in input. The input is going tot be 1234567890
LelouchVC2: Don't create your own variables
LelouchVC2: It's going to give it to you
LelouchVC2: Just take in input, think of it as linux redirection
LelouchVC2: Just try to take in data from the user, and the site will give you the lines you see in test
LelouchVC2: almost there, we're getting somewhere
LelouchVC2: That's just going to hardcode the outputs
LelouchVC2: There are 2 sets of tests
LelouchVC2: the ones it shows u, and the one it actually tests your program to do
LelouchVC2: Once you hit submit, it tests ur program with the second set
LelouchVC2: the first set of tests are just for you to test your program with
LelouchVC2: So what that clash wanted you to do was create a program that can take ANY 10 digit number
LelouchVC2: and format it to a phone number style
LelouchVC2: cause php
LelouchVC2: if you code php
LelouchVC2: you have to do php
LelouchVC2: Anyway, try another clash of code
LelouchVC2: ill join u
LelouchVC2: btw, the clash chat always closes for me at the start of the clash
LelouchVC2: so if u talk to me on there i wont see it
LelouchVC2: N is just a variable name
LelouchVC2: yea, but make sure you can take in all the input it's going to give you
LelouchVC2: Just a variable name
LelouchVC2: There are N throwers, which is 2 in thee example
LelouchVC2: Every test case will have a different number of people throwing shit
LelouchVC2: You need a program that can take in as many throwers as needed
LelouchVC2: It's going to give you an amount
LelouchVC2: The logic of the program shouldn't depend on how many throwers there are
LelouchVC2: It's in C++
LelouchVC2: will it be useful?
LelouchVC2: Now you can see the working code
LelouchVC2: I was hoping for a simple one
LelouchVC2: But it gave us this shitty one
LelouchVC2: idk, doubt it
LelouchVC2: For the most part
LelouchVC2: Not all clashes are like this, but a lot are
Reksio: The War puzzle was quite annoying to understand but the most annoying part is that tests run in old language version (while IDE used a new one). They need to fix this puzzle description and running env or tell people it's mean to be annoying :)
LelouchVC2: there's many like that
LelouchVC2: we just happen to be on a streak of hard ones
LelouchVC2: this one is simple though
LelouchVC2: Not as simple as it could be
LelouchVC2: But if you try I'm sure you can get it :3
LelouchVC2: lmao, ikr
LelouchVC2: They're not very realisitic, they're just problems to solve
LelouchVC2: Nah, plenty of puzzles you can solve
LelouchVC2: okie :3
LelouchVC2: Yea, you've got this
LelouchVC2: And the clash you left, I got 1st, but only got a score of 80%
LelouchVC2: You can "follow" people
LelouchVC2: well, i'ma get off and waste my life playing video games
LelouchVC2: already did ;)
LelouchVC2: okie, c ya later <3
danabanana: been a while since i did competitive programming.. i'm loving this clash of code thing
danabanana: not sure which is which.. can you post the exact line here? and what's the error?
danabanana: (input(question)-1 missing parenthesis
danabanana: syntax error?
danabanana: print is a function so it should have parenthesis as well
danabanana: also why do you have print ')'?