Chat:World/2022-02-03
YCSVenom: how can i check back my recent clashes
YCSVenom: so i can solve them comfortably without time
5DN1L: Search here, YCSVenom https://eulerschezahl.herokuapp.com/codingame/puzzles/
5DN1L: No way to look for just the ones you had in clashes though
V1kt0rCZ: Hello
YCSVenom: that's really cool thanks bro
5DN1L: :)
Aymend: Hey
iLikeHoney: there should be a button that leads you directly to the next puzzle without going back to the puzzles list
5DN1L: There is no "next" puzzle to speak of. You can choose whatever puzzle you want to solve in whatever order
iLikeHoney: there is a default order tho. So far I solved the puzzles in the order they were given to me
5DN1L: What default order?
iLikeHoney: the tutorial one, the mountains, the thor ragnarok, the temperature
iLikeHoney: now I m at the mars lander
5DN1L: That is not a default order... that is just the usual order...
5DN1L: and even those can be solved in any order
iLikeHoney: I know, I know
iLikeHoney: so there is a order :relieved:
5DN1L: any order isn't an order, but i'll stop here
iLikeHoney: i was referring to the 'usual order', but I'll stop here too
5DN1L: Automaton2000 give me an order
Automaton2000: you can check the forum
5DN1L: good idea
VictorSaucisson: I agree
5DN1L: your spam is unwelcome
5DN1L: you're warned
5DN1L: CAL22
VictorSaucisson: when ?
5DN1L: no excuse
5DN1L: next time you're kicked
YCSVenom: is "Better than >99%" is the most that you can get from skill test?
5DN1L: Your suggestion is...?
YCSVenom: i mean is there 100%?
[CG]Thibaud: no
iLikeHoney: the most you can get is to solve the entire test
YCSVenom: i solved all correctly
YCSVenom: it*
iLikeHoney: than that's all that matters
iLikeHoney: congrats
iLikeHoney: then*
YCSVenom: thanks
One-Six: I think I finally completely understood how Lua's file:read() behaves
5DN1L: Oh, One-Six, what have you discovered?
One-Six: I've been using io.read('n') to quickly read a number; but, if after that line of number are lines of input data, and I simply use io.read() again, I always got a empty line first before I got the rest of the data
5DN1L: ah ok
One-Six: I overlooked the fact that when reading only a number, Lua will just stop the "cursor" immediately after the end of number, before the newline character
One-Six: thus resulting in that extra unwanted newline
5DN1L: but if all the lines contain just numbers, would that still read unwanted newlines?
One-Six: lemme check
One-Six: I know Lua is assume the number may have spaces around them, I think it will treat newlines as whitespaces and ignore them if it's all numbers
5DN1L: yup, i think that's how it works
One-Six: yep, looks like it
One-Six: but if I need to read string after numbers, I should've done number=io.read('n','l') to read and discard that extra newline
One-Six: now, last time I got stumped by this, I tried io.read('nl') in desperation and somehow that worked that one time....??? Now that I tested this in isolation, looks like 'nl' behave exactly like 'n'
5DN1L: haha interesting
One-Six: 'nl' isn't legal by the official reference manual anyway though, so I will just assume it's some undocumented quirkiness
lunarfirefly: :grin:
lunarfirefly: is this webchat cross-connected to the discord server?
lunarfirefly: :o
ycsvenom: why am i receiving the skill test result on my old email even though i have changed it before the skill test!?
5DN1L: [CG]Thibaud may be able to answer you
ycsvenom: is he around?
ycsvenom: or i should get to him?
5DN1L: He seems to be online
Yourjs: hi I am ujjwal panchware from india
DCVolo: Hi, how do i disable the IDE "local popup help frame" ?
DCVolo: (the hover thing)
5DN1L: Not sure what you refer to. What does it say?
DCVolo: the inner frame from CG IDE that is shown only when i hover my mouse over a function , variable etc
5DN1L: Look for SETTINGS on the left hand side of the IDE page
5DN1L: then maybe adjusting the Editor configuration there may help
DCVolo: it's too often misplaced, instead of being on top of the variable function, it's placed based on the cursor and so most of the time i can't access my code and click on that frame :/
DCVolo: already took a look at that, there is nothing about this
5DN1L: change editor.hover.enabled to False?
DCVolo: I didnt have that line yet, seems to be working fine, thank you ! :)
5DN1L: oh great :D
H7KZ: hey i missed you 5DN1L
H7KZ: are you there?
5DN1L: don't miss me.
5DN1L: just be good.
H7KZ: Oh I do miss you
H7KZ: I will ask my teacher if we can play :) uwu
5DN1L: play a clash, don't play in the chatroom
H7KZ: why couldnt we
H7KZ: :(
H7KZ: you mean
5DN1L: this is not a playroom
5DN1L: this is a chatroom
H7KZ: you are right, we are not playing.. we are chatting
H7KZ: why are you so mad
5DN1L: i'm too busy to chat with you.
5DN1L: You behave well
5DN1L: No disruption, then all's fine
H7KZ: you can trust me ;) uwu
BadBurger: not that awsome at math, is atan2 what i want if i want to know what angle point2 is to point1?
BadBurger: or atan2*pi
BadBurger: no thats not it
5DN1L: Try testing the function with some pairs of (delta_x, delta_y) to see if it fits your purpose
5DN1L: note that atan2 outputs radians, not degrees
Fasader: don't you need 3 points to get an angle?
5DN1L: i think he means the angle of the direction
BadBurger: yeah angle of direction
BadBurger: trying this but.. somethings is off
BadBurger: var dx = (ship.x - landing_pad_locations[0][0])
var dy = (ship.y - landing_pad_locations[0][1]) var ang = Math.atan2(dy, dx) * 180 / 3.1415
BadBurger: ah, it didnt pastebin it.
5DN1L: i think you need at least 5 lines to pastebin
5DN1L: what's off?
BadBurger: trying to draw a line on that angle but it misses target. maybe my drawline is off
BadBurger: this is the code to draw line from mars lander to landingpad, im doing a graphic sim
BadBurger: http://chat.codingame.com/pastebin/09ef8da9-31d0-4c28-96c3-6d2cc4bcd332
DaNinja: dx = targetx - shipx
5DN1L: Why use 3.1415 on one hand and Math.PI on the other hand?
BadBurger: i changed it to check if its faster
BadBurger: thx daninja, il try that
DaNinja: x = cos(a) * r; y = sin(a) * r
BadBurger: this code, gives me x: -5928 y: -920
BadBurger: and landing pad location = 4000, 150, 5500, 150
BadBurger: http://chat.codingame.com/pastebin/812b259b-3cdd-4290-a72a-ff422b788b9a
DaNinja: dont convert atan2 to degrees, leave it as radians
BadBurger: dam i should have paid attention math in school.
BadBurger: yay it worked, thx
DaNinja: cool
Elena.: Hey, does anyone know how to make this any shorter?
Elena.: http://chat.codingame.com/pastebin/2656179b-c78b-45f9-8ae2-d7b975ea5406
struct: https://clemg.github.io/pythongolfer/
Elena.: Invalid syntax ;/
Elena.: and unexpected EOF
jacek: oO
WhaIe: @Elena. Instead of list(z()), you can write [*z()]
struct: oh no idea then
Elena.: @Whale Thanks ^^
Elena.: @struct it does seem to work in my IDE but not in codingame
Elena.: I managed to fix it by doing what @Whale suggested and then putting it through Python Golfer again lol
Elena.: Thanks for the help ^^
jacek: maybe it created unreadable unicode char
Wontonimo: Whale, that list conversion is a new one. totally makes sense but i've never seen it before
5DN1L: https://medium.com/understand-the-python/understanding-the-asterisk-of-python-8b9daaa4a558
5DN1L: I use the * too. For example, answer = [], then put all the required output in it, and finally print(*answer)
5DN1L: then there's your output with spaces in between each item
5DN1L: print(*[4, 5, 6]) => 4 5 6
Elena.: That's how I usually use it too. Haven't used it to unpack a generator
Elena.: quite neat
5DN1L: yup
Wontonimo: the #clash channel has seen more usage ;) that's cool
5DN1L: nice
Wontonimo: my world chat bot went offline last night once my server (personal laptop) went to sleep.
struct: you have a chat bot?
5DN1L: yes, see it in action #wontotest (it's working in this channel too)
struct: whats the bot name? maybe its still offline
5DN1L: the automated reply comes from Wontonimo's account
5DN1L: it's not a separate account
struct: I need to ping him then?
BlaiseEbuth: Mean that the bot can kick/ban... :scream:
struct: ah its a moderator bot
5DN1L: yup
5DN1L: now responding to clash links only
Killuaa: what script behind u,bot?
Astrobytes: nice bot, I approve
Astrobytes: does it warn and kick on repeat offences?
5DN1L: Not yet I think. More features to be added :D
Astrobytes: Cool. Very handy :)
5DN1L: :thumbsup: to Wontonimo
Astrobytes: For sure. Nice work.
Astrobytes: also, hi everyone
Astrobytes: struct: how are you getting on with the derivatives?
struct: im restarting now
Astrobytes: cool, get some rest?
struct: yes
Astrobytes: nice one. I think you'll be fine with it.
struct: yeah it doesnt seem like hard math
struct: you jsut need to undertand it
Astrobytes: It's easier than it looks
BlaiseEbuth: f and f' are on boat, f fall in the water, what does f'?
ninjadip: fall out of water
ninjadip: or float/fly up
ninjadip: is the compliment to it's x,y,z or to it's state? like does the opposite become drier if one is wet? or just move opposite
BlaiseEbuth: Oo
BlaiseEbuth: f and f' are on boat, f fall in the water, what does f'? -> It derives
Astrobytes: :door:
**BlaiseEbuth is already far away...
Astrobytes: lol
electrogiant: hello
ninjadip: heller
electrogiant: if i dont get the answer to a clash of code how do I find it out ?
ninjadip: pray
electrogiant: :sob:
struct: https://eulerschezahl.herokuapp.com/codingame/puzzles/
ninjadip: thought your name said electrojoint at first with my terrible eyes
ninjadip: does anyone hard a hard time knowing when a problem is "naturally recursive" ?
ninjadip: have a hard time..*
Wontonimo: like what?
struct: what is naturally recurisve?
ninjadip: some video i was watching about when to use recursive functions, it said when the problem is naturally recursive
ninjadip: something about if the work can be split naturally
ninjadip: without it looking forced
ninjadip: that's when to use recursion vs iteration
ninjadip: just have a hard time thinking what's naturally recursive
therealbeef: fractals?
ninjadip: or when to use a recursive solution vs iteration. as i've only done recursion once or twice as an example in class
ninjadip: in relation to coding problems therealbeef, not anything
ninjadip: is there any advice anyone can offer on when to use them? or not
therealbeef: depth first search
Astrobytes: I guess if you're using a stack in an iterative process you can use recursion if you have the stack space and time isn't a problem
ninjadip: recursion doesn't equal more processing time per se
Astrobytes: I meant in terms of time complexity, sortry
Astrobytes: *sorry
BlaiseEbuth: Use recursion when you need to explore parallel possibilities with different evolution of the same initial values. aka a tree
Astrobytes: I don't think I ever heard the term 'naturally recursive'
ninjadip: ah
ninjadip: ty BlaiseEbuth
ninjadip: that makes sense
ninjadip: so anything tree like, or with in depth permutations
ninjadip: Astrobytes time to code should be less if you are using the right one. I had this crazy long iteration function in tic tac toe, now in recursion it's 1/10 of the size
Astrobytes: time as a function of input size, I mean
Astrobytes: the recursive code will indeed be shorter, that's another good reason to use it if you have the stack space
helpmefindaname: is there a way to play a clash again (in a sandbox mode/alone) after you saw it online?
darkhorse64: something is natural when you don't know how to explain or justify it
ninjadip: hm
5DN1L: helpmefindaname Search here: https://eulerschezahl.herokuapp.com/codingame/puzzles/
Wontonimo: +1 darkhorse64
helpmefindaname: thank you
darkhorse64: It was the favorite word for one of our "Président de la République". Everytime he said something dubious, it was "natural"
darkhorse64: he was saying ... Poor English
ninjadip: sounds more like unnatural lol
Astrobytes: which one? When I hear 'dubious' I think Sarkozy
darkhorse64: Chirac
Astrobytes: lol, not much better
jacek: oh my https://i.redd.it/nsuxcsijxkf81.jpg
Astrobytes: oh dear
darkhorse64: :rofl:
Wontonimo: love it. there's a good message there
Astrobytes: Yep. You can build anything with lego, not just the model on the box
Astrobytes: :P
Wontonimo: ninjadip , all recursion can be converted into a loop with a stack or queue
Astrobytes: ^ what I said earlier in a less succinct way
ninjadip: Wontonimo i know that they are interchangeable, was asking more when to use one vs the other and i think i got it. just to use it more to have it as a viable option for me against future problems
ninjadip: i heard it makes nearly identical machine code,
Wontonimo: i maybe use recursion too much. personally i like it for problems that are a loop with stack management.
Wontonimo: idk about that
struct: I never use recursion
Wontonimo: recursion will use "The Stack"
jacek: even for minimax?
ninjadip: just waht some youtuber said
struct: i dont use miimax
struct: minimax
Wontonimo: which is way smaller than allocatiing a stack
Astrobytes: ^ hence my "if you have enough stack space" comment
Astrobytes: recursion is nice on paper
Astrobytes: and quite elegant at times in practice
ninjadip: and sometimes very nice in code too
Astrobytes: yep
ninjadip: that's what i was trying to say ealier, if the code looks natural in a recursion then it's a good fit
ninjadip: is what i had gathered from this video
ninjadip: if it looks forced you should be using iteration and vice versa
ninjadip: if you are using iteration and using a recursion style solving process you're code will reflect that
struct: I guess thats why he mentioned natural
Wontonimo: for this problem https://www.codingame.com/ide/puzzle/paving-with-bricks
Wontonimo: i started with recursion
Wontonimo: bad mistake
Wontonimo: switched to a stack with a loop and it was way faster
Wontonimo: and looks cleaner tbh
Wontonimo: breaking out of a loop is faster than breaking out of a deep recursion
Astrobytes: if time complexity and stack size isn't an issue it's fine to use recursion, otherwise don't - even if it seems a good fit (unless it's a pre-set exercise you have to do)
ninjadip: can someone help me explain the first line of output on this?
ninjadip: http://chat.codingame.com/pastebin/e70d0198-98ac-49a3-9677-c98d0c7ec368
ninjadip: http://chat.codingame.com/pastebin/92b52d32-cb89-4282-97ff-bb7d8758207e
ninjadip: trying to figure out that first line of output as 0, instead of 100 000 000
ninjadip: duh i think i see it
ninjadip: too big for container
ninjadip: /data type
Astrobytes: hm?
ninjadip: tryin to set this uint16_t to 0b100 000 000 and i'm getting 0
Astrobytes: ah
ninjadip: i thought it was big enough for that
struct: because you are only showing 8 bits?
struct: ah
struct: didnt read everything
struct: sorry
Astrobytes: well, that is correct struct
Astrobytes: as in it won't show 0
Astrobytes: (when you use bitset<16>)
[CG]Thibaud: hey Astro, struct and others
struct: hi
[CG]Thibaud: shared this earlier in #fr, the Spring Challenge 2022 will take place at the end of April and will be an AI challenge
struct: o.o
struct: nice
[CG]Thibaud: official comm will happen when the artwork is ready
struct: feel free to contact me if you need a tester
Astrobytes: :tada:
Astrobytes: Hi Thibaud
Astrobytes: that's great to hear, thanks :)
[CG]Thibaud: A new hope :grin:
Astrobytes: hehehehe
darkhorse64: is this a clue ? :angel:
darkhorse64: just kidding
Magus: The next theme will be star wars !
Magus: Oh wait, they can't anymore
Astrobytes: :P
darkhorse64: valerian & laureline is cheaper
Astrobytes: Space Fights
therealbeef: mad space cowboys
struct: oh it will be 3D
Astrobytes: that would be interesting
**Magus thinks about his Firefox dying with a 2d viewer ...
Magus: Yeah ... 3d would be interesting
Astrobytes: lol right
Magus: Firefox will finally lives up to his name and really be on fire
Astrobytes: :D
struct: finally some good news
struct: We need to bring back euler
Astrobytes: I've passed the message on
struct: :thumbsup:
MeDev: it doesn't fit to bitset<8>
Wontonimo: wow, thanks for the heads up [CG]Thibaud !
jacek: phew
struct: jacek rank 1 next contest
jacek: in 1 submit
struct: or delete
Wontonimo: and if you do get it in 1 submit, you have to make a long winded explination about how you are taking a long break
struct: im already training my NN for next contest
struct: gl
jacek: GGP NN?
darkhorse64: muzero NN
struct: it will be knighttrough to follow the breakthrough success
darkhorse64: not sure you will get as many players although it should not be hard to write a bot for it
struct: its a copy paste basicly
darkhorse64: but you need a new eval
darkhorse64: ?
struct: my bt eval is mediocre
struct: I could probably just eval the material and get away with it
darkhorse64: 12th when I am 25th not too bad
struct: do you use mcts there darkhorse64?
struct: my bot only does well because it solves quite early
darkhorse64: mcts-ept
darkhorse64: I should use the early win code you posted
struct: did you save it?
darkhorse64: :wink:
struct: I would share it again if it was needed :p
struct: im sure there is some stuff that can be done to check wins from 5th row but its not trivial
JoeZhang123: Chat sectionkj,,bvmfhyyyyyytgbnjhgvbnhgvbnhgvbnhgvbnhgvbnhgvbnhgvbnhgvbnhgvnhgvbnhgvbnhgvvvvvvvvvvvvvvhgvbhgvbnhgvbnhgvbnhgvbnhgvbnhgvbnhgvbnhgvbnhgvbnhgvbnhgvbnhgvbnhgvbnhgvbnhgvbnhgbnhgvbnhgvbnhgvbnhgvbnhgvbnhgvbnhgvbnhgvbnhgvvhvvhvhvhvvhvhvvhvhvhvhvhvhvhvhvhvhvhvhvhvhvhvhvhvhvhvhvhvvhvhvhvvhvhvhvhvhvhvhvhvhvvvhvhvhvhvhvhvhvhvhvhvhvhvhvhvhvhvhvhvhvhvvvhvhvhvhvhvhvhvhvhvvhvhvhvhvh
5DN1L: no spam please
5DN1L: you're warned, JoeZhang123
5DN1L: next time you spam you'll be kicked out
JoeZhang123: Sorry. I was just playing around and accidentally hit enter. It wont happen again
Lambert_W_Function: good morning people
BadBurger: marslander, how would a math expression look that calculated how many steps it would take to slow the ship down? adding it to score evaluate
Wontonimo: for mars 1 ?
BadBurger: i can only sim it but it seems like a waste of processing time
BadBurger: ....no
Wontonimo: so, what do you want to calculate exactly?
Wontonimo: slow down in the Y direction ?
Wontonimo: to a stop?
BadBurger: im working on marslander 3, gave up on it couple years ago, but got back into programming here
Wontonimo: yeah, mars 3 was hard for me. took a month
BadBurger: yeah, to calc my speed, and gravity, and how many steps it would be required to stop with thrust 4
Wontonimo: there is physics for that V^2 = 2aS
Wontonimo: where V is velocity a is acceleration S is distance
Wontonimo: solving for S, is V^2 / 2a
BadBurger: thx
Wontonimo: and since at most you can apply 4-3.711 m/s acceleration
Wontonimo: it is S = V^2 / (2*(4-3.711))
Wontonimo: in the Y direction only
Wontonimo: if your angle is Zero
Wontonimo: that doesn't give time
eulerscheZahl: struct 04:58PM finally some good news We need to bring back euler
BadBurger: nice, thx, yeah Y only is enough, im adding this to score eval, so if its impossible to land safely, it discards that sim instance
eulerscheZahl: i've spotted a toad signal
BadBurger: hi euler, long time ago, i see you have not got bored yet :D
emh: I wish there was an optimization puzzle for approximately calculating the number of maximal independent sets in a graph. and I wish to possess the #1 solution :) . probably a randomized algorithm
Wontonimo: if you want to solve for time then the formula to use is S = 1/2at^2 + vt and solve for t
Wontonimo: make the puzzle emh and they will come
eulerscheZahl: hi BadBurger, actually i did. haven't coded a bot since the last contest
emh: Wontonimo hehe. not sure I have the energy. at least right now
BadBurger: thx for your help wontonimo
BadBurger: okay, about contests, anyone know when the next starts? they used to be blast, but only for a fresh one,
Wontonimo: the Spring Challenge 2022 will take place at the end of April and will be an AI challenge
Wontonimo: posted early today by Thibaud
BadBurger: ai challenge as in controlling a bot or something im not good enough to join? :D
BadBurger: like machine learning
jacek: like multiplayer game
BadBurger: ah yeah, those were fun as h.. last contest i played, i think it was the cars that needed to suck oil
eulerscheZahl: that was in 2018
eulerscheZahl: mean max
eulerscheZahl: is it still mean max?
BadBurger: yeah, it was awesome, i remember you there euler, and the russian.
eulerscheZahl: recar did well, we were in the lead for a while
eulerscheZahl: then the other overtook
eulerscheZahl: https://www.codingame.com/contests/hypersonic since when can we see the contest announcements again?
struct: hi euler
eulerscheZahl: hi tobou
struct: wdym by contest announcements?
eulerscheZahl: did you click my link? it's the full contest page with prizes and all
struct: it was always visible?
eulerscheZahl: oh, took me just shy of 6 years to spot that
jacek: :older_man:
eulerscheZahl: astro just told me about a clash moderation bot, now I want to see it in action. https://www.codingame.com/clashofcode/clash/220680522ec6f1b70a1d7ad95395ef9d5fc2326
wontonimo: [automated] hey eulerscheZahl, dont paste those links here. Use the channel #clash
eulerscheZahl: :D
eulerscheZahl: now add a counter to detect repeated violations
struct: watchout 2nd time is a ban
eulerscheZahl: let me see
eulerscheZahl: https://www.codingame.com/clashofcode/clash/220680522ec6f1b70a1d7ad95395ef9d5fc2326
struct: ;D
wontonimo: [automated] hey eulerscheZahl, dont paste those links here. Use the channel #clash
eulerscheZahl: oh
eulerscheZahl: you lied to me
**struct bans euler
eulerscheZahl: go ahead. next time i'm online, the chat will have been rebooted
struct: lol
struct: the bot will have a ban list
struct: and ban everyone once it joins
Rebollo: Guys someone mentioned here in the chat that I was allocating the node one-by-one and it would be better to allocate man at the same time..
Rebollo: But I dindt get how to do that
Rebollo: I dont remember aalso who told me that
struct: do you want to allocate all at the same time?
eulerscheZahl: big static array?
eulerscheZahl: "allocate man" are you playing 9 men's morris?
Rebollo: Its a tree where I am controlling the possible paths of golf balls to the holes
struct: struct Tree { Node* nodes; }; Node* Tree::nodes = new Node[46'000'000]();
struct: a wait
struct: I forgot static
struct: struct Tree { static Node* nodes; }; Node* Tree::nodes = new Node[46'000'000]();
eulerscheZahl: is that ' in the number valid code now?
struct: yes
eulerscheZahl: interesting. I know about _ in other languages
Rebollo: why ou choose this number?
Rebollo: 46'000'000
eulerscheZahl: are you trolling me again?
Astrobytes: and it's encouraged to make use of the '
struct: im not euler
struct: Rebollo its the max number of nodes I can allocate
jacek: trolling? who? Automaton2000?
struct: or close to it due to ram size
Automaton2000: you will love it have a good evening
eulerscheZahl: that's for chars. C++ re-purposing things again
struct: also works like this 0b'000'000'000
struct: I think
eulerscheZahl: https://koukia.ca/digit-separators-in-c-7-0-8280b5317fdf
eulerscheZahl: that's what I know from C#
Rebollo: And insnt it a memory wast if I am not using all of them?
Astrobytes: it does struct, yes
struct: well i dont know if i will use all of it
struct: yeah but the ' cant be right after the b
struct: I just tried to be sure
Rebollo: AAnd where this limit number come from?
struct: 768MB
struct: limit for all CG machines
Rebollo: nnice to know thanks
Astrobytes: euler, with C++ it's been like that since C++14
Astrobytes: at least
eulerscheZahl: i learned C++11 at university, i'm that old
Astrobytes: I initially learned a bit pre c++11, I'm *that* old
struct: just wait until you see modern c++ code
Astrobytes: 20 looks interesting
eulerscheZahl: my first was turbo pascal with an editor that didn't support the use of a mouse. my teacher at school was that old
struct: o.o
Rebollo: nice
struct: rebollo care about static though
struct: if you have multiple trees
struct: all will be sharing the same nodew
struct: nodes*
struct: I think better way to do this is just
Astrobytes: I learned to type (officially, in school) on old IBM machines with 5¼-inch (actually floppy) floppy disks, school didn't have much of a budget
struct: struct Tree{ vector<Node*> nodes(46'000'000); };
struct: the memory will be allocated once you create the tree
struct: at least I hope it will
eulerscheZahl: i never learned proper typing. using my own system to this day
Rebollo: thankYou I will do that
Rebollo: how about programming in punched cards?
eulerscheZahl: i can type blindly but not utilizing all 10 fingers
Astrobytes: it was necessary to learn this way to pass the business studies course, I had my own way already by that age
Rebollo: My mother used to programming using cards where you do a hole on it to create the rules aand give it to the teacher
Rebollo: next dy he come back with dump
Astrobytes: this was the class where we had to type to the rhythm of Boney M songs
Astrobytes: Rebollo, punchcards! Nice!
Rebollo: I probably caan´t write aa Hello Worl with this method
Rebollo: imagine how differente waas the coding processing
Astrobytes: I'm sure you could if you learned ;)
Rebollo: You have to caare bout all the limitations of resources aas well
Rebollo: soo nice my mother used to coding in FORTRAN
Astrobytes: To be honest, the world would be a better place if everybody programmed as if they had very limited resources
Rebollo: right!!
Astrobytes: Systems might be a little more efficient for a start!
jacek: like on CG?
Astrobytes: I don't mean cramming everything into weird unicode characters
eulerscheZahl: read a news recently, microsoft recommending that you keep your computer online for at last 2h without interrupt so it can download updates
struct: ?
Astrobytes: 2. Hours.
eulerscheZahl: and 6 to install
struct: must be for W11 or something
struct: My pc doesnt support it
Astrobytes: lol what
Astrobytes: Same struct
eulerscheZahl: read like it doesn't continue the download but completely restarts it
struct: This seems like a thing that happened to 1 person and made it to the news
eulerscheZahl: https://www.heise.de/news/Microsoft-Updates-Zu-kurze-Online-Zeit-verhindert-Installation-6344845.html
Astrobytes: updates always run fast on my windows box
Mrs.GloriaZindlebocker: I used to cut a little notch into my floppies to make them double sided
Rebollo: My mother, 50 years ago, created a statiscs program the output the probality of finding crude/petroleum in a certaing place
Astrobytes: lol at the notch cutting, forgot about that
Astrobytes: Rebollo: that is pretty awesome
Astrobytes: sad it's about fossil fuels but still a cool program and achievement
Rebollo: Quantitative Method in Oil Drilling
Rebollo: amaazing
Astrobytes: Was her thesis project or work?
Rebollo: octoral edgree thesis
Rebollo: Doctoral Degree
Astrobytes: Excellent. Your mother is awesome
Rebollo: in Quantitaative Methods
Rebollo: She is
Rebollo: Unfortunaattlly my dad didd not "aloow" her to work
Astrobytes: Damn, that's sad man.
Astrobytes: "Traditional values"
Rebollo: yes
jacek: computers then wouldnt fit in kitchen anyway
Rebollo: 50 years ago in brazil
Astrobytes: back in your box jacek
Rebollo: How aabout in your country?
Rebollo: Was the same 50 eyars ago?
Astrobytes: yes Rebollo, your mother was pushing boundaries for sure. And yes, still is to some degree for people of a certain age or upbringing
jacek: wah, computers here 50 years ago!?
Astrobytes: There are people I went to school with and younger who believe a woman should be in the kitchen only, sigh
Rebollo: One computer occupied like a big room
Rebollo: AAre you guys professional coders? I am a BI consultant,. Basic create maanagement reports using SQL, an frontends like PowerBI, Tableau an etc..
Rebollo: Working for Intel at the moment
Rebollo: as Contractor
eulerscheZahl: i'm getting paid for coding. but as a single developer in a department that does other stuff (CAD design)
eulerscheZahl: i do all from windows desktop to web development as we see need
Astrobytes: Hobby coder here
MrAnderson: Former coder here, moved on to more of an architect
helpmefindaname: I am a data scientist/ML-Engineer
jacek: android developer :scream:
Rebollo: http://chat.codingame.com/pastebin/c3eb9f2e-ddaa-46f1-8403-d79632f4d26b
Rebollo: In this case
Rebollo: Can I just initiaalize the node in the constructor?
Rebollo: nodes*
struct: its already initialized
Rebollo: where?
struct: once you do
struct: int main(){ Tree tree; }
struct: all the 46M will be initialized
struct: I think
struct: or its before im not sure how it works
struct: I just know it does
Rebollo: but where is this guy?
Rebollo: objectsNode* Tree::nodes = new objectsNode[46'000'000]();
Rebollo: outside the struct, in the main?
struct: just outside the struct
struct: also outside of the main
Rebollo: wow
eulerscheZahl: right after your header includes
eulerscheZahl: and after the struct definition of course
Rebollo: what if I move it to the Tree contructor? Why you choose doiing like thaat?
Rebollo: like
Rebollo: http://chat.codingame.com/pastebin/0c462873-f6db-4bd0-9d30-e11fd153c265
Rebollo: Hum, because they can be use indepentetly to the tree right
Rebollo: And I crete just once
Rebollo: I got it
eulerscheZahl: rubber duck debugging at its finest
Rebollo: no no I think I don´t
struct: the code you pasted here before should work fine
struct: but I would not use 46M
struct: since your objectsData is probably bigger than 16 bytes
Rebollo: But why you suggest to have "nodes" (plural") inside the tree once a need only to track the root reference and thigs like that?
Rebollo: why a vector of nodes inside the tree?
eulerscheZahl: the children of each node
eulerscheZahl: where to expand to
struct: yeah I expand on the tree
struct: it depends on your code
struct: You can also just make a global variable
Rebollo: their position on the vector, in this case has a meaning or not necessarily?
Rebollo: Or keep using linked lists?
struct: well its your choice how to keep track of it
Rebollo: cause I have like pointers to "right", "left", "down", "up", "parent" and "next"
Rebollo: in the Noe
Rebollo: Node
eulerscheZahl: not sure what they mean and how they differ
eulerscheZahl: up vs parent?
Rebollo: let me make aa diagram one sec
eulerscheZahl: down? the tree gets wider at each level
struct: I think he is solving the golf puzzle
struct: winamax
Rebollo: They represents the possible Paths
eulerscheZahl: oh right. i got that and forgot it again
Rebollo: firtMovemment can be represent any direction
Rebollo: second asa well
Rebollo: aand so on
eulerscheZahl: no MCTS, sorry
Rebollo: Is this solution riddiculous?
Rebollo: What would be your strategies?
eulerscheZahl: bruteforce the hell out of it
eulerscheZahl: worked for me
eulerscheZahl: https://i.imgur.com/gKEsyM8.png where did the pictures go?
struct: no idea
eulerscheZahl: also: switched to flameshot for screenshots. pretty handy as it's not a browser addon so i can screenshot everything and it can upload directly to imgur :)
eulerscheZahl: do you have the pictures?
struct: on incognito it doesnt show for me
eulerscheZahl: funny
struct: you dont like shareX?
eulerscheZahl: i don't know shareX
struct: ah I think its windows only
eulerscheZahl: used lightshot before but more often than not the upload got stuck as the server was unreachable
struct: flameshot looks to have nice features too
Rebollo: http://chat.codingame.com/pastebin/de04d007-17fc-4ce3-9c7c-d99e4715ed4f
Rebollo: each node has 4 child wich represents the direction RDLU
Rebollo: And to make easy to navigate in the tree
Rebollo: trey have also next(same level move)
Rebollo: and parent(go baackwrds)
Rebollo: Each ball has it own tree
Rebollo: I an golf game
Rebollo: Once I reach a node that I cant go annywhere I go back
Rebollo: till I find I possible way to the hole
Rebollo: But different balls can find the same hole, and it is not possible, so I need to test some combinaatios till each ball has found one hole and all holes has been found
Rebollo: seems easy but..not for me
Rebollo: I tried recursion
Rebollo: And things get crazy
Rebollo: It inverts everything
Rebollo: never will undertand the recursion behavior
Scarfield: there is a lot of bad material explaining recursion out there, found a good article, but cant find it again :'(
Rebollo: always use factor
Rebollo: ALWAYS
jacek: to find recursion you need to find recursion first
Scarfield: factor?
Astrobytes: factorisation
Scarfield: !?
Astrobytes: yep
Rebollo: factorial
Rebollo: like 10!
Astrobytes: ^
Rebollo: AALWAYSSS
Astrobytes: factorial is what I meant
Scarfield: i like you knew what i meant with !? xD
Astrobytes: hehehe
Astrobytes: Spring challenge is bot programming Scarfield :tada:
Scarfield: i just found out there is an interactive demo of smash the code
Scarfield: YUS!
Astrobytes: End of April, formal announcement when artwork is completed
Scarfield: how do you know, it doesnt say on the page
struct: no annoucement yet but thibaud said it on the chat
jacek: can we trust him?
struct: yes
struct: he was the one that said the fall challenge was a escape
struct: and that was true
Scarfield: nice! i am sure its solely because of my 1 forum post
Astrobytes: obviously ;)
struct: what did you post?
Rebollo: can I get the return "description" as string?
Rebollo: ENUM*
Rebollo: like :
Astrobytes: as in enum to string?
Rebollo: enum Direction : int { UP = 0, RIGHT, DOWN, LEFT };
Rebollo: aaan get "LEFT"
Scarfield: there was a small thread where a few of us cried about escape as contest
Astrobytes: Not currently in C++, you'll have to write your own code to do that
struct: just do if else
struct: in a function where you pass the enum
struct: or something
Astrobytes: or a switch
Rebollo: wow
Rebollo: have to suplicaate the object maybe
Rebollo: create a vector of texts
Astrobytes: well, a simple array would be enough, then you could do enumStringArray[LEFT] and get "LEFT"
Scarfield: did not expect bot programming contest, am actually kinda stoked, will make sure to tell CG staff that as well
Rebollo: yes
Rebollo: Ill do that
Astrobytes: FWIW I think they're fully aware of our thoughts on the matter Scarfield :D
struct: Theyll need to do some work on the announcemenet
Astrobytes: wdym struct?
struct: probably lost a few registrations due to the previous contest being an escape
struct: basicly you could register right after contest ended
Astrobytes: ah right, heh heh, indeed
struct: before
Scarfield: true, but i voiced my dissapointment at escape contest, it only seems fair to voice that im happy with bot programming
Astrobytes: Also true Wisefield
Scarfield: i didnt register untill a few moments ago
Scarfield: I am very wise in the ways of science
Astrobytes: Not registered as of yet, going euler style this time around
struct: ill register to pump the numbers
stocklog_: is there any like normal (not game) puzzles
stocklog_: or is it only clash of code?
Astrobytes: hundreds, under Practice in the top menu
Alshock: There are bots versus, and solo puzzle
Astrobytes: Also bot programming, optimisation and code golf in multiplayer
Alshock: not sure what you call "a game"
Astrobytes: hi Alshock
Alshock: hi Astrobytes
Astrobytes: happy for the contest?
Astrobytes: lol, just saw discord, that'll be a 'yes'
Alshock: yep, I'll make sure to have time for this one, I usually just skip them and work on the bots afterwards
Astrobytes: lol, definitely make the most of it while it's happening. Who knows if / when there will be another :D
anneonyme: hello is there any way to send a private message to someone?
struct: click their name
struct: or follow each other and then you have that option on your profile
Mrs.GloriaZindlebocker: they only care about MAU here. as long as you drop in once a month to complain, all is well
jacek: MIAU?
Mrs.GloriaZindlebocker: monthly active users
jacek: oh my
Jayarrowz: Why does comments count as char count
Jayarrowz: i've lost like 10 times due to comments
Jayarrowz: :{
Zsu: imagine java code against python for the shortest mode...
jacek: imagine bringing knife to a gun fight...
Scarfield: https://xkcd.com/1890/
Astrobytes: classic
Manchi_o6o7: Hey guys. Has someone tips how to get a remote internship?
Wontonimo: you asked me yesterday
Jayarrowz: Imagine python against c# if we had a benchmark mode
Jayarrowz: :)
Manchi_o6o7: I know, but it is not bad to get advice if someone has direct experience about internships and recruiting
struct: HI
pablodev: Hi Manchi im waiting response for internship too
BadBurger: not too happy with my marslander algo, i have made a good path finder that draws a good path to landingpad with 300xy interval
BadBurger: did a visual offline sim for it. but im not too happy with how ive implemented the lander to follow the path.
BadBurger: probably could improve alot by making a better scoring system. but is there anything i can read to get some better ideas of how to get the lander to follow a path i have as xy coordinates
BadBurger: ?
BadBurger: maybe its kinda broad question.
Wontonimo: what is your scoring heuristic?
Wontonimo: you probably are not using straight line distance
Wontonimo: cuz otherwise you'll crash into the side of the cave
Wontonimo: i made a grid, where each grid square represents about 20x20 coordinates, and I flood fill that, going around the cliff outcrop
Wontonimo: the flood fill keeps incrementing, so it is a distance lookup
Wontonimo: if i crash into a wall, i look up the flood fill distance to get the heuristic score
BadBurger: im using the lander2 maps since im still building some fundametnals. my scoring is a mess, but it favours the path for scoring, but has some ngative modifiers, such as speeds. i sim 200 ships at a time for 10loops, and pick the best ship, it takes that ship as starter point, and loops 10 frames again.
BadBurger: sometimes it sticks to the path like a train, but sometimes like a headless chicken
BadBurger: the path os qiuite smooth curved, with alot of points, it gives better score the closer it follows the path.
Wontonimo: i don't have a path, i have a distance field, and a landing error. crash off the pad and the landing error is largest. crash on the landing pad but not too bad, the error is a bit bad
Wontonimo: don't make it to the landing pad, the error is less than a crash, but just
Wontonimo: total heuristic score is distance (using flood fill) and landing error
BadBurger: yeah i have finished 50% on mars lander 4 with just a small sim and ifs, but im enjoying creating this but i feel im not that educated in different algos and have a lack of math expressions
Wontonimo: lander 4?
BadBurger: 3, lol
Wontonimo: can you send me a replay of both the caves ? By seeing the behaviour i may be able to suggest something
BadBurger: i dont use that code, and i made it 4years ago on python2.7 wich is no longer supported in cg, its on python3 but python 2.7 cont have same syntax
Wontonimo: ah
BadBurger: and the current im doing locally, i built a graphical sim
BadBurger: so i can understand pathfinding and bots better
BadBurger: or behaviour
Wontonimo: do you have something working for mars 1 ?
Wontonimo: that you can share?
BadBurger: aint marslander 1 just a single row puzzle?
Wontonimo: optimize it! use the least amount of fuel possible. here is mine https://www.codingame.com/replay/606574054
Wontonimo: and that way you know that your landing algo is bang on
Wontonimo: so, how much fuel does your lander have left?
BadBurger: il do marslander1 now and check if i get close to you
Wontonimo: 300 is the target, anything higher is just gravy
Wontonimo: try to land with a vertical speed that you set. My lander is set to land with 39m/s, the absolute highest allowed
darkhorse64: 321 is the best I could do
ElJafar: yo
Wontonimo: wow, you beat me by a large margin
struct: hi Wontonimo I seem to have finished derivatives and partial derivatives
struct: It seems easier now
wontonimo: [automated] hey there struct
struct: o.o
Wontonimo: haha
Wontonimo: i forgot i make that automated response
Wontonimo: so, now that you know about derivatives, you can rest assured that you'll probably not ever need to use it
struct: o.o
Wontonimo: but it will help with understanding
Wontonimo: like knowing basic assembly
struct: Yeah
struct: its more like to understand how it works right?
Wontonimo: yeah
Wontonimo: and that will already put you km ahead of others who just use libraries
struct: the partial is to measure how much one input affects the output right?
Wontonimo: i'm actually not even all that knowledgable of partials. tell me more about it
Wontonimo: oh, maybe i am and i forgot the name
Wontonimo: that's when you only do parts at a time
CCampa: someone tryna slide answers?
struct: yeah its similar to derivatives you just have to do for each independent input
struct: so if you have f(a,b,c) you need to do for each one
Wontonimo: oh funny, i just helped my daughter with partial derivatives last week. totally forgot the name of it
Wontonimo: yeah, it's a good method for break down a problem
struct: tomorrow ill dive down into backprop, was gonna be today but i wanted to understand this well
Wontonimo: youll beat me to it!!! OMG :scream:
struct: beat on what?
Wontonimo: still havent applied my NN knowlage to CG
struct: oh but you already understand them
Wontonimo: but not at CG optmi level
struct: im sure you can do it
struct: you even have muzero has a source if you want
Wontonimo: im just lazy
struct: maybe you just do it too often that you dont have motivation to do it here
Wontonimo: no, what it is is that I know it's actually quite a bit of work to get the whole pipeline going
Wontonimo: and there isn't much visible progress until it is all done
struct: you dont need to write the training part do you?
Wontonimo: and i'm kinda in an immediate gratification mood these days
struct: you can just use some framework
Wontonimo: yeah, for sure. definitely would use tensorflow
Wontonimo: I'm not completely ignoring my machine learning background. I'm actually really stoked about my lates contrib to puzzles
Wontonimo: very much ML and data science
CCampa: this man triple texted
Wontonimo: i'll kick myself, thanks
Wontonimo: /kick wontonimo
Wontonimo: struct , are you going to test out your first NN bot on oware ?
struct: probably breakthrough
Jerryh12: Won when are you gonna test talking to some girls
Alshock: I hate to admit it but I tried to make a simple NN on Oware (to stay below 100k without any trick)... Well it's not THAT bad, it's just worse than my MCTS :sob:
Wontonimo: how long did you train and what approach did you use? all 1hot like jacek ?
WellyBelly: "I hate to admit it but I tried to make a simple NN on Oware (to stay below 100k without any trick)... Well it's not THAT bad, it's just worse than my MCTS" :nerd:
struct: How about you tell us what you did WellyBelly?
Jeff12123: welly has done alot throughout his life
Jeff12123: look how old that man is hes about to die
WellyBelly: im 80 years old
WellyBelly: i fought in wwII
WellyBelly: Nam
WellyBelly: Iraq
WellyBelly: 9/11
Wontonimo: stop spamming
Jeff12123: thanky ou for ur service
Wontonimo: hey Alshock, can you share any insight into how long you trained, size of data set, architecture of NN ?
Juicer24: :triumph: pussy repellant
Wontonimo: Juicer, you've been kicked for 10 min
Jeff12123: :rage: not cool dude
Wontonimo: you are welcome to come back if you behave
Astrobytes: haven't you got this automated yet?! :D
**e_fishel slaps Juicer24 around a bit with a large fishbot
Wontonimo: this is a public chat. respectful behaviour is manditory
Alpha.Queen: ???
dmuraco: homie said p**** repellent
Wontonimo: okay, there are a lot of new people here
Astrobytes: I see I dipped into the webchat at the worst possible time
Wontonimo: let me give everyone who is under level 5 a warning now
dmuraco: facts let em know big boss man
Wontonimo: keep it coding related or on topic
WellyBelly: U tell these youngins wontonimo
Wontonimo: Juicer24 has been kicked for 10 min
Alpha.Queen: um i got that part
dmuraco: wontonimo hit the griddy
Alpha.Queen: and i was here for what he said but still y
Jeff12123: fr wontonimo the goat
Wontonimo: sigh... okay. that was all your warnings. talk about code or get kicked.
struct: or banned
struct: whoever types fsater
Jeff12123: so wellybelly have you completed a project on NN
dmuraco: how to code bot that hits the griddy?
Wontonimo: dmuraco you have been kicked for 10 min. you are welcome to come back if you behave
Juicer24: what c++ youtubers do you guys like to watch? trying to learn more
WellyBelly: Jeff I have not completed a project on NN.
Wontonimo: watch "the coding train" for programming know how if you are learning
WellyBelly: But i flew a chopper in nam
Wontonimo: WellyBelly has been kicked
Alpha.Queen: ummmm so I have a question
Juicer24: but wasnt it related to coding?
ninjadip: mirror: yes, you're the prettiest, meanest alphaqueen in the land
Juicer24: anyways what do you guys think the hardest part of machine learning
Alpha.Queen: Fuck you asshole
Astrobytes: If anyone actually *does* want a decent C++ youtuber, there's OneLoneCoder aka javidx9 aka David Barr. Also does fun things like robotics, has his own game/graphics lib (and terminal graphics too), discord server is fun
Juicer24: how about you actually get some *bitches*
Wontonimo: Juicer24 has been banned
Wontonimo: bans are permanent
Astrobytes: And the queen one?
Wontonimo: just kicked
ninjadip: lol
Wontonimo: struct beat me to it
ninjadip: now she's yelling at me privately
Wontonimo: now banned
ninjadip: told me it's my fault she got kicked
struct: well now she is banned
Astrobytes: with these kind of kids, ban early to avoid ruining chat
Wontonimo: +1
ninjadip: thinking back.. i'm surprised i wasn't banned. hopefully i wasn't that bad
Astrobytes: others are more tame, you can usually tell after a couple of sentences
Wontonimo: and it was getting good to. it totally ruined the vibe
ASM_MOV_INT: that's it... i'm learning python
ninjadip: yes! and my good vibes had just started.. working all day, doing online homework, and then that .. ugh
ninjadip: hey, she said sorry to me
ASM_MOV_INT: ... my vibes are from watching hazard communication in the workplace video and test
ninjadip: everyone
ASM_MOV_INT: i need a clash or .... dozen
Astrobytes: ASM_MOV_INT :rofl:
ninjadip: i explained the obvious reference to a children's tale, and said she's sorry and gets it now
ninjadip: lol
WellyBelly: (╯°□°)╯︵ ┻━┻
Brody_The_Vegan: @everyone
ASM_MOV_INT: :grinning:
Brody_The_Vegan: ?mute admis
Brody_The_Vegan: :snake:
dmuraco: wontonimo thanks man you rerailed the train it was going out of bounds
Wontonimo: hey dmuraco, you haven't gotten high in any bot battle yet. have you taken a look at them? Perhaps give Tron or Botters of the Galaxy a try
dmuraco: uhhhh ill check it out
Wontonimo: https://www.codingame.com/multiplayer/bot-programming/line-racing <-- this is Tron
struct: Wontonimo any reason why you mentioned oware?
Wontonimo: turn left, right
Wontonimo: oh, i thought that was generally regarded as the starter NN multi
dmuraco: when things are hard I just quit so we'll see
struct: ah I see
Wontonimo: idk, i havent even tried 1 so I couldn't say which multi would be the easiest to apply NN to
struct: I thought about bt because I have a bit of experience with it and its an easy game too see if AI is doing well or not
Wontonimo: +1
Wontonimo: yes
dmuraco: used one of them doo hickeys to predict stock prices didnt work tho
Wontonimo: no. that's not a good idea. using a NN to predict a random number generator isn't going to do much.
struct: might aswell run rand()
dmuraco: LoL yeah was just experimenting
Wontonimo: i was the lead dev at a hedge fund in 2008. fun times.
Wontonimo: machine learning to predict SMP500, intra minute trades
Astrobytes: Ugh. Hope you disinfected your brain after working for those crooks.
Wontonimo: yeah, crooks is right. the whole industry is crooks selling to crooks
Astrobytes: 100%
Astrobytes: We're just currency to that world.
Astrobytes: anyway, cya all later
Wontonimo: cya
dmuraco: sorry i was busy getting 3rd place in coc flex
Wontonimo: hey Struct, what is your plan for training your NN. What is your training data going to be?
struct: no idea yet
Wontonimo: it's tricky
dmuraco: wontonimo what language did you use at hedge fund
Wontonimo: i think
struct: I only read 8 chapters out of 22
Wontonimo: java
struct: The first are really basic
Wontonimo: so, if the NN training is supervised then it becomes easy, but what is the supervised data?
dmuraco: what kind of machine learning model did you use
Wontonimo: self play is a option , but then you can easily have model collapse
Wontonimo: probably just DNN dmuraco
struct: well i dont really have supervised data for breakthrough
Wontonimo: aka fully connected layers
Wontonimo: you can generate supervised data. i was thinking of this a long time ago and after talking with Jacek he confirmed that it works for him
Wontonimo: you use your current MCTS (or whatever search) to predict a score for the current board
Wontonimo: that becomes your training set. if your NN can estimate that in 1ms what your MCTS took 100ms to generate, then huge win.
Wontonimo: you can then use the NN in a negamax way to see much further into the future than the MCTS could
struct: makes sense
Wontonimo: what search are you using for BT atm?
struct: mcts
Wontonimo: i don't see how self play can be used for training
Wontonimo: easily
struct: isnt marchete muzero self training?
Wontonimo: is that the article he wrote or is that a whole code that he hhas shared?
struct: in the article
struct: "A pure self-learning AI, it only learns by playing against itself (or previous NN versions). For the whole training it never competes against any other AI bot (only itself), neither any kind of expert knowledge, opening books or anything."
struct: also no domain knowledge
Wontonimo: yeah, i get that
struct: I dont think his code has the training part
Wontonimo: i'm just fuzzy on how to extract and apply data for a learning signal
struct: yeah i also have no idea yet
Wontonimo: i'm clear on how to do unsupervised learning to do things like autoencoders and embeding layer generation
struct: yeah one thing that confuses me the most is
struct: that the initial state is very different from the ending state
struct: How can NN even train sucesfully for that
struct: The weights will be the same
struct: But I guess that also apply to other things that NNs can do
Wontonimo: i can imagine that you use a recording of the whole game play. all the moves for the winning player become part of the positive training set and all the move for the losing player become part of the negative training set. seems cheap though and i'd be surrprised if it worked
struct: If I figure it out Ill let you know :p
therealbeef: Indeed Wontonimo that's how I did it. all the game states on the way to a victory are good and on a way to a loss are bad
Wontonimo: OH !
Wontonimo: and do you have a decay, like earlier moves have less weight, and moves right before the end move have the most weight?
therealbeef: I didn't make a really successful bot with it (probably due to bad choice of search algo), but it does improve it's strength over time
therealbeef: yes
Wontonimo: awesome! thanks for sharing !!
therealbeef: gane states in the beginning of a match are probably less predictable
therealbeef: but that depends on the type of game maybe
Wontonimo: what multi have you used NN in therealbeef ?
therealbeef: spring2021
Wontonimo: solid gold. nice
Wontonimo: what search did you use after the NN was trained
therealbeef: alpha beta
therealbeef: which is probably a bad choice
Wontonimo: no, i hear that works well with NN
therealbeef: but i had no exprience with mcts yet back then
struct: also the game should be tricky
Wontonimo: what depth, and is it just value, or value and policy?
therealbeef: i trained just game state eval, no policy
Josdel: tacos
Wontonimo: value, cool. jacek has been pretty positive about using just value/eval also
Josdel: hello guys
Josdel: all fine?
Wontonimo: tacos? read my bio Josdel
Josdel: yep....
Josdel: how do you write in red?
therealbeef: i think alpha beta requires very fast eval due to the way it searches, so funnily the bot i started with has super simple NN (but fast) and i never managed to beat it after changing to a more complex CNN
Wontonimo: i have a magic marker
Wontonimo: jk. text will appear in red when it has your name in it
Josdel: Wontonimo hello
Josdel: hmm
therealbeef: i think mcts searches smarter so it can deal with slower eval maybe
Wontonimo: yup, it worked. sadly my auto reply didn't kick off
Josdel: careful man
Wontonimo: did you add pruning to alphabeta?
Wontonimo: must have otherwise it would be minimax
Wontonimo: dumb question on my end
Wontonimo: i'm wondering if NN value would work with Beam search
therealbeef: sure why not :)
therealbeef: it basically replaces a handwritten heuristic
Wontonimo: but better
therealbeef: but also slower
therealbeef: there's a tradeoff
therealbeef: if a game is so simple you can handwrite a super fast eval, it might be better
Wontonimo: did you use any intrinsics to speed up and parallelize the matrix calculations?
therealbeef: yes
struct: avx?
Wontonimo: :scream_cat:
therealbeef: yes, 8 float vectors
struct: how many hidden layers?
therealbeef: hehe the submitted bot has only 1 hidden layer ;) the re-designed bot had like 8 orso and it couldn't beat the single hidden layer one
struct: maybe the 8 one was too slow
therealbeef: but please take my experiences with a pinch of salt; this was my first try with NN on CG
struct: if you ran it for the same iterations it would probably beat the other one
struct: ofc
therealbeef: yes i think so
struct: Im sure if you tried in other game you probably would have more success
struct: you only saw 1 NN at the top on the contest afterall
Wontonimo: 8 hidden layer? That is bordering on untrainable without tricks like resnet layers or batchnormalization.
therealbeef: i think it can be very tricky to choose exactly the kind of network architecture that trades off speed and quality
therealbeef: i did use relu activation everywhere
POEJordanJ: Hm
therealbeef: and when inspecting the weights in the first layer graphically, it did seem like it is looking for patterns such as having two big trees that can never shadow each other
struct: was reading the marchete tutorial and now one hots make sense to me
Wontonimo: :tada:
struct: at least one part of it :p
Wontonimo: that is a beast of a tutorial
struct: too many terms I dont know yet
Wontonimo: i totally messed up an explanation of gradient descent yesterday (or was it the day before?) here on world chat
Wontonimo: it was so bad... i'd like to go back and delete that chat history
struct: do not worry :p
Wontonimo: so, i've got this bot on here. it looks for clash links and when people say hi to me. I was thinking of adding some kind of gamification ...
struct: to play vs him?
Wontonimo: no, here on world chat
Wontonimo: i was thinking of the "golden taco of the hour" award. the way it worrks is anyone can say "I nominate ____ for the golden taco award"
Wontonimo: and the bot keeps track of who gets the most nomination for that hour and awards them 1
Wontonimo: reporting how many they have accumulated in their life time
Wontonimo: 1 per hour at most
Wontonimo: thoughts?
struct: hmm I dont think chat is active enough for it
Wontonimo: per day?
struct: would probably be better yeah
struct: with hour it would just spam too much I think
Wontonimo: true
Wontonimo: can't nominate twice
Wontonimo: nor yourself
Astrobytes: I like that idea
struct: I'm out for the night
struct: gn everyone
Wontonimo: gn
Astrobytes: gn, I'm not far off, in bed, on the laptop
Wontonimo: gn also
Astrobytes: just finishing these last few lines of code :P
Wontonimo: on what?
Astrobytes: right now UTTT, but earlier was practising my javascript
Wontonimo: for roguer path ;)
Astrobytes: indeed :)
Wontonimo: yeah
Wontonimo: are you going to submit uttt before hheading off to sleep?
Astrobytes: nah, just finishing the sim, only started it properly last night in bed lol
Wontonimo: your last submit was about 2 years ago :scream_cat:
Astrobytes: yep, it was a rainy day multi for me, I find it a touch boring
Wontonimo: use MC for the first search. you'll knock off the logic for MC in no time and it'll throw you up to gold
Wontonimo: here is my MC example https://tech.io/snippet/LiWPxTS
Astrobytes: Was thinking to go full MCTS
Wontonimo: well YEAH of course
Astrobytes: all good, I can write MCs with my eyes closed ;)
Wontonimo: MCTS all the way. but MC is 1/10th the effort and will get you to top Gold if your sim is optimized
Wontonimo: plus, the rollout is completely reusable for MCTS
Astrobytes: I'll see tomorrow when I get round to that part
Wontonimo: am i pushing MC too much :rolling_eyes: ... probably eh?
Wontonimo: night
Astrobytes: lol nah, it's the first port of call in most problems usually
Astrobytes: anyway, yes, gn :)
therealbeef: what's MC?
jacek: monte carlo
therealbeef: is that like MCTS without expansion?
jacek: yes. flat monte carlo
jacek: for each move simulate 1000 (or so) games and choose one with heighest wins
BaseMcfly: How do you see your solved puzzles/solutions from practice mode?
jacek: they should be at the bottom
Wontonimo: hey jacek, when did you get on? have you been lurking for a while?
Wontonimo: could have used your $0.02 a while ago about NN training in self play
Wontonimo: that's my round about way of saying I missed you :grin:
jacek: im a bit sick so i got up earlier
Wontonimo: what kind of sick? no the covid i hope. just something simple
jacek: sore throat and headache. typical common cold
jacek: but fortunately no rhintis
Wontonimo: that's good
Wontonimo: i'm tired. heading off to sleep. see ya later. get well soon
Josdel: bye bye
Josdel: :hand_splayed:
jacek: mods asleep, let's troll
ETET: ?
ETET: How long have you all been learning code?
jacek: since early teens, off and on about 20 years ~
ASM_MOV_INT: probably since a year or so before 6th grade... and i'm 48 now, so....
ASM_MOV_INT: :joy:
Punkp: When I was 14... now I am 50 ...
ASM_MOV_INT: i had a texas instruments computer at very young age, don't remember how old, but I do remember in 6th grade I got an apple iic for christmas, and I was programming in BASIC on the Texas Instruments