Mr.Py: bye world
bafian: does "my last play" bot work or is my browser failing me ?
Avxgr: You need to shift the letters depending on the integer shift, which means, if you have the letter H or h which has the position 7 in the english alphabet, and then you have a shift of 2, you will subtract the shift to the position of the H or h = 7 - 2 = 5 and you will replace the H with the letter at position 5
Uljahn: no response during allowed time limit, you either have infinite loop or not printing to stdout
jacek: what a nice sunny snowy day
Beerus: You are given a sequence A1,A2,…,AN. Find the maximum value of the expression |Ax−Ay|+|Ay−Az|+|Az−Ax| over all triples of pairwise distinct valid indices (x,y,z). I am sure the solution is 2 * (max - min) , so why it's wrong when i submit
BlaiseEbuth: Stop flooding LudwigMM, last warning.
BlaiseEbuth: Hey robin...
Ard1998: i have to writy dirty if i want to get that 3 min challange :joy:
Ard1998: fast and furious
Ard1998: its like i spend way to much tine naming my vars
Ard1998: because ny nose itches of to many one lettr names
Ard1998: oof, no shrug emoticon
Ard1998: me at i thught 18
Ard1998: i was late to the party :slight_smile:
jrke: i started coding when i was 12 years old
jrke: and now i am 13years old
BlaiseEbuth: I started coding when I was 13 years old. And now I have... Never mind, forget... :no_mouth:
KiwiTae: I first used a computer when i was 19
Wontonimo: 8yrs old using a vic20
Wontonimo: i doubt I really learnt much in those first 5 years other than I needed a solution for keeping track of changes and modifications
JLukeSkywalker: how many characters can we have in our code?
BrandonTroy: @saad-py, when you said the solution to n+n//2, n=2 is 2 you're wrong. The operation n//2 happens first, so the answer is actually 2 + 1 which is 3. The answer is always n + 1/2 of n. lol
struct: 100k JLukeSkywalker
HuynhNgocHai: How can i become good coder?
Dzonzla: can someone explain to me whats up with CodinGame Sponsored Contest
Dzonzla: the one that shows up on practice
JLukeSkywalker: what do you want to know about it?
Dzonzla: yeah, nothing, i kind of missed the point of the thing, it confused me that every option passes the testts
JLukeSkywalker: yeah lol, its an optimization puzzle
jacek: this would quite easy puzzle of the week
jacek: like 2048
jacek: AutomatonNN what's your favourite game?
YurkovAS: jacek in othello you use NN?
AutomatonNN: eulerscheZahl is there a way to see a good strategy to learn in different ways in code golf if you d
jacek: YurkovAS n-tuples + frontiers + mobility
jacek: oh, im 1st in othello :o
jacek: best-first minimax
reCurse: Yeah because counterbooking is apparently all the rage
reCurse: OldJohn :unamused:
jacek: i managed to totally rewrite my training 'pipeline'. i thought my small nn was saturated and couldn't learn more. boy was i wrong
YurkovAS: YurkovAS thanks
YurkovAS: jacek thanks
jacek: you're welcome, jacek
kovi: how small is small?
Uljahn: how many weights?
Spacialman: I got question for anyone who can help me. I am high school senior who just got accepted into full sail university. I am wanting to get better at coding so I am a little ahead of my class. Is there anyone who can help me?
jacek: do some puzzles here then
jacek: practice. if you know some basics, you can do it
jacek: this is not site for complete newbie who cant code at all
Passifi: build apps games are always hot, do some puzzles here, there are a couple of theoretical things I found really helpful basic pc architecture and knowing binary arithmetic doing the from nand to tetris course made it click for me then rinse and repeat and be prepared to be frustrated :)
jacek: thats good enough
Wontonimo: Spacialman, something has helped me is at the beginning of every week to pick a small program (think hello world) and every day of that week code it using a text editor until you can do it from memory. The next week, pick a different small program. At the end of the month, that language will feel a LOT more natural to you and you won't be so dependant on autocomplete and google searches for basic stuff
Wontonimo: I do that maybe once every couple years when picking up a new language or framework. The last time i did that was for angular, then before that it was tensorflow, then php, etc
Papaver: Hi :)
Papaver: Do you still need help? :)
Papaver: Ok ^^ Enjoy your evening
jacek: how to ask questions...
Spacialman: What do you mean?
jacek: ask specific question instead of "can someone help me?"
Papaver: That would help the helpers!
Spacialman: lol. Makes sense.
jacek: when you're so good you lose points by winning
MSmits: in which game are you doing that?
jacek: rebless losign points to kowi in bt
MSmits: rating difference > 12 i think reCurse or whatever the limit is
jacek: huh? it leaderboard there is no green dot
reCurse: Did that green dot ever work?
reCurse: So good news, I have a 3080. Bad news, now my RAM can't keep up :cry:
Spacialman: Stick with the 3070
Spacialman: It's what my dad uses and it's amazing
reCurse: Ok cool, but I have a 3080 and it's amazing too
reCurse: But I can't keep it fed because RAM doesn't keep up
Spacialman: is it Geforce?
jacek: god for you
reCurse: My code is all cache miss now
reCurse: 85% dram stall lol, never seen that
kovi: i broke my bt bot. what is the expected playout count there?
reCurse: In BT?
kovi: yeah, i know mcts may not be best there
reCurse: mcts and playouts are 2 different things
jacek: oh my
MSmits: kovi I don't think we have numbers on that
MSmits: the few people that do mcts, dont do a full random rollout
jacek: only lette
MSmits: someone slap jacek around a litt
jacek: i cant type
kovi: hmm, yeah cant compare non-full
jacek: playout count is 1, you only need to know 1 best move [solved]
reCurse: Your trolls are getting weaker
MSmits: that's why i said to slap him around a little
jacek: maybe next week ill get brand new pc
reCurse: What is it
jacek: why ryzen of course
reCurse: So... details...?
jacek: ryzen 5800x (16 threads), geforce 2060 rtx. right now i have athlon 860k :unamused: (4 not-so-full threads). so i expect big boost here
reCurse: Pretty good upgrade yes
jacek: and fortunately what im doing now is quite parallelizable
kovi: nice jacek
reCurse: Those cache miss make me question my cpu upgrade, might wait a bit
reCurse: Besides rocket lake seems more like late q1 apparently :unamused:
jacek: fsck intel, get amd :*
reCurse: When I read about all problems people have with amd in general, and their lack of avx512...
reCurse: Apparently it can be quite difficult to overclock your ram with a ryzen
jacek: avx512 slows down the clock eh
reCurse: Yes but if your throughput is higher and you stick to a high performance workflow who cares about the clock
reCurse: What it's not good at is sporadic use, true
reCurse: Oh and losing vtune... I can't quite bear the thought of that
jacek: the vwhat
reCurse: Intel's cpu profiler
reCurse: Best in class
AntiSquid: how much ram jacek ?
jacek: im gonna for 32gb
AntiSquid: i don't understand your graphics card choice though
jacek: it was the one available
AntiSquid: no 3k series available ?
jacek: besides what im doing now isnt gpu intensive yet
AntiSquid: why the oO, last i checked they were supposed to be same price, not sure how much the shortage dragged the prices up
reCurse: They're very hard to find, not sure how the situation is in europe though
reCurse: Doubtful it's better
AntiSquid: UK is probably worse :P
BlaiseEbuth: Yeah... A lot of people bought gpus preventively as the start of the covid crise. And now there's no more in stock. :/
reCurse: As far as I understand it's a gddr6 shortage
AntiSquid: preventively ? more like bulk purchases and then auction sales
reCurse: I think I need to revisit my whole pipeline god damnit
BlaiseEbuth: They've probably realized that toilet paper will be more useful...
reCurse: Well I'm not sure how preventively, but people need to stay entertained
reCurse: Lots of people had no time for gaming, but now...
BlaiseEbuth: Hmm... A lot of people have no more money to buy gpus...
reCurse: You would think that, but there's also a lot who do
BlaiseEbuth: The ones who suddenly inherited probably...
AntiSquid: where are gpus made better question, what slowed down transportation
BlaiseEbuth: Not enough healthy chinese kids to produce them I guess.
reCurse: Any more kneejerks we're missing?
AntiSquid: well they probably had their door sealed in by the baoan
Westicles: keep in mind every so-called gpu sold is a bigger load on the people simulating our universe
reCurse: Not sure a gpu comes close to simulating a person :p
AntiSquid: how do you know that Westicles, the simulation gets slower for them but we would still experience same passage of time
Westicles: Maybe they are HW limited? These are tough times
MSmits: AntiSquid is correct
MSmits: it might be gpu induced time dilation
reCurse: Is this why time goes so slow in meetings?
MSmits: who knows, maybe they are at this moment, complaining of 85% cache misses
MSmits: reCurse makes sense to me
Westicles: Two puzzles in a row now where I have to call python eval from c++ to solve. Very sloppy
MSmits: what does that do?
MSmits: call python eval from c++ ?
Westicles: Fun with Set theory and Order of Oopserations!
Westicles: eval can evaluate expressions (+,-,unions, etc)
ngdangtu: Anyway, does anyone have the raw input of the fourth testcase of this puzzle (https://www.codingame.com/ide/puzzle/dungeons-and-maps)
Westicles: percent of validators passed
Uljahn: TrueSkill, search the forum for more info
jacek: i think he meant the ones with 100%, 90% etc
MSmits: damn bitboards, i just spend 3 hrs finding a bug where i shifted a 16 bit integer to the 18th bit, thinking it was a 32 bit integer =/
reCurse: Paying my respects
kovi: finally some improvement on bt
MSmits: cool, still random rollout?
MSmits: thats pretty impressive
MSmits: what rank?
kovi: ept ofc (before i got attacked)
kovi: top5 is probably minimax (+nn)
MSmits: not bad at all
kovi: also my start/advancement is totally noob
kovi: rollouts dont tell what is a good opening
MSmits: thats why you have opening books
kovi: here we go again?
MSmits: relax, i am not suggesting he break your nn
MSmits: just a general opening book is fine
kovi: i would rather copy it
kovi: interaction is low in the first 10 turn
jacek: maybe try the usual openings from the paper
Westicles: I love the book argument.
MSmits: I just realized something. If bots are extremely deterministic, you can just do man in the middle and let them play against themselves, hardcode the moves :P
MSmits: they will beat themselves
MSmits: never did that, but should work. Moral of the story, get some random in there
reCurse: Just get some random :lul:
MSmits: Your nn should be strong enough to be able to pick between two good moves
MSmits: if their eval is close enoguh
reCurse: I don't think you realize how much it weakens your strength
MSmits: well it's hard for me to guess, but I assume that when there is 1 winning move, there might be more than 1
reCurse: So you know what the good move is
reCurse: So you spend more time searching into it to prepare
reCurse: Except now you need to find another good move and split your efforts
MSmits: no thats not what i mean
MSmits: say you have 8 moves to choose from
reCurse: I understand what you mean
reCurse: But those cases you mention are very rare
jacek: dont you use softmax in your selfplays?
MSmits: 2 have eval 0,91 and 0,90, the rest are <0,5
MSmits: ah ok
reCurse: You need to provoke it to happen often enough
reCurse: And that costs
MSmits: hmm, it should not cost the search itself
reCurse: Of course it does
MSmits: i meant to only add random to the final move selection
reCurse: You don't get a good value out of one eval
reCurse: You need to spend a lot more than that
jacek: i use random in my uct, and it works somehow
reCurse: That random at the beginning can be catastrophic
reCurse: The beginning is where it's most unsure
reCurse: So small differences in eval is all that tells you where the good move is
MSmits: makes sense
reCurse: The actual irony is the good way to counter that is to prepare a varied opening book with longer thinking time to make sure they're good moves
reCurse: But fuck me I've got better things to spend time/compute on
MSmits: btw, i had a thought the other day about NN vs opening books. Say you play a random game like onitama
MSmits: it's harder to train a random game than the same game with fixed openings isnt it?
MSmits: the NN has less variety to deal with
reCurse: Eh, it might be the other way around actually
MSmits: i am assuming the opponent does not use any books or anything
reCurse: You don't need to worry as much about exploring enough
reCurse: The randomness provides implicit generalization
MSmits: ok, then let me rephrase. The final bot will play better moves, if you were able to get past this problem
jacek: that could be reason why td-gammon worked so well, you have random from the game
MSmits: sure, but you can introduce this random yourself cant you?
MSmits: it's just alittle more work
reCurse: Yeah and it's another art form to pile with the rest
MSmits: but what i meant is not the "hard" for the creator
jacek: yes, to provide different experience for the nn
MSmits: but for the bot itself
reCurse: No no no
reCurse: It's hard for the creator that has to fine tune
reCurse: Exploration strategy is another thing to fine tune
reCurse: If the game has random starts, no need to worry about it as much
kovi: ok, im done uttt and bit for a while which other game is good for mcts?
MSmits: but, the bot should eventually be able to play a fixed opening game better than a random opening game, assuming you got past this problem, is what i am saying. Assuming you fixed the randomness
jacek: bandas? :thinking:
reCurse: Only do bandas if you hate your life
reCurse: I don't think that's necessarily true
MSmits: bandas is the only good game for fully random rollouts besides uttt
MSmits: ok, let me use an example
Astrobytes: Because it's shit?
reCurse: Either it generalizes or it doesn't
MSmits: othello really does have different gamestages
kovi: thx. recurse: you mean i shouldnt even try to find heuristics?
MSmits: non-NN bots use separate evals for early, mid and endgame
reCurse: kovi: Most games in bandas start extremely favored for one player, so it doesn't matter much what you do
MSmits: so it's not that weird to assume a NN will use different parts of its network
kovi: oh lol
MSmits: if the early game is very similar, doesnt it require a lot less NN "space" to play well
reCurse: Sure but I don't see any reason why it would play fixed openings better
kovi: yeah, i wanted to mentioned that msmits
kovi: if the opening can be separated
reCurse: NN doesn't encode opening books
reCurse: It finds patterns
MSmits: of course
reCurse: How much "space" is needed for it is extremely arbitrary
MSmits: but what if the opening patterns are different
reCurse: You can make those assumptions
MSmits: for example with forced openings
MSmits: what if you trained it on a fixed start
MSmits: but then it had to play forced openings
MSmits: what would that do?
MSmits: or what if your UTTT NN was forced to start in the top left corner
MSmits: instead of the middle
reCurse: That's hard to assume anything about
MSmits: even though it does not hardcode openings
MSmits: it may still "make use" of the fact that the opening is fixed
jacek: just like human
MSmits: so you're still kinda training it to play openings
reCurse: But that doesn't say anything about how it generalized
reCurse: For all you know it generalized well enough that it would play just as well on an opening it didn't see
MSmits: true, thats hard to guess
reCurse: In fact that's the biggest point of all that
reCurse: You're working very hard to get it to generalize and not overfit
reCurse: If your fixed start caused it to overfit you probably needed to finetune it better
reCurse: Unless the fixed start is so wildly different, then ok maybe
MSmits: sure, but you dont train it on states that will never be encountered in areal game
MSmits: maybe at first
reCurse: You are training it with the expectation it will understand unseen positions
reCurse: Hence, generalization
reCurse: Let me put it this way
reCurse: Open a random chess puzzle
reCurse: It's possible it's played out of a position/opening you never do
reCurse: But you'll start applying your knowledge to find patterns
reCurse: Analyze weaknesses
reCurse: NN does the same
MSmits: yes but this assume the early game and mid/late game can use the same generalizations
MSmits: if the early game is a completely different beast, it might not be generalized well
MSmits: and might not need to be either
reCurse: What I'm saying is you'll have to skew your early game very hard
reCurse: For it to have an effect
reCurse: Like say trade queens on move 5 and it never knows a queen even exists
reCurse: Then ok, sure.
reCurse: Who cares
MSmits: well i am just wondering about uttt here, because the early game is so different from late game
MSmits: quite hard to play for a regular bot
MSmits: your bot did seem to come up with teccles heuristic
reCurse: It did
MSmits: or whatever nn equivalent it is
reCurse: Also came up with interesting strategy I can't quite word
MSmits: letting opponent win a board by using too many marks?
reCurse: Confining a player to specific boards
reCurse: While taking over the rest
MSmits: ah yes
MSmits: thats the same thing
reCurse: I guess
MSmits: if you win a board, you want it to be won with a small margin
MSmits: not with +3 marks
MSmits: otherwise you lose everywhere else
kovi: hmm, good point
MSmits: karliso mentioned this a while ago
kovi: so it is an early sign of weakness
MSmits: like a year, he never put it into his bot i think, but he says his bot does this
reCurse: I'm rather ecstatic it discovered it by itself tbh
kovi: i may try penalty there
MSmits: sure, but it's supposed to, if it hadn't it wouldnt be nr 1
jacek: its awesome to see your bot find good strategies on its own
MSmits: kovi you might not need a penalty, you should just lose games where you do it wrong
MSmits: so random might pick it up
reCurse: That's why I think getting to chess will be a rabbit hole I won't get out of
MSmits: jacek agreed
jacek: especially unorthodox ones that are weird but good
kovi: recurse: the good thing is that you realized it....for a more complex thing we will not be able
kovi: to understand
MSmits: reCurse it might not be workable to try and do a NN for chess in the CG limitations
MSmits: but you want to do it elsewhere?
reCurse: Says who
reCurse: No one thought CG limitations would allow NNs
reCurse: And here we are
MSmits: sure, but i did say "might"
jacek: at very least, you can do NN PST that would be better than regular PST
jacek: piece square table
reCurse: Do these work in 960?
MSmits: should work fine for endgames
jacek: why wouldnt they
MSmits: 960 has the same endgames
reCurse: I'm unclear whether it would overvalue a bishop on b2, say, because it's always starting at c1
reCurse: Would it still be good if it was not as reachable
MSmits: oh are we not talking about endgame tables here
MSmits: just piece values?
reCurse: piece square table
reCurse: Value of piece on square
MSmits: that might be different near the start I guess
jacek: may be different for midgame and endgame
MSmits: endgame, doubtful
reCurse: I have the impression it might overvalue bishop b2/g2, but in 960 maybe it wouldn't care
reCurse: For example
kovi: just checked that
kovi: chess is so ... overengineered
jacek: when i touch chess again im gonna rewrite bot to bitboards for starters
kovi: i like to discover things
reCurse: Yeah I share your opinion
MSmits: oh yeah, that is another thought i had. NNs seem to win on a lot of simple CG games. I wonder what happens if we applied the same overengineering to some of those here on CG. I mean we never go *that* far coming up with good evals
MSmits: would the NNs still be beatable?
reCurse: That's why I like the NN approach a lot
reCurse: There's still a lot of ground to uncover imo
jacek: MSmits well nnue beats classical eval much
reCurse: I don't like nnue
jacek: nn for stockfish (and other alpha-beta engines), when introduced it gave +100 elo
reCurse: I feel they're going to hit a brick wall when no one works on classic eval anymore, what will they use as bootstrap
jacek: like 2-3 years strength increase in 2 months
jacek: the ones existing now?
kovi: stockfish beat leela
reCurse: To me that matchup would be a lot more interesting in tighter constraints
reCurse: Giving that much time to stockfish lets it calculate so deep it's kind of stupid
kovi: yeah, invite them here
jacek: you have ccrl and others for that
jacek: tcec is to see what gods would play
MSmits: they would have a lot of work minifying their bots. Also they depend a lot on huge tablebases :)
jacek: not that i understand chess anyway
kovi: seems that only trictrac has reasonable bot atm. or are there more?
reCurse: Not that I know of
reCurse: Once I beat checkers I may get to it
jacek: or the 2nd or 3rd
jacek: my is just material for 3-4 plies
reCurse: kovi: To answer your question about whether we would understand it, I am convinced there is a way to architecture NNs in a way that facilitates understanding.
kovi: interesting point
reCurse: Makes me think of CAM (class activation maps) that generates heatmaps on a picture so we can see what helped in the classification
reCurse: Minor change to architecture that allows that kind of inspection
MSmits: but would that be enough to tell you what is happening?
MSmits: isnt the problem that the patterns that get trained are very complicated?
reCurse: Figure out what you need to know and find a way that it becomes visible
MSmits: so the NN is too good to understand
reCurse: And prevent those complex patterns from happening
MSmits: but if you prevent it... you interfered with it
MSmits: makes me think of quantum mechanics
reCurse: Of course that's the whole point
reCurse: The optimization will find a way
reCurse: Just like we introduce regularization so it doesn't overfit on certain things
reCurse: We interfered, for a good reason
MSmits: yeah ok, but some patterns are complex, because they need to be
MSmits: it's always gonna be hard to understand those
reCurse: You can still skew it towards something you understand better
reCurse: Not saying it's easy
reCurse: But there's plenty of examples we did just that
MSmits: yeah ok
reCurse: Exploiting spatial coherence with convnets for instance
Grelak: quick question, I just made my first clash of code, it seems the ranking at the end is rated with number of characters so using scripting languages like python will be better than for example the C# which includes parsing?
jacek: shortest mode, yes
jacek: its about characters count only
3ataja: there three modes, Reverse, Fast and Shortest
HuynhNgocHai: How can i become dev ?
HuynhNgocHai: I'm just student
zapakh: It means you don't get a problem description, so you have to figure out what to do based on the test cases.
jacek: happy Caturday