From CG community
Revision as of 11:47, 15 June 2021 by Chat Log (talk | contribs) (Created page with "File:Default_avatar.png Laurencechenyi: byte <img src=/a/46205762317937> levuduy_software: Please share code..tks so much <img src=/a/46205762317937> levuduy_software: I...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Default avatar.png Laurencechenyi: byte

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

Default avatar.png OndrejBakan: same. :D

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

Default avatar.png OndrejBakan: Meanwhile I get CAPTCHA before every round... :D

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ử

Default avatar.png edwintyx: hello

Default avatar.png BaP: có ai VN hong

Yolo_Swagosaurus: OndrejBakan probably skipping too many rounds

thongvo109: có

thongvo109: đang

thongvo109: làm dart

thongvo109: mù tiếng anh khoai vl

Default avatar.png tanmaycodernovice: @Seni-J ????

Default avatar.png tanmaycodernovice: dm

caubeloatchoat24: Chào các bạn Việt Nam nhá

jacek: ?

darkhorse64: Today World is VIetnam

AntiSquid: english or go to #VN

Default avatar.png PolygonCAt: g

Default avatar.png Atheros: CS0117: `System.Math' does not contain a definition for `Clamp'

Default avatar.png Atheros: Any idea why i get this, i have included System, and the params for Clamp are good.

Astrobytes: Hjax made some nice improvements in Othello I see

Default avatar.png Iuliep: how can i see the codingamers that are in my company/school?

LelouchVC2: They see you

LelouchVC2: You cant see them

Default avatar.png Iuliep: :(

Default avatar.png Iuliep: thanks for the answer

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'

Iuliep: thanks

Astrobytes: np

Smartasskilling: Anyone in chat that can help me with a for loop and removing an entity in python?

Default avatar.png FlyingPirate_a6de: Smartaskilling

Default avatar.png FlyingPirate_a6de: hello

Default avatar.png FlyingPirate_a6de: do you still alive ?

Smartasskilling: yeah

Default avatar.png FlyingPirate_a6de: yup, I suggest to use list

Default avatar.png FlyingPirate_a6de: is it ok ?

Default avatar.png FlyingPirate_a6de:

Default avatar.png FlyingPirate_a6de: list = [1, 2, 3, 1]

Smartasskilling: havn't finished coding but I suspect an eroor in coding the way I did

Default avatar.png FlyingPirate_a6de: can you share to me

Default avatar.png FlyingPirate_a6de: I want to play game a bit

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

Default avatar.png FlyingPirate_a6de: uhm, sorry I also quite new with all of these thing

Default avatar.png FlyingPirate_a6de: I just try to play and learn

Default avatar.png FlyingPirate_a6de: :)

Smartasskilling: How can I share to you, if you know of a way to help me

Default avatar.png FlyingPirate_a6de: copy past directly to this place ?

Astrobytes: Paste your code here

Default avatar.png FlyingPirate_a6de: is it possible ?

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):

pardouin: ?


Default avatar.png FlyingPirate_a6de: seem you want to remove the last entity

Default avatar.png FlyingPirate_a6de: in a array

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

Default avatar.png FlyingPirate_a6de: I'm checking python syntax :)

pardouin: a = arr.array'L',([])

Default avatar.png FlyingPirate_a6de: I'm just back from long long break :)

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

Default avatar.png FlyingPirate_a6de: sorry but I still not clear solution here

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

Default avatar.png FlyingPirate_a6de: yup

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 ?

Default avatar.png FlyingPirate_a6de: ok

Smartasskilling: 2d would be more difficult to manage in terms of position

Default avatar.png FlyingPirate_a6de: design seperately like this

Smartasskilling: So here you can delete an entitiy in both say in position k that is one cordinate

Default avatar.png FlyingPirate_a6de: will make thing more difficul

Default avatar.png FlyingPirate_a6de: 1 possition will be 1 element

Default avatar.png FlyingPirate_a6de: which content position : x, y value

Default avatar.png FlyingPirate_a6de: then you will have array of multiple points

Smartasskilling: Butyou cant deletean entity in one pos for 2d

Smartasskilling: My space is a bit wankey sorry

Default avatar.png FlyingPirate_a6de: if space is limitted we can shift element

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

Default avatar.png VictorThanhVo: @smartasskilling what code are you referring to? :D

Astrobytes: Scarfield:

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 :)

Default avatar.png FlyingPirate_a6de: I try to run using for loop

Default avatar.png FlyingPirate_a6de: python

Default avatar.png FlyingPirate_a6de: to delete 1 element in a range

Default avatar.png FlyingPirate_a6de: like this

Default avatar.png FlyingPirate_a6de:

Default avatar.png FlyingPirate_a6de:

Default avatar.png FlyingPirate_a6de: but I see it isn't good because for loop keep size of array not change

Default avatar.png FlyingPirate_a6de: then we will be access over limit of array of deleting

