levuduy_software: Please share code..tks so much
levuduy_software: I until understand this question
simpledark: chào bạn vũ duy
simpledark: are BSoD, NoopathJntsu, Mathieu... bots?
simpledark: i see them every time lol
levuduy_software: Yeah I came up with the idea
levuduy_software: Tks Simpledark
simpledark: vào làm ván không bạn
levuduy_software: Mình mới có lv2 thôi à sao mà chơi lại lv6 :v
simpledark: thì cứ chơi đi, vui là chính mà
simpledark: bạn code ngôn ngữ nào
levuduy_software: C++ đi há
simpledark: mình Python
simpledark: mình tạo room riêng rồi mới bạn nhé
levuduy_software: Ok bạn nè mình giao lưu bới nhau đi hihi
simpledark: mình có nt riêng kia, bạn check thử
Yolo_Swagosaurus: OndrejBakan probably skipping too many rounds
thongvo109: làm dart
thongvo109: mù tiếng anh khoai vl
caubeloatchoat24: Chào các bạn Việt Nam nhá
darkhorse64: Today World is VIetnam
AntiSquid: english or go to #VN
Astrobytes: Hjax made some nice improvements in Othello I see
LelouchVC2: They see you
LelouchVC2: You cant see them
Astrobytes: Iuliep, there's a dropdown in the leaderboard page to filter by company/school
Astrobytes: At the top, says 'School/Company' with an arrow next to it, then click 'Same as Iuliep'
Smartasskilling: Anyone in chat that can help me with a for loop and removing an entity in python?
Smartasskilling: havn't finished coding but I suspect an eroor in coding the way I did
Smartasskilling: I'm using an array that uses integers for faster compiling vs lists
Smartasskilling: I dont know how tomake a github, can you help me
Smartasskilling: How can I share to you, if you know of a way to help me
Astrobytes: Paste your code here
Astrobytes: It will pastebin automatically
Smartasskilling: oh ok lol
Smartasskilling: Basically it would be easier to explain
Smartasskilling: I am running a for loop running for:
Smartasskilling: for k in range[0,max+1]:
Smartasskilling: Where max= array.pop()
Astrobytes: Honestly just paste the whole thing, someone will be more able to help you. No one is gonna judge your code ;)
Smartasskilling: Then in the for loop with a if condition im doing array.remove(k)
Smartasskilling: Ok then
pardouin: for k in range[0,max+1]:
pardouin: shouldnt that be :
pardouin: for k in range(0,max+1):
Smartasskilling: not lastbut more current one while running itbut keep going trough array with increment of one with removed array entity
Smartasskilling: Maybe I should just use an array and increase k by one except when I delete an entity
Smartasskilling: Not array but while loop sry
pardouin: a = arr.array'L',()
pardouin: should be: a = arr.array('L',)
Smartasskilling: Im on shadows of the knight ep 2 shits difficult
Smartasskilling: thx pardouin accedently shut down and just tiped quickley. will scan for errors laterbut thxanyway lol
pardouin: Yeah it's not an easy one, did it a few days ago
pardouin: I got the triple jump achievment :D
Smartasskilling: If your having trouble understanding the code ill explain, sry its a bit complicated
Smartasskilling: I want to make two arrays where at the same positionin both arrays represent an (x,y) position
Smartasskilling: Like array a is the x one and b the y one
Smartasskilling: Where example a: (0,0,0,0,0,1,1,1...) and b:(0,1,2,3,4,0,1,2...)
pardouin: you need a 2-dimensionnal array for that
pardouin: oh ok
pardouin: but why not using a 2-dim array ?
Smartasskilling: 2d would be more difficult to manage in terms of position
Smartasskilling: So here you can delete an entitiy in both say in position k that is one cordinate
Smartasskilling: Butyou cant deletean entity in one pos for 2d
Smartasskilling: My space is a bit wankey sorry
Smartasskilling: You can delete and make the array shorter in an 1d
pardouin: deleting is the wrong way to go
pardouin: remove is extremely slow
Smartasskilling: No like my space button is wankey sorry lol
pardouin: you shouldnt use array at all
pardouin: just keep track of where you are with int
Smartasskilling: I did try without arrays or lists but didnt get a solution
pardouin: but it's the way to go
pardouin: search the x then search the y
pardouin: with basic dichotomy stuff
pardouin: the hard part is what to choose for your next move
Smartasskilling: I would like to view the position as 2 arrays of x and y elements where the pos of both reperesent the position so I only have an array of the availible field and the dicrease that
Smartasskilling: Then for the next move I can view the availible field as an array and move to my current pos i array + half of array length
pardouin: there's no really benefit in moving both x and y, it makes it extremely hard to figure out the area where the bomb can be
Smartasskilling: Like area but not 2d with squire
Smartasskilling: Ok so it might be wrong or not even be able to find the bomb but I would atleast try to figure out how to do it this way
pardouin: and it's not more efficient, splitting your big matrix vertically or horizontally is not less efficient than splitting diagonally
Smartasskilling: Willmy for loop fork if I remove an entity or should I dec k with one, will a for loop even allow me to do that anyway?
Scarfield: Am trying to get visual studio to use GCC compiler to be able to profile my othello code. Am using builtin functions that are only part of GCC apparently. It seems MinGW is the way to go?
Scarfield: This is something i basicly know nothing about, so just wondering if i am on the right track, seem to remember MinGW being mentioned here before
Astrobytes: Scarprofile, hi
Astrobytes: Use the VS instrinsics
Scarfield: yo yo :vulcan:
Smartasskilling: Would anyone be willing to look at my code again and see if this could possible work in any way?
Smartasskilling: If not than thats also ok
Astrobytes: Scarfield: https://docs.microsoft.com/en-us/cpp/intrinsics/x64-amd64-intrinsics-list?view=vs-2019
Astrobytes: Just use the VS equivalents when running locally
Smartasskilling: I'm trying to write a solution for the shadows of the knight ep 2. Im finished but it spazes out
Scarfield: ah ty! :)
Astrobytes: No worries :)
Smartasskilling: Im ying while now
Smartasskilling: LOL just saw max was defined as len(a) * len(b) where max should be len(a)
Smartasskilling: len doesnt work in array with python
Smartasskilling: Got this atm while True: http://chat.codingame.com/pastebin/824f6139-b04f-4266-bd57-7dfedca80f5a
Scarfield: i havent looked at the batman 2, but round(1.5) will return 1. might be a problem(?).
Smartasskilling: Cant seem to find my current position tho
Smartasskilling: @Scarfield What do you mean?
Scarfield: that the round function rounds down for numbers with x.5, i havent looked at the puzzle, but thought you maybe need to round up for that
Smartasskilling: I'm willing to learn how to use github for help if you would flyingpirate
Smartasskilling: I didnt know that, in some cases it would be wrong you rather want a larger field than miss the bomb. I'll look int round
Smartasskilling: But rn round isnt the problem lol, i'll rather solve my search method first
Smartasskilling: Lol for a bypass to round you could use (ans*2)%2
Smartasskilling: Nah I'm not getting anywhere with the puzzle. Just fond one possible method with coding it but seem to struggle. Been taking coding with uni cause its part of my degree. Only half a year of beginner python tho.
pardouin: smartass what exactly do you want to do with these arrays ?
pardouin: and why not store couples directly in one array/set/any structure ?
Hjax: good morning
Astrobytes: Hello, nice work dude
Hjax: lol you saw my othello submit?
Astrobytes: This is with the eval?
Hjax: yeah this is EPT
Hjax: not even with a particularly good eval
Astrobytes: Nice. What depth?
Hjax: 7 random moves before the eval
Hjax: i didnt try the search variant yet, thats more code
Hjax: this version was super easy to make, only took about half an hour
Astrobytes: Good stuff. How's the Rust version?
Hjax: i wrote most of a search
Hjax: havent quite finished it / tested it though
Hjax: its kind of weird to be passing around just indexes into the array
Astrobytes: Ah you'll get used to it
Hjax: also having to build my board up as i explore the tree is new
Hjax: maybe i should have prototyped it in java first
Hjax: it was almost annoying how much stronger adding EPT made it
Hjax: the eval is almost certainly terrible
Astrobytes: Hey, it works eh ;)
Hjax: its just mobility, bonus for corner squares and edges, penalty for the squares around corners
Hjax: can beat everyone below the fox
Astrobytes: Yeah, it gets rather tough around that spot in the leaderboard lol
Hjax: i feel a little bad for tomatoe s, my bot has destroyed his rating
Hjax: im not sure why my bot is so good against yours
Astrobytes: It can smell another MCTS :P
tomatoes: maybe ept really good in this game
Astrobytes: I think so
Hjax: it definitely seems really good, theres a lot i can do to improve my eval
tomatoes: pure random rollouts are really bad
tomatoes: biassed a bit better
MSmits: thought so :)
Hjax: ^ smits gets credit, i wouldnt have tried it if he hadnt mentioned it
MSmits: nah, give me credit when I pull it off myself. will be a while
MSmits: maybe it's just a mediocre search type here and your genius made it work
Hjax: lol, unlikely
MSmits: we'll see
Hjax: do you usually wait until you have something you are pretty confident in before submitting?
MSmits: finally off work, so I hope to start on othello in a few days when i finish my owaRE STUFF
MSmits: sry caps
Astrobytes: He called you a genius Hjax, run with it :P
MSmits: hjax no not really
Hjax: i just hope it takes smits at least a few submits to pass me
MSmits: you will probably see me submit poor versions first
Astrobytes: Yeah you always need to do a few runs
jacek: 1 submit 1 legend
Hjax: oware is a somewhat neat looking game, just because its so simple looking on the surface
jacek: dont let it deceive you
Davronbek: nima gap
Hjax: so all of the things im reading say potential mobility is a good heuristic
Hjax: but it seems like it just makes my bot worse
jacek: whats potential in this context/
Hjax: number of enemy pieces that are next to an empty tile
Hjax: which are moves that arent necessarily legal this turn, but might be legal in the future
jacek: ahh, frontiers?
jacek: its helpful, really
Hjax: it sounds helpful
Hjax: but it doesnt seem to make my bot better
Scarfield: "might be legal in the future", if opponent has all pieces in the right side, so you cant capture any there, is your heristic still considering the left frontier as future legal moves? just a thought, not sure if its clear what i mean :)
Hjax: yes, but its just a heuristic
Hjax: its not perfect
struct: No true AIs yet
struct: we must wait
Hjax: struct how does it feel to see a java program gaining ranks on your othello leaderboard
Scarfield: isnt the mobility actually just the no. of legal moves, and not future possible legal moves? The less moves you have, the less "control"
Hjax: a lot of papers recommend using both number of legal moves and number of frontier pieces in your eval
Scarfield: ah okay
struct: You can win with 1 piece
struct: Not realistic, but its possible
Scarfield: what kinda bot is the boss for othello btw?
jacek: sometimes this heuristic fails https://www.codingame.com/share-replay/475243308
jacek: turn on legal moves
struct: boss is mcts
struct: See first image Scarfield
struct: white will always win
Scarfield: haha yea sure, but i only saw "The"jaw mention the future possible moves first, and not the current no. of moves as part of the heur
Smartasskilling: How do you manipulate lists like you do for a string. Like strName[a:b] but in a list. Like listName. I want the 3 to 5th character in one string in a list
Smartasskilling: using python
Hjax: you can slice lists the same way as strings
Smartasskilling: How for example do n save the third list entitys 3rd to 6th character
Smartasskilling: Like var = listName[???]???
Scarfield: i think it makes a pointer to the original list, but im very rusty in python
Hjax: listName[3:7] ?
jacek: or very pythonic in rust
Hjax: im not entirely sure what you are asking
Smartasskilling: Yeah like that
Smartasskilling: Just the format
Smartasskilling: Didnt know if it should be [3,3:7] or [3:7]
Scarfield: if you want to use the n'th index of your sliced list it should be: listName[a:b][n] though (?)
Scarfield: first you slice the original list, then choose the element in that slice
jacek: woo new puzzle of the week
Hjax: i dont calculate stable discs yet
Hjax: maybe that will be a big improvement
Hjax: the fox timed out in a test game, that counts as me winning right?
struct: (╯°□°）╯︵ ┻━┻
Hjax: have no fear struct, i will finish rust this weekend
struct: No I was just doing golf temperatures
struct: and got 93% :(
struct: I cant seem to get below 48 in ruby
jacek: in celsius?
Hjax: the return 0 for no temperatures is so annoying
struct: well in some langauges you can just do +0
Neozero: Hi, can someone help me ? I don't understand why this code in C give 8 and 23 and not 8 and 8 as output ?
Neozero: This make no sens to me.
RockyMullet: Neozero whats the context
Astrobytes: Hey Rocky o/
Astrobytes: tomatoes: nice submit!
Hjax: hey no fair
Hjax: well done
RockyMullet: oh its C, I though it was C++
Hjax: what did you change?
RockyMullet: hey Astrobytes :wave:
Neozero: Yes it's C
Hjax: are you using EPT now tomatoes?
Neozero: I want to make a linked list but with pointer to function in the linked list struct
tomatoes: ept, eval with corners and frontiers
Hjax: just corners and frontiers?
jacek: how early is ept, i see big jump in 'rollouts'
Neozero: The output didn't make sense to me.
tomatoes: 6 plies
RockyMullet: firstNode is only set in linkedList_initFirstNodeKV
RockyMullet: your puhs function only have printf in it
tomatoes: im not how big/small it should be
tomatoes: not sure*
Neozero: but the thing I don't understand is why it print 23 and not 8.
Neozero: I never set firstNode later.
RockyMullet: Also, not sure if its diferent in C but
RockyMullet: here you set a pointeur to the adress of a local variable
RockyMullet: recepee for disaster
Neozero: oh that's might be the cause actually.
RockyMullet: the local variable is destroyed at end of your scope
RockyMullet: therefore you point to garbage
Neozero: and this garbage is replaced by 23
Neozero: ok I understand better I will try to correct
Neozero: thanks for help.
Neozero: How should I rewrite this part of the code ?
Neozero: oh with malloc of course
RockyMullet: hum I dont know your intensions here, like not sure why you feel like using function pointers
RockyMullet: and yeah, if you want allocation
RockyMullet: you could also have member variables
Neozero: well to make a linked list but like that was a class. To learn some C mechanics in fact.
Neozero: member variables ?
RockyMullet: like a varaible in your struct/class
RockyMullet: thats a "member"
RockyMullet: like a local variable is a varaible you create in your functions
RockyMullet: a "member variable" is part of your calss
RockyMullet: key, value and next_node are member variables
RockyMullet: so when you instanciate a "node" variable, it will autmaticly also allocate those member variables with it
RockyMullet: so if something always need variable "potato" no point of making a pointer with an alloc
RockyMullet: you cna juste have a "potato" variable
RockyMullet: C & C++ are pretty at letting you shoot yourself in the foot with memory management, so I generally try to avoid all dynamic allocation when possible
Neozero: when I create a struct with member variable should I malloc them all ?
RockyMullet: you can see struct and class as a juste a "grouping" or variables
RockyMullet: so when you do lets say: node myCoolNode;
RockyMullet: myCoolNode already have a key, value and next_node in it
Neozero: if the three are int
Neozero: it's create (int + int + int) space ?
RockyMullet: so I'd keep the allocs for things you dont know you need or how many you need
RockyMullet: Neozero yeah you got it
RockyMullet: so in your exemple, when you create a new node
RockyMullet: in your push
RockyMullet: there you can alloc a new node and point to it with your "next_node" variable
RockyMullet: cause you want them to link to each other
RockyMullet: and you dohnt know how many ndes you have
Neozero: hmm not sure to understand this part
Neozero: at the end of this function node is destroyed ?
Neozero: node n
RockyMullet: cause its a local variable in the function linkedList_initFirstNodeKV
tomatoes: immediate eval without rollout has 100% win rate vs old version :thinking:
Astrobytes: I suspected this might work
Astrobytes: It's what we do in oware
RockyMullet: let say you make a function:
struct: Howe do this work?
RockyMullet: the variable "temp" exist only for the time of the function
RockyMullet: its a local variable, so once out of the scope of the function, this variable is destroyed
RockyMullet: actually, my params are not reference or pointers, so this funciton doesnt do anything lol
RockyMullet: since even my paramewters are local variables
struct: Astrobytes / tomatoes what do you mean by no rollouts?
Neozero: I have done this
RockyMullet: this is c++ tho, I didnt do C in like 15 years, so I forgot whats different lol
Neozero: and this work
tomatoes: just score node after selection and go for next
RockyMullet: it will
Astrobytes: yeah struct, what tomatoes said
RockyMullet: just be sur to delete that memory once in your destructor
Astrobytes: I'm sure me and Smits explained it before no?
struct: So select expand backpropagate?
Neozero: ok so in you second example you used reference ?
Astrobytes: select, expand, eval, backprop
struct: So you eval the expanded Node?
struct: or which one?
Hjax: yeah you replace doing a rollout with just a heuristic eval
Neozero: I don't like reference just for the fact that it's kind of confusing where the intent was to make pointer less confusing :)
jacek: instead of playout, you do eval
struct: ah ok
Neozero: RockyMullet 19H12 just be sur to delete that memory once in your destructor
Neozero: that's the tricky part, I should use free.
Neozero: But it's not easy for a noob programmer like me ;)
Neozero: Anyway thanks u
struct: So once you visit node again you select a children -> expand -> eval
struct: Does the children score affect parent score?
RockyMullet: yeah, just trying to help, memory leaks are not a problem in some languages with garbage collectors, C & C++ leave that responsability to you
RockyMullet: good luck :)
Neozero: yes and that what make C and C++ performe very well :)
dbdr: or languages with automatic free without GC, RockyMullet ;)
Neozero: dbdr GC is not an "automatic free" ?
dbdr: it is, but it's also possible without GC
Neozero: what are language with automatic free but without GC ?
RoboStac: modern c++ using smart pointers
Neozero: I was think that GC was an automatic free that keep track of "reference" to memory allocation.
dbdr: that's correct
dbdr: it's just not the only way
Neozero: Ok and rust do it with another method ?
Neozero: dbdr is rust worth learning ? I mean will I learn some new core concept with this language ?
dbdr: yes, it definitely has interesting concepts
dbdr: I also heard people say once you know it, it would also help you writing cleaner C/C++ code
dbdr: as it is in part inspired by the "best practices" needed in C++, but checked by the compiler
Hjax: ive been learning rust, and im enjoying it
Hjax: still have a lot to learn
dbdr: did you finish your othello bot in rust?
Hjax: not yet
Hjax: i wrote most of the search last night
Neozero: Ok I will check it out.
jacek: here's my preliminary mcts w/ ept bot
jacek: you can see how his eval jumping up and down
Hjax: the bot you just submitted?
Hjax: so its weaker than your minimax?
jacek: local testing indicates they comparable
Hjax: are you doing any rollout? or just expand + heuristic
jacek: 2 plies random moves then eval
jacek: eval from minimax bot
jacek: i started to lose to weakers, but higher winrate against tric and some win vs dbd
RockyMullet: yeah I know there are other concept that garbage collecting hehe
RockyMullet: I mean, I do all my cg in C++ and work in C++ and almost never do dynamic allocation directly
RockyMullet: there's just so many wrappers and containers that make it safer for you
RockyMullet: but I like how Neozero approachs it, start at the root, to understand how it works first
RockyMullet: seems like a good way to understand what you are doing
dbdr: jacek: your bot seems to think black has a huge advantage?
dbdr: looks like a bug to me
jacek: thats racist
dbdr: your bot is racist? :D
RockyMullet: well black starts
dbdr: sure, but do you think it wins 75%?
dbdr: btw, isn't 6x6 solved as a win for white? or 4x4?
Hjax: both are solved as wins for white
Astrobytes: Yes, as both
Hjax: its suspected that 8x8 is a draw
Hjax: although white has parity advantage (they get to move last if no one passes)
Hjax: parallel opening is believed to be a win for black
Hjax: what if theres -5 and 5
eulerscheZahl: where did that RockyMullet come from? :o
jacek: i think canada
jacek: ok time to switch back to the comfort zone
Astrobytes: You don't wanna improve your EPT version?
eulerscheZahl: you don't feel comfortable in Canada?
eulerscheZahl: "on this thing" can you elaborate?
jacek: Astrobytes my eval is not mature yet
Astrobytes: Ah I see
RockyMullet: eulerscheZahl hi haha
RockyMullet: I often play Othello, the actual physic one, with my gf and always wanted make an AI for it, since someone made a game on CG for it, half the work is done hehe
RockyMullet: I'm still working on my data and part fo a small sim
Astrobytes: Yeah Othello's a good game, on CG and irl
Hjax: i didnt even know the rules before it got added to cg
RockyMullet: also its canada day today, so I'm off work
Astrobytes: Oh Canadaaaa, Happy Canada Day
RockyMullet: thank you hey
eulerscheZahl: you still have to visit CG occasionally to know about the port here
RockyMullet: yeah cant remember what made me see it
eulerscheZahl: nice to see you without a contest
Astrobytes: Yeah I spotted when you submitted (last week?) but you'd gone offline by the time I saw
RockyMullet: my nxt objective is to make a decent offline debugger for next contest
RockyMullet: I'll probably use some of the stuff you posted euler, to grab the input of a game
eulerscheZahl: *insert advertising for the playground*
RockyMullet: I totally failed in the end of pacman because I had no proper way of debugging my sim
eulerscheZahl: you don't really need it on a full information game
RockyMullet: Astrobytes I only submited a "always last" move bot
Astrobytes: Ah I see
RockyMullet: eulerscheZahl I'll probably test it on pacman actually
RockyMullet: oh I think thats why I saw othello, was working on it for pacman
eulerscheZahl: good candidate: fog of war but not too complex game logic
RockyMullet: Astrobytes I'm working on an actual bot right now
Astrobytes: Good. Watch out for that boss, it's badass
eulerscheZahl: it's feasible
RockyMullet: I'm going for what seems to be the obvious approach, minmax
Astrobytes: People are having success with that yep, some MCTS variants too
RockyMullet: I might "cheat a bit and hardcode a couple of first moves trying to go full dept offline
dbdr: FunckyFizz: no
eulerscheZahl: go to tech.io
eulerscheZahl: or ideone
dbdr: RockyMullet: wouldn't full depth be solving the game? :)
Astrobytes: Oh btw dbdr, is it regular probcut or multi probcut you use?
Astrobytes: Nice. Seems appropriate.
RockyMullet: dbdr yeah well, this game seems "finite"
dbdr: chess is finite too
RockyMullet: it seems simpler that chess tho
RockyMullet: I'm just in theory land rn :D
dbdr: it is. but people have been searching on it for years and not solving othello
RockyMullet: really ?
RockyMullet: oh well
RockyMullet: I guess I wont go smash my facxe into that wall then :D
jacek: maybe they werent on CG yet
RockyMullet: I'll forget that idea haha
struct: Yeah its above checkers
RockyMullet: hey struct
RockyMullet: thanks for the game :)
jacek: everyone is talking about it for past week
RockyMullet: ok I win against my old bot who only ouput the last possible move haha
Astrobytes: Everyone jacek?
Hjax: 32 straight losses to jacek
Hjax: can i have one win please?
RockyMullet: I might rank worse tho
struct: wow you, are starting to get some wins vs dbdrt
RockyMullet: my new bot just goes for whatever gives the most point rn, which often lead to a an early advantage, totally destroyed by huge lost in the end
jacek: most pieces?
RockyMullet: but at least my sim works
RockyMullet: yeah most piece with a bit of heuristic in the mix
jacek: what ive done works, but i dont know why
RockyMullet: the best kind of code
Hjax: are your heuristics top secret jacek
Astrobytes: What have you done jacek?
Hjax: hes trading games with dbdr now
Hjax: so he definitely made something better
jacek: well im using typical heuristics + n tuples network
RockyMullet: yup, my new bot ranked worse than my "always output alst possible move" bot lol
RockyMullet: oh well
Astrobytes: Oh you have it working now, cool
Hjax: n tuples network?
jacek: trained by temporal difference + some self supervised learning
Hjax: fancy, ill give that paper a read, thanks :D
struct: 42% winrate, big improvement
jacek: there is also usage for 2048, http://www.cs.put.poznan.pl/wjaskowski/pub/papers/Szubert2014_2048.pdf
jacek: yeah and i think i know im printing quite garbage eval to the msg now
jacek: or not
Hjax: so you just take some subset of the board, and use its state to index into an array of weights (one set of weights for each board subset), and you sum the scores accounting for symmetries
Hjax: with some fancy tuning for the weights
jacek: simples 'n-tuple' would be one square - like corners are good and next-to corners are bad
jacek: but it doesnt take into account that if corner is taken by player, then player should likely put stone next to that corner
jacek: with 4x1 or 2x2 tuples its more visible
Hjax: that makes sense
Hjax: its like piece square tables, but in a way that can make positional judgements
Astrobytes: Pretty cool
Hjax: how many self play games did you play to train it jacek
jacek: several hundred thousands
Hjax: wow thats a lot
Hjax: are the top bots here superhuman already?
struct: What do you mean by superhuman?
struct: If they beat humans?
Hjax: if they would beat the best humans
struct: I guess its hard to test
Hjax: i ran my random rollout mcts against a human a few days ago and it got owned
jacek: just find online othello site and write bot for it and see
Hjax: i was just entering moves by hand lol
struct: history of what?
Astrobytes: Concentrate really hard, and try to remember your life
struct: There is more stuff than clashes, so its not obvious
struct: only if you see history on browser
struct: and check clashes reports
Hjax: youll find most of the messages in chat are from people playing bot multis, not clash
struct: or you can press the bell near your name on top right
RockyMullet: mostly to gamify the platform
RockyMullet: but you can always try to brag about it
RockyMullet: on a resume, the more "job related" you can brag about, the better
RockyMullet: there are 2 things on CG
RockyMullet: levels that you get by gaining XP over time
Astrobytes: "show off about it"
RockyMullet: and rankings which is based on multiplayer games
RockyMullet: like Astrobytes said hehe
RockyMullet: the guy who showed me CG, was an ex colleague of mine and I know he bragued about being 2nd in canada on his resume
Astrobytes: Where is he at now RockyMullet?
RockyMullet: still at my old job, im the one who left lol
Astrobytes: I meant his ranking :P
struct: I guess the person who was above him was rec urse
SPDene: host your own clashes, so you get to choose the mode
struct: or martin since he is old on this site
RockyMullet: I think he is lead prog now
RockyMullet: struct it was before they changed on the ranking works
struct: Mal30 reducing code is creative
RockyMullet: when levels actually mattered in the rankings
SPDene: use it as an opportunity to learn aspects of the language you didn't know, by looking at other people's code, @Mal30
RockyMullet: he is actually 54th in canada now :P
Astrobytes: lol, no longer CV-worthy
RockyMullet: im 19th, damn you reCurse *shake fist in the air*
struct: you are not 19th in canada
RockyMullet: oh nvm
struct: general leaderboard
RockyMullet: misschecked the leaderboard
RockyMullet: im 3rd
RockyMullet: and he is 32nd
RockyMullet: martin is 2nd, he actually live in my city and I have no idea who he is, so misterious hehe
Astrobytes: Is your ex-colleague still active on CG?
RockyMullet: first beind reCurse obviously
RockyMullet: not much
RockyMullet: most of my ex colleague were like tryhard for 1-2 contest, then moved on
LelouchVC2: How about your ex-wife?
RockyMullet: I never married so...
jacek: HelloWorld183L how about sorting
LelouchVC2: sounds like the life
Astrobytes: RockyMullet yeah it's a shame when people don't stick around
LelouchVC2: Dont worry astrobytes
LelouchVC2: I'll always be here for u
RockyMullet: Ashraful do bot programming or contests, whatever involved other coders
RockyMullet: its based on on well you do against others
Astrobytes: LelouchVC2 I meant sticking around on CG
LelouchVC2: Yea, I'll always be here for you on CG :)
RockyMullet: personally that what motivates me, competing
LelouchVC2: If he'll have me
RockyMullet: dont have to be number 1, otherwise I'd be depressed by now lol, but I like a good old tryhard session
Astrobytes: Quite a few of my dev friends don't want to compete, which I find odd. Even if they didn't wanna compete you'd think they might find it a nice challenge at least
LelouchVC2: not everyone is competitive
Hjax: competitive programming is the best kind
LelouchVC2: Idk about that
RockyMullet: yeah its something I realized, SPECIALLY with lead programmers and people higher in the herachy, they are affraid of not being the best and look bad
RockyMullet: which is kind of sad
Astrobytes: Yup, when actually you can have a bunch of fun doing it anyway
RockyMullet: so they just, dont do it
LelouchVC2: Coding overload
RockyMullet: egos are stupid
LelouchVC2: Not really
LelouchVC2: I doubt an employer will be like, "WOW! He's such a great clasher!"
RockyMullet: I see it more as a way to learn, improve and pratice, than a way to get hired
Astrobytes: RockyMullet: Yep. And also the "Ah I don't know anything about that, I'm not good enough" people
Hjax: you might be able to talk about algorithms you used in a multi in an interview
LelouchVC2: If u have ascii dicks in all of ur answers
LelouchVC2: u get hired immediately
LelouchVC2: algorithms, nokes and crannies of ur language, problem solving skills
Astrobytes: Yeah Hjax, providing you can describe what you were using it for that's 100% on point
RockyMullet: Astrobytes yeah, the im not good enough, its pretty sad cause thats pretty much why I like it so much here, I make video games, I do make video game AI, but its so different, I learned a lot here
RockyMullet: by getting out of my confort zone
LelouchVC2: othello is gay
RockyMullet: ok calm down big boi
RockyMullet: we see you
LelouchVC2: I added 2 if statements and that apparently makes my code take too long somehow
Hjax: that has nothing to do with othello
struct: Not game problem
Astrobytes: RockyMullet Exactly! I'm a biologist ffs, I've learned everything I know about actual game-playing AIs on here
LelouchVC2: I know, I'm taking it out on othello
LelouchVC2: like men take it out on their wives
Astrobytes: (as opposed to video game AI that is)
RockyMullet: video game AI is meant to be fun and understandable, CG AI is meant to crush your enemies :smiling_imp:
LelouchVC2: Anyway, something must be broken.
LelouchVC2: I literally just created a few vectors and a couple of if statements
LelouchVC2: and it times out
RockyMullet: LelouchVC2 you might have a code path that doesnt output anything
RockyMullet: this leads to a timeout
LelouchVC2: I put and output marker that it never reaches rockymullet
Astrobytes: Yes. Massive difference of the two RockyMullet. Video game AI is designed to be beatable :D
LelouchVC2: Just says did not output in time, and there's no reason as far as i can see
Hjax: your program probably never outputs, its not a matter of speed
Astrobytes: paste your code, we can maybe help
Hjax: it just doesnt work
LelouchVC2: If i put the cout << before the if statement
LelouchVC2: it outputs
LelouchVC2: if after, it doesn't
LelouchVC2: the if statement literally just checks some math
LelouchVC2: There's no errors or crash
RockyMullet: some times it crash and says its a timeout
LelouchVC2: no timeout, just did not output in time
RockyMullet: same thing
LelouchVC2: a timeout is usually followed by a crash
LelouchVC2: because it loops infinitely or something
LelouchVC2: But if it says it did not output in time that usually just means the code is not optimized
Astrobytes: Paste your code and we'll take a look, it's not a clash
RockyMullet: im pretty sure you just dont output anything
RockyMullet: thats the problem 99% of the time
LelouchVC2: Again, it outputs before the if statement
LelouchVC2: doesnt after it
LelouchVC2: I'll look at it for a sec and if i cant figure it out and ill copy it over
darkhorse64: Astrobytes: paste the six letters
Astrobytes: darkhorse64 I stopped posting them and just get them to hover over my avatar these days ;)
Hjax: what kind of challenge HelloWorld183L
RockyMullet: HelloWorld183L a lot of the challengeds have dicussions on the forum
Astrobytes: jacek :joy:
RockyMullet: you can always dig there for inspiration
RockyMullet: jacek it actually happened to me
Hjax: i wouldnt recommend looking up the entire answer though
Hjax: you dont learn much when you do that
RockyMullet: kind of hard to type like that
LelouchVC2: there we go, fixed the issue
RockyMullet: Hjax yeah, thats the danger of looking up the final answer, you copy and dont actually understand the solution
RockyMullet: LelouchVC2 what was the problem ?
Astrobytes: That really boils my piss
LelouchVC2: The compiler is just retarded so it couldn't tell that i was going out of bounds on an array
RockyMullet: so you crashed
LelouchVC2: silent crash, no error, nothing
Astrobytes: OK darkhorse64, I'll do it now. P E B C A C
LelouchVC2: i used -'0' instead of -'a'
RockyMullet: yeah you need to do some conversion in othello
Hjax: problem exists between cat and computer? :P
RockyMullet: like the lines starts at 1, not 0
LelouchVC2: problem exists in 1972 compiler
LelouchVC2: If it crashes, it should say something
LelouchVC2: If it doesn't crash, then there's no reason for it to not pass the if statement
RockyMullet: what language are you using
RockyMullet: well, in an IDE, it would be obvious
darkhorse64: I'd say PEBCACisis, averty bad disease
LelouchVC2: Visual Studio would have given me the right signals
RockyMullet: if you are using a c array, and index is nothing but offseted pointer
Hjax: you are welcome to develop in visual studio and copy and paste into codingame
LelouchVC2: I used a vector
LelouchVC2: it should have thrown an out of bounds error
LelouchVC2: Thats one of the main points of a vector
Astrobytes: Yeah, you know, if you use them wrong they don't work
RockyMullet: yeah well C++ is an awesome beast that needs to be tamed :P
LelouchVC2: Visual Studio always crashes if you go beyond a vector's allowed capacity
LelouchVC2: Just a different coding environment that you have to get use to
RockyMullet: yeah well CG is not always really specific on how it crashes
RockyMullet: and yeah sometimes it says it timed out when it actually crashed
LelouchVC2: IQ ++
RockyMullet: yeah well its probably because they handle so many different languages
RockyMullet: so the "generic" way must be "if anything fails, say it timedout"
RockyMullet: pure assumption here
struct: CG allows stderr
struct: lots of sites dont have this
LelouchVC2: Just sad cause I was all hyped about coding it when I started
darkhorse64: There is nothing like CG in terms of IDE, content
LelouchVC2: There was no indication that the program crashed or did anything
darkhorse64: The main activity of a coder is not to add code but to remove bugs. Use cerr liberally
LelouchVC2: when ur coding is left wing
LelouchVC2: but u only eat the right wings of chickens
Astrobytes: Oh yeah, LelouchVC2, stop posting stupid/polarising comments to get attention btw, you'll get more if you're on topic - just some friendly advice
LelouchVC2: Astrobytes it's for amusement, not attention
Astrobytes: Amuse yourself in other ways
Astrobytes: Like fixing your bugs
LelouchVC2: I didn't know I entered the soviet union
RockyMullet: yeah, you are walking the line...
Astrobytes: Post whatever you like, I don't give a damn. But you'll have a better time if you quit being a shitposter
Aviolezt: hey can anyone explain to me smth?
LelouchVC2: what is it?
Aviolezt: Im doing the Chuck Norris problem and I solved it but when I run it here it doesnt work
Aviolezt: in VS it does
Aviolezt: its absolutly the same
LelouchVC2: Is there an error or does it simply output wrong?
Aviolezt: its says my input is "nothing" but I give it an input
Aviolezt: and if i test with other values it shows them
LelouchVC2: You can send ur code over
Aviolezt: weird af
RockyMullet: I think excel is VBA
RockyMullet: if whatever I learned 15 years ago is still valid :P
RockyMullet: so might be slightly different