Chat:World/2021-05-24
struct: np YurkovAS glad to help
struct: 1k is how much % gain? YurkovAS
AntiSquid: i feel like you just need more ifs not rollouts
Wontonimo: I gained a few ranks in SC2021 since the competition without doing anything. Odd.
YurkovAS: struct in local only tested, wins: left=54%, right=57%. 4+ hours i'm find bugs :)
Astrobytes: Hello
YurkovAS: hi
yassine_Benlahbib: hi
MMJR: this is a pretty neat website, are they using an embedded visual studio for it?
therealbeef: something like that i think
actualCoderTrevor: MMJR I believe it's ace https://github.com/ajaxorg/ace
Astrobytes: It's Monaco https://github.com/microsoft/monaco-editor
actualCoderTrevor: Oh I stand corrected
MMJR: Interesting i may have to check it out for another project i am doing
Ilovepypypy: how to play spring challenge 2021
souta_1326: https://www.codingame.com/multiplayer/bot-programming/spring-challenge-2021
Ilovepypypy: but i dont know how to def the action...i am new
KornDV: clash reverse
KornDV: https://www.codingame.com/clashofcode/clash/1770446b6f6b622b210810e1731661661c058fe
KornDV: shortest
derjack: good morning
Girlgaming: hi
You have been promoted to Legend League at Fantastic Bits!
BoBot: haven't heard that name in a while
aCat: nice, congratz ;]
BoBot: leaderboard flux? :D is that game like...2 years old?
BoBot: have not touched it meanwhile
derjack: see? you dont need to do anything to promote, just wait some time. ezpz
BoBot: omg, seems less time ago...time flies
XprophEtX: guys, can u tell me how I can read the game options (like current seed) in my code? are thos env variables?
aCat: no you cant
XprophEtX: oh ok, thanks!
Sooran: Everyone, is Kotlin working properly?
derjack: hmm there were some issues over the weekend
Sooran: Problems solved by kotlin do not pass the validator.:rage:
RoboStac: yeah, thibaud said they were still looking at kotlin issues on discored
RoboStac: the latest version is causing a lot of problems
Notter: Why do I keep disconnecting at random intervals?
Westicles: The update seems to have broken my c# golfs
Westicles: Unhandled exception. System.ComponentModel.Win32Exception (2): No such file or directory at System.Diagnostics.Process.ForkAndExecProcess at System.Diagnostics.Process.StartCore at System.Diagnostics.Process.Start
Westicles: Seems that ruby -e no longer works unless you put the whole path /usr/local/bin/ruby. Actually takes a little bit of the cheat out of golf, which is good
Westicles: Does golf ever get recalculated?
struct: I think it happened before
KalamariKing: What was the ruby trick?
Westicles: Run ruby from other languages
KalamariKing: Why would you want that
struct: for codegolf
struct: there is per language rating
KalamariKing: Oh ok
KalamariKing: Also is there a limit or smth on JavaScript exponents? on a clash where the answer is the input squared, JavaScript users are failing one of the tests (specifically the 'crash test')
RoboStac: javascript doesn't have ints so uses doubles for calculation by default (won't be accurate above 2**53)
KalamariKing: Ah ok thanks
Notter: Why do I keep getting disconnected at random intervals?
struct: Can it be your connection?
Neglokit: i can't do any of the puzzles
Neglokit: where is a good place to start
KalamariKing: Well what language do you wanna start with
KalamariKing: I like clashes, personally
KalamariKing: btw
struct: clashes are not the place to start
struct: Neglokit this site is not meant for beginners
struct: you need a little bit of experience
KalamariKing: Oh lol that's where I started, but yeah its not for learning or anything
Neglokit: i'm leaning python 3
KalamariKing: Python is popular, there's plenty of tutorials and learning experiences online
struct: https://wiki.python.org/moin/BeginnersGuide/Programmers
Neglokit: where do you recommend for a free tutorial
struct: yw
Notter: Is Java good?
Mai-Lapyst: how do you define "good"? in terms of syntax, ecosystem, speed, portability...
KalamariKing: Notter it all depends on what you want to do
KalamariKing: Ik, bad answer, but its true
Notter: The More You Know
yassine_Benlahbib: hi
Notter: Hello
Luj8n: No, Java is bad (:
derjack: kree java!
yassine_Benlahbib: you should try C
Notter: Strings in C are confusing
yassine_Benlahbib: that's the point
yassine_Benlahbib: strings in python are waaay easier
Luj8n: bruh, there are no strings in C
yassine_Benlahbib: i told you you should try C
Mai-Lapyst: i like C strings. they are fairly simple once you wrap your had around it. and very powerfull to, like builtin string view support
Mai-Lapyst: *head
AndersE: Every language are good if used in the right context. Don't say a language is good or bad. Look at the problem and the environment it has to be in.
Luj8n: Java is bad in every way :)
Mai-Lapyst: but its still the most protable language on the planet
Mai-Lapyst: java runs literally on coffeemachines
Luj8n: but jokes aside, any language is good if you know how to use it
Notter: I'm currently trying to get the hang of python classes and objects
AndersE: And I have been programming for over 30 years. Language is now only a way to express oneself. And all languages has its own advantages and disadvantages.
dreadylein: agree, except perl because doh :D
KalamariKing: perl is gross
AndersE: Haha, that one is sort of true. You can write readable code in perl, but people tend to write as "fancy and short" code as possible that no one can understand.
Greg_3141: It's fun to hate on Java but at the end of the day it's a solid language for large projects
aCat: someoune asked for C#?
BlaiseEbuth: Wowow! Too much troll on this chan...
aCat: *someone
AntiSquid: that's why some companies are rewriting their apps in Kotlin, because it works even better
derjack: kotlin is just another lang for jvm :thinking:
KalamariKing: What are the major differences between kotlin and java
KalamariKing: to me, there doesn't seem to be much
KalamariKing: or maybe I'm blending c#/java/js/etc into one pseudo-syntax and kotlin is too similar... idk
Greg_3141: kotlin doesn't try to look like C
derjack: kotlin is most present in android where youre stuck on java7 or pseudo java8
KalamariKing: So its like a faster/modernized java
Greg_3141: honestly though, if you're going to use Kotlin instead of Java, why not just go directly to Scala?
KalamariKing: java-lite
BlaiseEbuth: Comparing attentively two turds, you can find differences. But at the end it's just shit...
AndersE: Didn't do anything with Java for over 5 years. Now thrown in into project that make use of Java RX. Any thoughts on Java RX. Ok, it's a framework, but a completely different way to do things.
derjack: there is quite a trend to make oop lannguages more functional
Greg_3141: there's not much wrong with Java, surprisingly enough it's usable even for high performance code
BlaiseEbuth: What a mess... If you want to do functional, use a real functional language...
Darkboy: Im still in Bash
BlaiseEbuth: Greg is a high performance troll :p
Greg_3141: nothing wrong with having multiple paradigms
BlaiseEbuth: Medium everywhere, good nowhere...
AntiSquid: the syntax is quite different too
Greg_3141: And yet lots of competent programmers choose it
AntiSquid: KalamariKing how the hell can you confuse c# java and js ???
KalamariKing: my guy
KalamariKing: its been a while
AntiSquid: JS is more straight forward
AntiSquid: and C# has its own magic
Greg_3141: confusing c# and java is forgivable, you can copy paste code from one to the other with very minor modifications
AntiSquid: diff libs for both, depends on project
KalamariKing: by now its all just one large clusterf*ck of characters
AntiSquid: what are you usually doing Greg_3141 ?
Greg_3141: hobby shit
BlaiseEbuth: Gold league with depth1 search
Greg_3141: yes
AntiSquid: hah ok do Fall Challenge 2020 with depth1 search and get gold, would like to see :D
AntiSquid: is UTTT gold doable with depth1 search ?
BlaiseEbuth: Don't know. Perhaps with one or two ifs.
Greg_3141: maybe if you had a good heuristic function?
KalamariKing: Is something wrong with cg rn?
KalamariKing: Running code returns "oops a system error has occurred" and I'm not sure if thats specific to this game of not
KalamariKing: or*
Greg_3141: doesn't happen for me
StevensGino: I think it is your code's problem
KalamariKing: Everyone in this clash has the same problem
Greg_3141: I don't care that much about CoC so idk
StevensGino: which language should I learn for CoC ?
Greg_3141: python probably
StevensGino: currently I know C++/Java
StevensGino: thanks
Greg_3141: python is good for writing code quickly, but there might be an even better language for CoC
AntiSquid: but CoC isn't a life goal
BlaiseEbuth: Even not a goal...
StevensGino: yes, I just play CoC to relax
MrFruit: I am getting a "Oops... a system error has occurred!"
StevensGino: or wram up
MrFruit: And seems like everyone in my clash as well
KalamariKing: Do clashes get re-evalled
StevensGino: btw, is there any advantage on Rust over C++ for bot programming contest?
Greg_3141: yeah, let me write it up
Notter: Why can't I face my bot against itself?
Greg_3141: You can
Mai-Lapyst: @StevensGino one big advantage is you dont have to worry about lifetime's and scopes. malloc() rules, but it can also very fast produce segfaults...
Greg_3141: A nice thing about Rust is how you can easily represent several different types of moves with an enum.
StevensGino: thank you two
Greg_3141: You can also iterate over moves more easily because Rust has better support for iterators and closures iirc
therealbeef: that sounds like features C++ has too :-/
Mai-Lapyst: yes thats true, c has no real support for iterators. c++ has
casmith789: C++ is a great generalist language, you will be able to do everything you want in C++. But the syntax might be a little clunky so it will just be ease of use other languages have over it
Greg_3141: In Rust, you can easily build up a complex iterator from several more basic iterators using map() and chain()
StevensGino: I already know C++ (not really master it), I just hesitate should I learn Rust for bot programming
Greg_3141: and other iterator functions as needed
casmith789: I would say learn it if you find it interesting
Greg_3141: pattern matching in Rust is really nice for simplifying casework (think different types of moves in a game)
StevensGino: thank you all, learning a new programming language is always satisfying
StevensGino: so I will learn Rust
derjack: :scream:
Greg_3141: hello
CodeLoverboy: Is there any way you can make your own game?
Greg_3141: yeah
derjack: codingame sdk?
MSmits: CodeLoverboy i would not recommend creating your own game here if you havent created a few good bots first.
MSmits: Not every game is a good bot game
MSmits: unless you're straight up porting something that's known to be a good bot game
MSmits: (like a classic)
derjack: :soccer:
MSmits: like paper soccer yes :P
MSmits: why is pony upside down?
derjack: maybe hes in australia :upside_down:
MSmits: I see, makes sense
MSmits: derjack
MSmits: he wasnt upside down before
MSmits: no, australia
MSmits: people in alustalia aren't upside down
CodeLoverboy: im just joking around
MSmits: go tit
MSmits: got it
StevensGino: is there any CPs on solving community problem?
struct: no
StevensGino: thanks
BlaiseEbuth: On puzzles, comunity or not.
MSmits: StevensGino the idea is that stuff that is competitive gives cp
BlaiseEbuth: ^
MSmits: should be called competition points tbh
StevensGino: so if it is community competive, should I have CPs?
derjack: or something not c* points, the abbreviation is meh
derjack: depends if you want to be competetive
MSmits: StevensGino yes mostly, you could consider solving puzzles competitive, but it's not really.
StevensGino: for example :
StevensGino: https://www.codingame.com/multiplayer/bot-programming/chess/leaderboard
MSmits: yeah thats cp worthy
StevensGino: can I have CPs for this?
derjack: yes
StevensGino: thank you all :)
BlaiseEbuth: Of course not MSmits, that would not be representative of 95% of the community...
MSmits: but not an easy way to get many points because botgames with < 500 players have a reduced cp maximum
derjack: but youll get more CPs from more popular games and if youre higher in leagues
MSmits: also those small population games have a higher fraction of hard core botters
StevensGino: thanks, I didn't even think of it
MSmits: btw, did not understand what you meant there BlaiseEbuth
BlaiseEbuth: MSmits 03:37PM should be called competition points tbh
MSmits: mmh i meant that "coding" could be anything on this site, so calling it coding points is misleading
MSmits: it's all coding
MSmits: solving a puzzle is coding too
BlaiseEbuth: I know, just trolling. :3
MSmits: ahh ok
derjack:
MSmits: i think the experience points could rightly be called coding points
MSmits: because everything gives experience
MSmits: though community multies give very little
BlaiseEbuth: Hmm. Xp is not misleading, and is a classic designation for this kind of points.
BlaiseEbuth: But I agree on coding points.
MSmits: yeah thats true. it's not misleading
MSmits: but you could call it coding points and it would still not be misleading
BlaiseEbuth: Right.
BlaiseEbuth: But if (in an alternative world) a change was made on the CP name, renaming XP -> CP will be misleading.
MSmits: true
Uljahn: practice points and competition points seems clear though
MSmits: yeah
MSmits: it's weird that re curse made the chess multi, but his bot is not on there. For a community multi it's not doing badly with 102 submissions. It's not easy to write a bot for it
reCurse: It's not weird, I told you why :P
MSmits: is this because you are afraid of being sucked into the black hole that is chess?
reCurse: Yes
MSmits: ah ok, i remember now
MSmits: well then it is weird that you created the multi :P
reCurse: Hm
MSmits: though if you did it to do the CG community a favor, then thats a good reason
reCurse: I'd say my hobbies are weird so there's that
MSmits: sure that's fine too :P
reCurse: I think I wanted to do at least one contribution
MSmits: ah, good choice then
reCurse: I often get those urges to try things at least once
reCurse: I also had my half-finished game that would take too much effort to complete
reCurse: Chess is super easy in comparison
MSmits: this was a game that was supposed to become a contest, like what euler did?
reCurse: Streaming was such a completely impulsive case
reCurse: I think it would have made a very fine contest yes
reCurse: I wanted that to be a motivation to finish it
reCurse: And well...
MSmits: ah, too bad
reCurse: Now even without the drama I'm not sure CG would have wanted that
reCurse: But shrug
MSmits: there is usually a risk to creating new things
reCurse: It was an almost frame perfect Puyo Puyo Tsu clone in case you wonder
MSmits: ohh
MSmits: struct would have loved that
reCurse: I'd have called it "Smash Tsu Code" hehe
MSmits: I'm working on a simple TTT implementation to practice ML on. This is like my 4th completely new implementation of TTT in python. There's a ridiculous number of ways to do this
reCurse: I still think TTT is a bad test bed
MSmits: yeah, you might be right, but it doesnt have to work well, just as to work so i have some familiar thing to work with
MSmits: i'm matching ply 1 state to ply 0 state as a target
derjack: admit it, you created chess to complete quest map
reCurse: There's a quest for making a multi?
struct: The person could drop a piece per frame?
reCurse: Not necessarily
MSmits: reCurse probably a quest for community contribution in general
MSmits: could be a puzzle
reCurse: I did frame counting of all actions
derjack: or clash
reCurse: So the frame at which you can drop a piece, the bot gets a turn
reCurse: So you could get multiple turns in a row if the opponent is completing a long chain
reCurse: The game's whole balance is around that idea
struct: I see, I can understand why you abandoned it
reCurse: It was motivation before difficulty
struct: yeah
struct: Knowing it will just be another multi with < 100 players is harsh
derjack: yinsh got a little boost being potw
derjack: during contest
reCurse: And knowing CG attracts quite a few players from Japan, I'm sure they'd be all over it
reCurse: It's a popular game over there
reCurse: That's where the best players in the world are mostly
derjack: othello is pretty popular in japan no?
reCurse: True, at some point in history at least, maybe still now, I don't know
reCurse: Too many projects not enough time as usual
reCurse: Just talking about it now I want to work on it eh, but it's pointless
ljwoodward: People who win clashes and don't share their code are the worst people
reCurse: Ok
MSmits: I'm a worst people :(
MSmits: wait no i'm not
MSmits: i don't win
MSmits: wew
1457162: :-D
derjack: https://i.imgur.com/PAaU2Bw.png
JFB: True :-)
MSmits: haha
BlaiseEbuth: "I killed a man. And you?" "I play clashs of code."
ljwoodward: Exactly, I'm glad you understand
reCurse: I'd say feeling entitled to someone's code is the worst, but /shrug
MSmits: https://imgflip.com/i/5aqv1d
reCurse: Geez you got this template automated now
MSmits: it's easy :)
MSmits: as is making a simple ttt implementation. I didn't realize how much of the code of my previous ones was about the interface of making it human-playable
MSmits: whats left is like 30 lines or so
struct: grats on rank 2 YurkovAS
MSmits: which game?
MSmits: contest game?
struct: sc21
MSmits: ohh, gj YurkovAS
MSmits: it always surprises me that people can continue to play a game after contest. I am always burned out on it by that point
struct: maybe I jinxed it :/
YurkovAS: thanks!
KalamariKing: MSmits yeah same
KalamariKing: some people just don't get burned out ig
MSmits: I guess so, and in that case, the PM thread does provide a load of ideas to try
reCurse: 10 days isn't that long :P
MSmits: in general it's not, but you're playing a game you didn't choose yourself. I can work with a game for months if it fascinates me.
reCurse: Why not both
MSmits: I just mean it's unlikely for a contest-game to be interesting to me in the long term. This one was better than most in that regard, but I like simple boardgames better
struct: I enjoy the game as long as it doesnt have hidden info
MSmits: i dont like hidden info either, except with ooc, because it was a major feature there
struct: or 10 pages of furles
struct: ooc it makes sense yes
MSmits: furles?
struct: rules*
struct: :D
MSmits: I was thinking of a book full of furry creaturs
Wiilss: same
struct: unleash the geek hidden info also makes sense
MSmits: kind of, but it's more important in ooc
reCurse: Oh boy ooc, I can't stop thinking about how to search
reCurse: Got some ideas but it's gonna take a while to get started
struct: I think its one of the hardest games to get started
struct: imo
reCurse: Well I can reuse bitboard from coif so there's that
Wiilss: ""
MSmits: yeah, the wood bosses were ridiculous
MSmits: at first
MSmits: then they made them weaker
MSmits: I use several different bitboard for ooc
MSmits: int16 for position, int32 for mines and int64 for damage
reCurse: Search is going to take a lot of iterations to be good though I think
reCurse: And 50ms
reCurse: This is tough
MSmits: yep
WolfDarrigan: I'm near the top of silver in ooc, but my code is horribly inefficient
MSmits: can always make it more efficient
MSmits: if you want
WolfDarrigan: My bot is more about memory and time management than about any strategy for the game :sweat_smile:
MSmits: mine too
MSmits: i didnt get around to experimenting with heuristics
MSmits: well, only a little bit
MSmits: i did only use half the contest time though, had two breaks in that month. Probably could have done better
MSmits: month is too long to keep my interest
WolfDarrigan: I started to go down a rabbit hole of detecting choke points that would be good to mine, but got stuck on "should the edge of the board count as terrain" because it was putting mines in what I'd consider dumb places
WolfDarrigan: never got that working, so it is just commented out
MSmits: ah, my bots are always full of commented out stuff that didnt work :)
VizGhar: jave is extremely verbose language
struct: im trying to pick between WW and HS
VizGhar: oh :D i've seen some old discussion
VizGhar: sorry for random post
struct: ww max size seems to be 7x7
ZarthaxX: struct headache in both
ZarthaxX: yep
ZarthaxX: i hardcoded that 7 in my loops, a bug that lasted one year
ZarthaxX: :)
struct: my ww currently is depth 1 currently
ZarthaxX: and costed me tshirt prob
struct: unlucky zarthax
struct: your current WW bot is broken ZarthaxX
struct: also euler bot
ZarthaxX: wat
struct: your bot is broken
struct: Timeout turn 1
ZarthaxX: ffs lemme check
ZarthaxX: ty for that
struct: np
ZarthaxX: ok idk why
MSmits: is it C#?
MSmits: because C# had an update
MSmits: breaking some botds
ZarthaxX: nope
MSmits: ah i just figured because eulers is also broken
struct: no error?
ZarthaxX: not getting compilatiopn errors
ZarthaxX: :(
ZarthaxX: it doesnt return from a function
ZarthaxX: :D
ZarthaxX: literally when it has to return it dies
ZarthaxX: how can this break from nowhere
ZarthaxX: :(
Greg_3141: Just got my first puzzle contribution to WIP status: https://www.codingame.com/contribute/view/67880dcf02f0f5e4d467c5a465b9854d5b5d Feel free to leave feedback
Coelurus: Hello my programming n1bbas
eulerscheZahl: what a great time to open the chat
struct: hi euler
struct: your ww bot is broken get your points back
eulerscheZahl: it was at the bottom of the league before that already
struct: ah
eulerscheZahl: in fact it's not broken, just bad :(
Wiilss: worlde
Illusive: #include <worldchat>
eulerscheZahl: btw ZarthaxX i'll take the dice assets if I can get some. If I use a toggle to switch between current and other model, it's fine to have a less detailed replacement
ZarthaxX: oh okey
ZarthaxX: i guess we would need to test up to which point is ok
ZarthaxX: like acceptable loss of details
eulerscheZahl: maybe: rounded edges (also because of rolling animation which assumes some radius) but flat eyes
ZarthaxX: oh flat eyes would make it possible i think
ZarthaxX: so round edges is a must
eulerscheZahl: not a must. but nice to have
ZarthaxX: i meant that it would look weird in the animation haha
TheBatMan_TM: hey guys what's the online replacement for Postman?
eulerscheZahl: and as the game is approved already: the arrangement of the sides should match with the existing model of course :D
ZarthaxX: right
eulerscheZahl: email @TheBatMan_TM
TheBatMan_TM: what?
TheBatMan_TM: no i mean Postman the API tester
Wiilss: #include
eulerscheZahl: why do you need a replacement for it?
eulerscheZahl: i think i should kick
Wiilss: i speak british
TheBatMan_TM: eulerscheZahl coz i can't download it locally, i need online
Illusive: do you man speak american or british
Xerock: hl
TheBatMan_TM: which is the best online API tester?
TheBatMan_TM: as a replacement to Postman
reCurse: Nostalgia
eulerscheZahl: i got your question now. never saw the need to try it with an online tool
jacek: if you give sides in input, they can be changed, right?
KalamariKing: what
KalamariKing: elaborate
MSmits: mmh i am seeing the problem with converting xor example to a more general case if you're not using numpy :P
MSmits: more loops within loops because you dont have just 2 inputs :)
KalamariKing: you're gonna get kicked :eyes:
ErrorCookie: #whatsthis
jacek: MSmits you cant generalize well?
MSmits: no i mean, if you take your xor example, it splits into two arrays i1 and i2 for the two parts of each input
MSmits: but were you to do this for TTT, for example, you cant do it this way
MSmits: because input has way more parts
jacek: oh right inputs number is hardcoded
MSmits: so it really turns into matrix-work then
jacek: well just anoter dim in array
MSmits: yeah it's fine, i'll generalize to multiple dimensions and try to get it working without numpu
MSmits: numpy
MSmits: then i'll transform it to a numpy version
MSmits: then tensorflow
KalamariKing: thats like
KalamariKing: a lot of transformations
MSmits: it's a learning exercise
MSmits: i dont know numpy and i dont know tensorflow
KalamariKing: tensorflow isn't made for numpy btw, internally it copies it all to another tensor
KalamariKing: so use tf.data
MSmits: allright I'll try to remember. It's fine if i get stuck on this later, thats how you learn
MSmits: I is good
MSmits: you?
jacek: if NN is stuck, this is how it doesnt learn tho
MSmits: i mean me :P
KalamariKing: I used to work with tf a lot, it takes a good few seconds with a large enough numpy dataset
MSmits: what does?
KalamariKing: predicting
MSmits: because of the internal conversion of the data?
KalamariKing: yeah
MSmits: ah ok
KalamariKing: tf.data is a little harder, since it doesn't have ALL the internal commands, but it too is c++ so is equally fast for converting
KalamariKing: its just MUCH faster for predicting
scareware047: won't it cache the dataset
KalamariKing: Yes and no
KalamariKing: When predicting, you're feeding it data it (usually) hasn't seen before
scareware047: alright nvm I work in cv I was mostly my own pipeline ;d
KalamariKing: lol its fine
MSmits: yay, converted to N dimensional inputs :)
MSmits: works
KalamariKing: is tensorflow on cg?
jacek: :tada:
jacek: no
KalamariKing: oh lol
KalamariKing: MSmits are you pushing the nn to cg? if so how
MSmits: no, you train a model, build a c++ inferer and put your weights in a massive string that you decode in the first 1 second
KalamariKing: yeah that's what I thought
MSmits: eventually, i will, see above statement
MSmits: for now, just practicing
KalamariKing: yeah
MSmits: trying to do a simple NN that learns to play TTT from playing games with itself
KalamariKing: ooh sounds like fun
MSmits: I'm doing ply 1 search and matching ply 1 value as target (negated) to root value
MSmits: so root is input, ply 1 result is target
KalamariKing: interesting
KalamariKing: are you using a large nn?
MSmits: since endgames are exact, doing enough passes should teach it to play perfectly
MSmits: i am not using anything yet
MSmits: i made a TT implementation and generalized xor example to N dimensions
MSmits: TTT
KalamariKing: oh I see
MSmits: now i need to combine them
MSmits: no idea how many neurons i will need
MSmits: i use 1 hidden layer for now
MSmits: hardcoded
KalamariKing: that's the thing, neuron counts are difficult
MSmits: it's easy to experiment because training should not take forever
KalamariKing: one-hot i/o, i presume?
MSmits: i can do that, but i am doing a -1,0,1 input first
MSmits: might be bad, i dunno
KalamariKing: For x, o, _?
KalamariKing: interesting indeed
MSmits: yes
MSmits: because it is so simple, i can experiment by comparing one hot with the other thing
KalamariKing: can your backprop func handle negatives? sigmoid (I think) can only take 0-1
MSmits: apparently in oware, robo and jace k are using one hot, but Robo also effectively used whole seedcounts as input
MSmits: KalamariKing you mean negative output right?
MSmits: I can transform -1 to 1 to a [0,1] interval
KalamariKing: I believe negative all around
MSmits: to avoid negative output
MSmits: so a loss is 0
KalamariKing: Transforming is easy
MSmits: draw - 0.5
jacek: hm?
jacek: yeah, match your data to your output
MSmits: how do you mean jacek
jacek: if sigmoid then 0, 0.5, 1. if tanh then -1, 0, 1
KalamariKing: yeah that
MSmits: oh you mean my last activation should be tanh
jacek: could be. i mean you need to adjust your target, thats all
MSmits: do you mean i can either change the interval for my target or change my activation function as long as they match?
KalamariKing: I presume you're not looking more than the current move into the future?
jacek: yes
MSmits: I am just trying all possible moves yes
MSmits: the reason for that is that the game is too easily solvable. If i searched further then it would just be a minimax
jrke: how many input you are taking MS?
MSmits: for now just 9 cells
MSmits: with -1,0,1
MSmits: but with onehot that would be 27
jrke: i thinking to train first simple tictactoe NN
MSmits: reCurs e says TTT is not the best trainign example
jrke: with 9 cells 3*3 and same like yours -1 for opp 0 for none and 1 for me
jacek: he has grudge against uttt
MSmits: I think I've read enough about the subject that it doesnt really matter if i pick this, not sure where you are at jrke
jacek: i think
MSmits: well he does at that, but this is TTT :)
MSmits: jrke then we are doing the same thing i guess
jrke: i am not doing UTTT am trying to do for TTT
MSmits: yes, same
jrke: oh
MSmits: just practice
MSmits: i already learned python is extremely annoying because of having to put "self" everywhere
jrke: so do you expect output a value or move
MSmits: value
MSmits: but move is fine
MSmits: depends on what you want to practice
MSmits: move could be cool actually, more meaningful output is good for practicing
jrke: so you have 9 neurons + bias
MSmits: no, 9 inputweights + bias
MSmits: no idea how many neurons
MSmits: will maybe try starting at 100 or something
MSmits: i assume you mean hidden neurons
jrke: yes
MSmits: yes, then it can be any number. The more you have, the more information/patterns can be encoded
MSmits: not sure what happens if you have too many, your NN will become slower to use in any case
MSmits: it will be interesting to find out what the minimum required number is
jrke: thats why we need some kinda tuning for that
jrke: done manually i thin
MSmits: you need tuning for everything
jrke: k
MSmits: and it doesnt have to be manual
MSmits: people use GA's and other methods for this
MSmits: you can have a bunch of parameters, set a min/max value and just randomly generate combinations and train your NN's from them
MSmits: not ideal, but better than grid search according to reCurs e
jrke: hmm
MSmits: say you think you need between 100 and 1000 neurons, learning rate between 0,01 and 0,2 etc
jrke: i am not sure what neuron exact;y is
MSmits: a neuron is an in-between step in calculation, it's not something that is stored in your network
jrke: what is the difference between input weights and neurons?
MSmits: the neuron is basically the calculation result from the combination of input, input_weights, bias and activation
MSmits: the neuron becomes the input for the next layer
MSmits: so the input itself can be considered a neuron
MSmits: and the output as well
jrke: oh and each layer has different input weights
MSmits: yes
MSmits: if you use 1 hidden layer
MSmits: there are two series of connections
MSmits: input to hidden and hidden to output
MSmits: they both have weights and biases
MSmits: and activation
MSmits: btw, this is just a MLP version of NN. There's others too that have tons of different features, but i wouldnt worry about those yet
MSmits: to be exact, it's a MLP with 1 hidden layer, you cna have more than 1
MSmits: also something i wouldnt bother with at first
jacek: for more info about it, lets google MLP in images google
MSmits: :grin:
jrke: yeah don't make complex at first stage of practice
MSmits: jrke i would do the xor example first if you havent
MSmits: it really helped me
jrke: yeah i did that
MSmits: ah ok
MSmits: yay, i succesfully trained it on 4 TTT states
KalamariKing: amazing
MSmits: http://chat.codingame.com/pastebin/e3e88733-397a-423a-8aca-94d04f696683
jrke: cool
MSmits: just to see if the framework does its thing
KalamariKing: is it doing its thing
MSmits: yea :)
MSmits: now it needs to work for thousands of those :0
KalamariKing: :o
KalamariKing: are you training locally or no
KalamariKing: also language
KalamariKing: python I presume, since its t
KalamariKing: tf*
KalamariKing: MSmits
MSmits: locally
MSmits: simple python only
MSmits: no numpy
KalamariKing: have you heard of google colab
MSmits: yeah
MSmits: it's like using jupyter notebooks
KalamariKing: why not use it
KalamariKing: yeah
jrke: but he don't need that heavy trainning yet
MSmits: because i am trying to do this really low level
jrke: so locally is enough
MSmits: i will just do it once
KalamariKing: but its fasterrrrrr
MSmits: dont care :)
KalamariKing: y'all are wack
MSmits: it's just a one time exercise
MSmits: i will probably port it to trinket.io
MSmits: which doesnt have tensorflow and whatnot
KalamariKing: I see
MSmits: my students know trinket and i can use it as an example and embed it in our learning environment
MSmits: not for any serious exercise, but they can check if out if they're interested
MSmits: i also tested xor example in trinket, worked fine
MSmits: for serious exercises i used the tensorflow playground, it's great
KalamariKing: forgot you were a teacher lol
MSmits: hehe yup still am
KalamariKing: woah how does tf playground work
KalamariKing: this does not look like code
MSmits: https://playground.tensorflow.org/
KalamariKing: yeah
MSmits: it's visual, to get an understanding how NN works without math
KalamariKing: eww
MSmits: well i cant expect much more from high school students :)
KalamariKing: thats so weird
KalamariKing: my guy
KalamariKing: how old do you think I am
annaproxy: ...
MSmits: no idea, but if you're a high school student you aren't my average high school student :P
KalamariKing: lol ig
KalamariKing: neural networks are so much fun tho
MSmits: mine are 15-19 yrs old and barely know python
KalamariKing: :o
MSmits: no oop either
KalamariKing: what
KalamariKing: how
MSmits: they only get 3 yrs of CS and it has a lot of subjects unrelated to coding
MSmits: only 2-3 hrs a week
MSmits: also html/css, databases etc.
KalamariKing: Purinto who's kami
KalamariKing: that's so weird I mean, the CS courses aren't great here either, but damn
MSmits: it's not the course it's the subject matter
Manchi_o6o7: Can someone explain me tree traversal differences. When we use postorder, when preorder etc.
MSmits: we do try to do more for excelling students
KalamariKing: wdym
MSmits: the subject matter is easy, but we offer extra stuff for those who want it
KalamariKing: as in, like, you do more for the students doing well or you do more to try to make all students excel
MSmits: i had a few students solve puzzles on CG
MSmits: yes
KalamariKing: oh thats sick
MSmits: one guy was in the contest actually
MSmits: he quickly left after he got into silver i think
KalamariKing: wait really?
KalamariKing: oh lol
MSmits: had to do exams
MSmits: it's his last year
KalamariKing: yeah
MSmits: he is usually top 10-20% in contests
KalamariKing: wait fr?
MSmits: also solved some hard puzzles here
KalamariKing: well gg to him
MSmits: yeah
KalamariKing: wow ok looks like I got some improving to do
MSmits: but students like him are rare
Manchi_o6o7: MSmits can you maybe help me out
MSmits: depends on your problem Manchi_o6o7
KalamariKing: Manchi_o6o7 just ask, I'm sure someone here can
jacek: Manchi_o6o7 check applications https://en.wikipedia.org/wiki/Tree_traversal#Applications
KalamariKing: tree traversal differences, right
Manchi_o6o7: yes
KalamariKing: preorder/postorder
AntiSquid: are you talking about your students MSmits ?
Manchi_o6o7: and inorder
MSmits: yeah
KalamariKing: I don't even know what those two things mean so I can't help
MSmits: well just teaching CS in general
AntiSquid: do you remember Petras ?
MSmits: I remember the name and seeing him here, but i dont know much about him
AntiSquid: was a highschooler
MSmits: ohh ok
MSmits: jrke is too
AntiSquid: quite high ranking
MSmits: jrke is pretty amazing
AntiSquid: isn't jrke 12 ?
MSmits: not sure, but very young
AntiSquid: ah 13
AntiSquid: he said it
jrke: yeah was 12 now 13
MSmits: thats how that work :)
AntiSquid: don't lie, i am sure it's the other way around jrke
KalamariKing: wait
KalamariKing: jrke
jrke: was 13 now 12 ;)
KalamariKing: you were 12 not too long ago, and you're placing as high as you are
KalamariKing: wow gg
MSmits: yeah he spent a lot of time on dots and boxes too
MSmits: you should check out that leaderboard
jacek: hes doing algo instead of drugs :(
jrke: dots and boxes was my most interesting to project to work on
KalamariKing: dots and boxes?
MSmits: a multi
KalamariKing: like the pen/paper game?
jrke: https://www.codingame.com/multiplayer/bot-programming/dots-and-boxes
MSmits: yes
jacek: pen/paper game? :thinking:
jrke: i have always a tab opened in my browser to track mu rank on D&B ;)
King_Coda: KalamariKing ping
AntiSquid: how old is KalamariKing ?
King_Coda: 15 I think
Manchi_o6o7: If someone can explain me why isn't root==NULL
Manchi_o6o7: http://chat.codingame.com/pastebin/4c8903a5-b12f-43dc-a16e-071720cddf72
struct: nullptr
struct: or just if(!root)
Manchi_o6o7: same, still
struct: if you have multiple == NULL
struct: ah this is C
struct: ups
Manchi_o6o7: if(root==NULL)printf("DELETED!\n");
Manchi_o6o7: this line should be true
DomiKo: when you do free
DomiKo: points isn't null
Manchi_o6o7: I will make it NULL, just a second
Manchi_o6o7: still
Manchi_o6o7: http://chat.codingame.com/pastebin/cf0f8756-f2ee-4bfe-ab90-922d08562ae8
Manchi_o6o7: after I dealocate the memory, which value has the pointer?
struct: maybe assign null before freeing?
DomiKo: Manchi_o6o7 none
Manchi_o6o7: still not working
DomiKo: it's undefined behavior
Manchi_o6o7: how can I check if the tree is deleted succesfully
DomiKo: you are coping the pointer
Manchi_o6o7: I see, my delete function isn't right
Manchi_o6o7: is this making any sense
Manchi_o6o7: http://chat.codingame.com/pastebin/871e54f0-9eda-4f55-b946-25d6cb8e3fc3
Manchi_o6o7: it is working, but I am not sure that there are no memory leaks
DomiKo: root=NULL; free(root);
DomiKo: now it's free(NULL)
Manchi_o6o7: free(root);
Manchi_o6o7: root=NULL;
Manchi_o6o7: ?
DomiKo: http://chat.codingame.com/pastebin/4dc973eb-69ec-49e1-87bd-6fa4215a5430
DomiKo: take reference to pointer
DomiKo: work?
jacek: it blew up his pc
Manchi_o6o7: DomiKo helped me
Manchi_o6o7: here is the working code, if someone wants to check it
Manchi_o6o7: http://chat.codingame.com/pastebin/89dafe43-f8c4-4cb8-9f63-37db2f606891
jrke: revived PC !
gnogge: is there any puzzles for absolute noos
jacek: the descent
AntiSquid: onboarding
AntiSquid: gnogge
jacek: space maze :imp:
StormyPluto3865: benford's law was a bit of a challenge.
AntiSquid: ah no worries
AntiSquid: a lot of people out there who should be experts don't understand that law either, so you're fine
StormyPluto3865: :slight_smile:
jacek: just like monty hall paradox
jacek: i read even that famous mathematician couldnt believe it
StormyPluto3865: Now benford's law makes a bit more sense.
AntiSquid: well first results on google for me : https://statisticsbyjim.com/fun/monty-hall-problem/ a statistician who doesn't believe it, so ... got to look at it more
gnogge: were can i learn more about coding?
StormyPluto3865: maybe w3schools if you're using javascript?
Smelty: (╯°□°)╯︵ ┻━┻
gnogge: okay thanks, because im trying to learn here but i dont understand a thing
StormyPluto3865: I've been coding for like 3 years but I never did anything useful.
StormyPluto3865: Now I kind of do something
jacek: well codingame isnt for complete newbies, its to improve the skills
MSmits: mmh I managed to get my network to play games untrained, but I was getting sometimes 50% vs random, sometimes 70% etc. Turns out the problem is of course that the network is completely deterministic once you initialized its weights
MSmits: it's not a random bot :P
jacek: oO
MSmits: it's pretty fast though 2000 games in a second is ok
MSmits: considering it's basic python
MSmits: now i need to start gathering information from the games for the learning, aka,, the hard part
jacek: given how much effort you dedicate for booking, its terrifying to see when you master NN and start training
MSmits: thanks for the compliment :)
MSmits: takes some talent too, I think doesn't it? Effort won't be the problem
MSmits: we'll see how well this goes
MSmits: I like it more than I thought i would
MSmits: the fact that you guys talk about it so much helps a ton btw. I wouldn't even know where to start if it wasn't for you jacek
AntiSquid: what are you doing atm MSmits ?
MSmits: atm trying to get my TTT network to learn
MSmits: i have a ttt implementation that works and my network can play games and learn from states. Now it needs to get the right combination of input and target values
MSmits: just a few more lines of code, then probably fixing a lot of bugs and then of course figuring out all the hyperparameters. No idea how hard that will be
AntiSquid: i would just follow a github example if i were you
MSmits: doing fine on my own so far. But I spend so many months reading and hearing about it, that I can start from a fully formed plan. That helps a lot
AntiSquid: problem is when you try to adapt it to something new (harder)
MSmits: well what i did was adapt the xor example various ways. I changed activation, made it able to take 9 inputs and i made 4 toy states with targets for a TTT board, it was able to learn those
MSmits: I'll share it if i get it working
jacek: plot twist: he'll never get it working
MSmits: that's totally possible :)
AntiSquid: ah, well for TTT you'll get countless working examples
MSmits: yeah, I think I'll experiment a bit with different choices and see what kind of network is easiest to train
MSmits: what i mean by sharing btw, is that i'll just paste my code here if someone asks. I wasnt intending to write an article. As you say, plenty of those
AntiSquid: depends on the problem really what is easiest to train (if you mean easiest to train a strong NN that solves x problem)
AntiSquid: unless you want to stick to a standard approach: input layer, 1 hidden layer, 1 output layer
AntiSquid: number hidden = count(input + output ) / 2 :D
AntiSquid: # hidden nodes i mean
Smelty: oooh
MSmits: I need far more hidden for my setup
MSmits: I don't use a one-hot input
MSmits: so only 9 inputs
MSmits: and only 1 output
MSmits: so with your formula thats 5 hidden
MSmits: probably gonna need more like 100 :)
MSmits: maybe 40 or so, no idea, will try
Manchi_o6o7: guys, how would the recursive call be written correctly
Manchi_o6o7: void deleteTree(NODE **root) {
if (root == NULL) return;
deleteTree(root->left);
Manchi_o6o7: left is type of *NODE
Manchi_o6o7: in main i call it as deleteTree(&root)
AntiSquid: no pm thx
jacek: oO
AntiSquid: bubble eye the guy above me
BitWolf.Sr: hey guys
BitWolf.Sr: s3x?
AntiSquid: Smits, i have the feeling most people here are overdoing it in terms of nodes used
MSmits: yeah that could be true
Manchi_o6o7: someone who could help out?
MSmits: thats why one of the experiments i want to do *if* i get it to work, is to find the minimum required for my setup
AntiSquid: reminds me of the lottery paradox :D
dreadylein: define overdoing ;)
Smelty: o v e r
Smelty: doing
AntiSquid: it's something your have to asses yourself
AntiSquid: you'd *
MSmits: I think in the context of, say oware, you will probably get less quality of evaluation, but if you keep adding nodes, your performance drops. At some point the gain from having more nodes does not compete with the loss of performance
MSmits: i think this is how you define it
dreadylein: the main problem is, finding the best hyperparms is by far the most costy part
MSmits: yeah
dreadylein: more weights normaly mean a higher ceiling, which makes it easier
dreadylein: as even "suboptimal" networks will yield good perfomance
MSmits: in the end you dont want your hyperparameters fitted for the fastest training though
MSmits: you want it fitted for the best performance
MSmits: ingame
MSmits: anyways, lots of things to think about
dreadylein: hehe
MSmits: pretty sure the other guys have done this
dreadylein: its part of the fun, isnt it
MSmits: yeah
UUolfo: are there any machine learning puzzles/programs besides the basic decision tree 1&2? can't find much
jacek: maybe binary neural network
KiwiTae: in somegames and cpp , you can get a timeout error if you have a nullptr somewhere?
AntiSquid: i'd argue the MCTS puzzles are a step in that direction too UUolfo
MSmits: if you want to use machine learning for games here, learna good search algorithm first
MSmits: doesn't even have to be mcts i guess. You could just use minimax
Manchi_o6o7: can someone help me out. I have a NODE pointing to a struct as the data. When I free the node, it just removes one part of the struct
Manchi_o6o7: not the whole struct
reCurse: *cough* You don't even need a search algorithm
jacek:
MSmits: true you dont need one. You can just see if your network performs better than smart heuristics
MSmits: but if you want to compete with the top you probably do need a search
reCurse: Sure except maybe csb
MSmits: csb networks are so powerful you dont need search?
reCurse: fenrir has no search
MSmits: I guess the game is quite hard to eval so that kinda makes sense
reCurse: "Let's do a full format on this 12tb drive to make sure it has no bad sectors." 5 hours later, 29% done. Crap.
MSmits: oops
struct: 12 tb o.o
reCurse: I think I just realized how much space that is
AntiSquid: isn't the entire point of ML to ignore search and make your model learn on its own? @_@
AntiSquid: (rhetorical q )
struct: yes im doing it so i dont ahve to code at all
struct: /s
AntiSquid: now you're exaggerating
MSmits: AntiSquid the model learns what a good state is, but it's still better if it knows what a good state is 5 turns from now
AntiSquid: a lot of coding is done outside just coding the search
AntiSquid: i should look up how to apply future knowledge to an LSTM, honestly don't know
struct: botg NN when?
kovi: a much deeper network can include a partial search tree
kovi: to see into the future
AntiSquid: when i get time struct
OBenjOne: I may have found a bug in Back to the Code
OBenjOne: Im not sure yet
Smelty: o.O
Smelty: coding escape?
OBenjOne: my code threw an error but I still won
Smelty: lol
**BlaiseEbuth will not laugh yet so.
OBenjOne: https://www.codingame.com/replay/559791821
OBenjOne: Excuse my terrible code as you can see it's not working
BlaiseEbuth: Crashs, and even invalid commands are not in the lose conditions.
BlaiseEbuth: https://www.codingame.com/replay/559792332
OBenjOne: Oh, thats interesting
BlaiseEbuth: Old multi, more permissive.
Smelty: interesting
Wontonimo: i don't see a brutaltester ref for BotG. Was there ever one?
Wontonimo: hey kresteodymium, have you tried the bot battles or the practice challenges?
Wontonimo: well you are in luck! Today is your luck day
Wontonimo: there is a special on right now, finish https://www.codingame.com/training/easy/mars-lander-episode-1 and gain access to episode 1
Wontonimo: 2
KiwiTae: Wontonimo https://github.com/Illedan/BOTG-Refree
Wontonimo: OH! Thanks KiwiTae !
Astrobytes: You're doing BotG?
Wontonimo: yeah, i've done some work on my bot
Wontonimo: got to bronze. nothing awesome, but progress
Astrobytes: I gave up at Bronze.
KiwiTae: Wontonimo my bot in botg is funky if u get a chance to play it :")
Astrobytes: There was paint drying that needed watching.
Astrobytes: Funky? Like George Clinton funky?
Wontonimo: oh KiwiTae, you be in Legend. Sorry man, but Legend for BotG is probably out of my care zone
Wontonimo: maybe i could figure something out, but ... no ... wait ... your bot is python !?!
KiwiTae: Astrobytes i dont even check the minions ><
Astrobytes: It's not much of a search game iirc
Wontonimo: okay, that's good news
Astrobytes: I really don't like the game. But that's imo only. Don't let me influence you. Many people enjoy this game. /disclaimer
Wontonimo: I have some ideas about NN for BotG. It hinges on having the ref, because my level of interest does not include rewriting the ref.
Astrobytes: Ugh. Cat vomited. Laters.
Wontonimo: pro-tip : don't try to cover up cat vomit with human vomit.
Astrobytes: If-else ftw, wouldn't waste time on NNing that
Wontonimo: you may be right
Astrobytes: Anyway, take care man, cya tomorrow
Wontonimo: cya man
Me42: hi, new to this. What are the debugging options (C#)? Can I Debug.WriteLine or what?
Wontonimo: yeah, print to stderr
Wontonimo: instructions are in the starter code
Wontonimo: if you deleted the starter code, you can get it back by clicking the circle-arrow thing in the upper right corner
Me42: why indeed it is. thanks
Wontonimo: but that will delete your current code
Wontonimo: but you can ctr-z to get it back
Wontonimo: lol, no prob
Wontonimo: what challenge / bot / optimization are you working on?
Me42: Labyrinth. Was thinking about a just-a-little-less-stupid version of brute force recursive exploration algo (with pruning for less-than-optimal-path), including some logic for the uncertain area's (optimistic routing), but I think the max 150 ms delay will pretty much kill that off :lol:
Me42: and some nifty backtracking involved of course
AntiSquid: you can go legend Wontonimo for BotG, you got legend for SC21, BotG is easier to get legend
Smelty: o.O
AntiSquid: Me42 BFS, store the path, you can do it .
Me42: yeah, path will be in the recursion (backtrack). But I'm falling asleep here.. :lol:
Me42: I can figure this out ;)
Me42: but your support is much appreciated :thumbsup:
Wontonimo: oh thanks AntiSquid, I'll give it a go
Wontonimo: Go Me42 Go! That's a good challenge
Wontonimo: :wave:
Wontonimo: ng good people of cg
Smelty: bye
Chainman: hey
SoggyBunzz: world chat has been silent for 3 hours... not something you see every day lol
ZarthaxX: yeah it happens prety often
ZarthaxX: except on contests
Chainman: pewpew break the silence
ZarthaxX: :rofl:
Smelty: :rofl:
Chainman: This one does not spark joy