Default avatar.png FlyingPirate_a6de: after

Default avatar.png FlyingPirate_a6de: maybe while loop will be better

Smartasskilling: Im ying while now

Smartasskilling: trying

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

Default avatar.png FlyingPirate_a6de: this one is working

Default avatar.png FlyingPirate_a6de:

Default avatar.png FlyingPirate_a6de: with result

Default avatar.png FlyingPirate_a6de: [1, 3, 4] [1, 4] [1, 4]

Smartasskilling: Got this atm while True:

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

Default avatar.png FlyingPirate_a6de: Smart I have to go for some task now. But if after 3 hours I will be back and see if any good news :)

Smartasskilling: Lol for a bypass to round you could use (ans*2)%2

Default avatar.png FlyingPirate_a6de: else let continue learning

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.

Default avatar.png FlyingPirate_a6de: python is like that easy learn and forget

Default avatar.png FlyingPirate_a6de: just idea is still there

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: Yup

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

Default avatar.png sHlOk: Hi everyone!

Astrobytes: Ah you'll get used to it

Astrobytes: hi

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

tomatoes: good

Hjax: lol

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

Astrobytes: ^

Hjax: lol

Davronbek: hi

Davronbek: hello

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?

Hjax: yeah

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: oof

struct: :(

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

jacek: turn on legal moves

struct: boss is mcts

struct: See first image Scarfield


struct: white will always win

struct: black*

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[3]. 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

Scarfield: ^

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][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: Thx

Hjax: np

Smartasskilling: Didnt know if it should be [3,3:7] or [3][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

Default avatar.png Harshit_Gupta: Hello world! It is a very amazing platform!

Scarfield: :vulcan:

Default avatar.png Harshit_Gupta: :innocent: Finally, we programmers can have a two-way interaction, and not just our own print()! Loving it!

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

tomatoes: :grinning:

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'

Astrobytes: Nice

Neozero: The output didn't make sense to me.

tomatoes: 6 plies

RockyMullet: firstNode is only set in linkedList_initFirstNodeKV

RockyMullet: Neozero

RockyMullet: your puhs function only have printf in it

tomatoes: im not how big/small it should be

tomatoes: not sure*

Neozero: yes

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

Neozero: Yes

RockyMullet: therefore you point to garbage

Neozero: and this garbage is replaced by 23

RockyMullet: likely

Neozero: ok I understand better I will try to correct

Neozero: thanks for help.

RockyMullet: np

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

Astrobytes: yep

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: hum

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: no

RockyMullet: you can see struct and class as a juste a "grouping" or variables

Neozero: Yeah

RockyMullet: so when you do lets say: node myCoolNode;

RockyMullet: myCoolNode already have a key, value and next_node in it

Neozero: okey

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

RockyMullet: nodes*

Neozero: hmm not sure to understand this part


Neozero: at the end of this function node is destroyed ?

Neozero: node n

RockyMullet: yes

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

RockyMullet: better:


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

Neozero: ok

RockyMullet: yeah

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: Yes

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 ?

dbdr: rust

RoboStac: modern c++ using smart pointers

jacek: ;scream:

Neozero: I was think that GC was an automatic free that keep track of "reference" to memory allocation.

Neozero: Ok

dbdr: that's correct

dbdr: it's just not the only way

Neozero: Ok and rust do it with another method ?

dbdr: yes


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

Default avatar.png BigBadClown_b2a3: I might be stupid

Default avatar.png BigBadClown_b2a3: I spend 10% of my time solving and 90% screaming "WHY"

tomatoes: js?

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?

jacek: eeyup

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

Astrobytes: -as

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

Default avatar.png BigBadClown_b2a3: what the fuck

Default avatar.png BigBadClown_b2a3: I'm doing a temperature problem, and it doesn't work with negatives

Default avatar.png BigBadClown_b2a3: but why would negatives matter when I use the absolute value?

Hjax: what if theres -5 and 5

Default avatar.png BigBadClown_b2a3: not solving that part yet, just trying to get code that consistently works

Default avatar.png BigBadClown_b2a3: but yeah, now that I think about it since it doesn't differentiate between negatives that wouldn't work

eulerscheZahl: where did that RockyMullet come from? :o

jacek: i think canada

Astrobytes: :smirk:

jacek: ok time to switch back to the comfort zone

Astrobytes: You don't wanna improve your EPT version?

Default avatar.png EvilClown_490c: Any way of getting a terminal on this thing. Would be really helpful (for Python 3)?

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: :grinning::flag_ca:

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

Default avatar.png FunckyFizz: Is it possible to have a Python terminal on here?

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

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?

dbdr: multi

Astrobytes: Nice. Seems appropriate.

RockyMullet: dbdr yeah well, this game seems "finite"

dbdr: chess is finite too

RockyMullet: yeah

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: 10^28

RockyMullet: okay

RockyMullet: I'll forget that idea haha

struct: Yeah its above checkers

RockyMullet: hey struct

RockyMullet: thanks for the game :)

struct: hi

struct: np

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

RockyMullet: progress

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?

Astrobytes: Hjax

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,

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: yes

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

Default avatar.png Titimy: hey is there a way to see my history ?

struct: history of what?

Astrobytes: Concentrate really hard, and try to remember your life

Default avatar.png Titimy: XD

Default avatar.png Titimy: history og my clashs

Default avatar.png Titimy: obviously

struct: nah

Default avatar.png Titimy: :/

struct: There is more stuff than clashes, so its not obvious

struct: only if you see history on browser

Default avatar.png Titimy: oww sorry i'm new to the platform

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

Default avatar.png Titimy: okay

Default avatar.png Ashraful: It was fun

Default avatar.png Ashraful: Has levels in codingame real values? I mean for jobs

RockyMullet: no

RockyMullet: mostly to gamify the platform

Default avatar.png Ashraful: Oh, ok

Default avatar.png Ashraful: Where can I see ranking?

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

Default avatar.png Ashraful: What do you mean by "brag"?

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

Default avatar.png Ashraful: ok

Default avatar.png Ashraful: Isn't there global level ranking?

struct: yes


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

Default avatar.png kkkkkkl: Just 1 question

Default avatar.png kkkkkkl: how old are u guys

Default avatar.png Ashraful: I loved the site very much

Astrobytes: Where is he at now RockyMullet?

RockyMullet: still at my old job, im the one who left lol

Default avatar.png Ashraful: I am 13 from Bangladesh

Astrobytes: I meant his ranking :P

struct: I guess the person who was above him was rec urse

Default avatar.png Mal30: is there a way to avoid "short mode" in clashes?

Default avatar.png Mal30: they are dumb and boring

Default avatar.png Mal30: nothing creative about reducing code by characters

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

Default avatar.png Ashraful: I am completely new to CG. but I love this site much

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

struct: ah

Default avatar.png Mal30: if you measure code by its simplicity, yes. But not by character count

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

Default avatar.png Mal30: thx for the suggestion @SPDene - I'm sorry, I'm just not motivated for such

RockyMullet: im 3rd

RockyMullet: nice

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

Default avatar.png HelloWorld183L: anybody familiar with "Horse-racing duels" to give me hints to what modification of the input data I need for (N-1 comparisons)?

LelouchVC2: How about your ex-wife?

RockyMullet: I never married so...

jacek: HelloWorld183L how about sorting

Default avatar.png Ashraful: How to earn CodinPoints?

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

Default avatar.png Ashraful: okay

LelouchVC2: Yea, I'll always be here for you on CG :)

Astrobytes: Thrilling.

LelouchVC2: <3

RockyMullet: personally that what motivates me, competing

Default avatar.png HelloWorld183L: ahh I didn't count the sorting as a loop because I was thinking of using LINQ (no loop)...

Default avatar.png Ashraful: Okay, it's then a CodinGame marriage corner.

Default avatar.png Ashraful: I was just kidding

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

Default avatar.png Mal30: is this a great platform to get hired from?

RockyMullet: egos are stupid

Default avatar.png Mal30: if you perform good at the code clashes?

LelouchVC2: Not really

Default avatar.png Mal30: damn

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

Default avatar.png Mal30: but what if I include ASCII dicks in all of my submitted answers?

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

Default avatar.png HelloWorld183L: much more to it then just algorithms I would've thought...

Default avatar.png HelloWorld183L: for hiring i eman

Default avatar.png HelloWorld183L: mean*

Default avatar.png Mal30: well, looks like my future is sealed

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

RockyMullet: well

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

Astrobytes: ^

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

Default avatar.png HelloWorld183L: how long should you spend on a challenge before giving up and finding a solution?

Astrobytes: darkhorse64 I stopped posting them and just get them to hover over my avatar these days ;)

Hjax: what kind of challenge HelloWorld183L

Default avatar.png HelloWorld183L: one that feels like it's within reach but you just can't get to the answer


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

LelouchVC2: C++

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

RockyMullet: ^

LelouchVC2: :o

Aviolezt: hey can anyone explain to me smth?

Default avatar.png Mal30:

Aviolezt: ty

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

Aviolezt: code

LelouchVC2: Is there an error or does it simply output wrong?

Default avatar.png radowns: different inputs?

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

Default avatar.png ACSmith: Hi, new to is equivalent to excel's vb?

RockyMullet: I think excel is VBA

RockyMullet: if whatever I learned 15 years ago is still valid :P

RockyMullet: so might be slightly different

Default avatar.png JBM: i'm still curious about a definite answer to that

Default avatar.png boinkus: My question is bugged

Default avatar.png boinkus: Everyone has gotten 0 on it and the console is making no sense