Chat:World/2020-06-25

From CG community
Jump to navigation Jump to search

Nghia64582: shortest mode is stupid idea

Nghia64582: c++,java alway lose

Nghia64582: javascript takes all

TyLuu: also python

code_maniac: Ruby as well

RehatbirSingh: hi

jacek: good morning

Tim_McSim: Hello! :)

JulisTaf: Hi ! :wink:

Default avatar.png swiftpipe: javascript

DieuMQ: hello

Default avatar.png Acerbic: "shortest mode" needs a World Best with Your Language score on the results board. So if you are using some exotic lang, you can still see how well you did.

Default avatar.png Acerbic: Stupid site, why is it asking me to prove I am not a robot AFTER EVERY match?!

LelouchVC2: it stops asking after a while

Default avatar.png Acerbic: its like the 3rd time in a row. :(

LelouchVC2: after a long while

Default avatar.png Acerbic: i am not hopping IPs or anything fishy...

jacek: youre clash addict

Default avatar.png Acerbic: its not an addiction, I can stop at any time. :-P

Default avatar.png CodeMonster0214: ok

Default avatar.png Zerp: anyone know how to sort a list using a matrix in c#?

Default avatar.png Zerp: i have a list of factories neutral/enemy factories and i have a given factory, that's mine. I want to sort the list by the distances from enemy/neutral factory to my factory using a distance matrix

WINWINWIN: have a get_distance method which takes two factories and returns the distance from the matrix between them

WINWINWIN: and use a quick sort just change a[i]]>a[i] to dist(a[i], req) > dist(a[j], req)

WINWINWIN: Also @JBM time is running out... take trolls vs castles out of WIP for approvval?

Default avatar.png JBM: Time is no issue

WINWINWIN: But if enough people dont see it during the approval phasse what happens?

Default avatar.png Zerp: wait doesnt c# have quickSort built in where i just have to supply the function?

Default avatar.png JBM: Huh?

WINWINWIN: Code the quick sort on your own :/

struct: dont do that

struct: C# has sort ofc

Default avatar.png Zerp: so List.Sort(dist(a[i], req) > dist(a[j], req)

Default avatar.png Zerp: am i the only that doesnt like/ find it hard to understand microsoft's documentation?

Default avatar.png Zerp: like all the code examples are > 150 lines

Uljahn: you should really spend some time on the basics :/

Default avatar.png Zerp: i mean this is their example of how to use List.Sort() https://hastebin.com/ukawiqebob.c#

Default avatar.png Zerp: almost 200 lines

Uljahn: just search stackoverflow.com then

tomatoes: this example not just sort, but "sortable" objects

dbdr: Acerbic: try the golf puzzles

dbdr: JBM is playing the long game

dbdr: Troll vs Castles 2037

Default avatar.png HauTran: really

Default avatar.png jaheerkalanthar: hello python

Default avatar.png Zerp: would this work as comparison function so List.Sort(thisFunction)

Default avatar.png Zerp: https://hastebin.com/eqalapapax.cpp

Uljahn: best way to figure out is to try it yourself

Uljahn: this chat is not meant for spoon-feeding i guess :/

tomatoes: maybe you want .OrderBy?

Uljahn: literally the first answer for "csharp sort" on SO

Uljahn: Automaton2000: pls teach me senpai

Automaton2000: i think it's a bug

struct: I might have a bit of free time to port chess

Uljahn: ^

struct: But not sure if I should or not

struct: I have mixed feelings on it

tomatoes: some weird modification maybe

struct: some people asked for 960

struct: Starting positions are randomized

struct: 960 stands for the number of starting positions

tomatoes: hm, i don't like this thing in tron. but don't know

Default avatar.png Zerp: what if your compare function needs more parameters than x and y?

Default avatar.png Zerp: https://docs.microsoft.com/en-us/dotnet/api/system.comparison-1?view=netcore-3.1

tomatoes: they're mirrored, should be fine :thinking:

Default avatar.png Zerp: in this example they only use x and y and when calling the function doesnt even pass the parameters?

Default avatar.png Zerp: CompareDinosByLength(string x, string y)

Default avatar.png Zerp: the call dinosaurs.Sort(CompareDinosByLength);

RoboStac: yes, it passes that function to sort so sort can call that function with any x / y pair inside dinosaurs

Default avatar.png Zerp: can i pass more paramets into the comparison function like this

Default avatar.png Zerp: https://hastebin.com/eqalapapax.cpp

RoboStac: no, it can only take a function for comparing two elements that are in the structure

Default avatar.png Zerp: is there another way to achieve the same effect of that function?

Default avatar.png Zerp: i want to a sort a list of vertices id's depending on teir distances to a source, which is stored inside an adjacency matrix

RoboStac: the easy way is to just make dist global

RoboStac: otherwise you can probably do some sort of closure that capture s dist but I don't know enough about c# to say how to do that

tutubalin: CoC stories. Shortest mode. Trivial problem to convert hex to dec. Made 22 chars solution in Python3 just to find out that other people have already submitted it.

jacek: cool story bro

tutubalin: Urgent mode on: learn Ruby in 15 minutes.

Default avatar.png jaheerkalanthar: :innocent::rage:

Default avatar.png jaheerkalanthar: Hey guys im new to coding world but i love lot to code in my own way :heart_eyes:

Undaare: Hey guys if you first place in CoC please share your code! Thanks

Undaare: Hey guys if you first place in CoC pit would be very nice if you share your code! Thanks

tutubalin: i always share, even if i am on 2nd place )

Default avatar.png Zerp: Hey guys if you're last place in CoC please DON'T share your code! Thanks

Default avatar.png Zerp: :joy:

Default avatar.png Zerp: in gitc, can a distance between two factories be 1.5? or 0.5?

tutubalin: :)

Default avatar.png Zerp: sometimes when i hover over troops in debug mode it says ETA = 0 or sometimes 0.5

tutubalin: that awkward moment when you lose CoC because you didn't notices it's Fastest Mode and spend 10 minutes codegolfing

jrke: thats your misunderstanding tutubalin ;)

tutubalin: jrke that was another clash. you won fairly

jrke: :)

WINWINWIN: Joining the code forces contest now?

jrke: im doint halite on kaggle so can;t join codeforces

Default avatar.png tanmaycodernovice: their IDE doesn't work with this?

Default avatar.png tanmaycodernovice: 'dict_items' object is not reversible

Default avatar.png tanmaycodernovice: its working fine in my ide

Default avatar.png tanmaycodernovice: print(' '.join(str(v) for k,v in reversed(d.items())))

RoboStac: yeah, thats a python 3.8 feature and cg are on 3.7

Rynoz: :>

uvBoss: hello

uvBoss: anyone on who did the breakthrough?

uvBoss: https://www.codingame.com/multiplayer/bot-programming/breakthrough

uvBoss: or someone who knows bou minimax??

uvBoss: bout*

uvBoss: no one??: sob:

uvBoss: :sob:

uvBoss: i just need some idea on the heuristics btw

Default avatar.png tanmaycodernovice: @DiL need help bro

Default avatar.png tanmaycodernovice: DM

twitlydoof: does codingclash has some bots?

Uljahn: ye

Hjax: uvBoss whats your question?

Default avatar.png tanmaycodernovice: @_sensei_ please sahre ur code

Default avatar.png tanmaycodernovice: share*

uvBoss: @Hjax hello

uvBoss: cna u share some idea bout the heuristics in case no one wins?

uvBoss: and my minimax also cant go more than 3 steps deep

uvBoss: any ideas?

uvBoss: thanku for responding

pardouin: I think you should be able to re-submit in CoC if no one submitted in the meanwhile

pardouin: when you submit very fast in fast mode cause it's easy and you didnt have time to check tests and you discover a subtlety afterward it's... :/

Hjax: uvBoss what game are you playing?

uvBoss: breakthrough

pardouin: like you use floor instead of round

uvBoss: https://www.codingame.com/multiplayer/bot-programming/breakthrough

Hjax: ah, well intuitively having more pieces is better than having less pieces

uvBoss: yeah i have that

Hjax: having pieces farther along on the board is probably good

WillTheBill: Then you will get judgement from the system tests and be able to change your code based on that Pardouin

uvBoss: that too

uvBoss: xD

Hjax: many minimax searchers reward mobility, which is the number of legal moves

pardouin: sure will that's the point

uvBoss: explain

Hjax: uvBoss you give a bonus to having more legal moves, because if you have more legal moves than your opponent, you have more options to potentially outplay them

uvBoss: ohh

uvBoss: noice

uvBoss: ty

uvBoss: i m trying this one

uvBoss: anything else?

Hjax: i havent tried breakthrough, so i can only give general suggestions

uvBoss: oh oke np

pardouin: when you're in top 100 it's extremely long to imprve your rank so getting 8th for a small mistake

uvBoss: ty again

pardouin: you lose 20 places for nothing

WillTheBill: but it is part of the game to be able to validate the correctness of ones program

WillTheBill: based on the sample data

pardouin: in fast mode it's fast reading

pardouin: when a subtlety is hidden in the last example and was mentionned nowhere in the wording...

pardouin: ofc you can check all tests everytime but then you take the risk of finishing 2nd and you can lose ranks

WillTheBill: I always check every test, but given the problem description one should be able to write a correct program without any test data

uvBoss: @hjax any ideas on move ordering??

pardouin: if it's a medium problem where people will take 2-3min to write a code, you can afford losing 2 sec to check tests, but when the pb is very easy and takes 25 sec, losing 2 sec not cool

Hjax: uvBoss captures first, history heuristic

uvBoss: i do have capture first

uvBoss: but i dont understand the history heuristics?

pardouin: I know will but the problem is not always fully stated in the intro, sometimes you discover stuff afterward

uvBoss: memoization?

Hjax: whenever a move causes a cutoff at a given depth, you increment a counter for that move at that depth

Hjax: and then you order moves that have higher values in that table first

uvBoss: cutoff?? im dumb xD

Hjax: are you doing alphabeta?

uvBoss: ya

Hjax: so you know how you can quit early, if you exceed the bounds

Hjax: and not look at all the moves

uvBoss: ahh

uvBoss: yea

WillTheBill: it should be fully stated tho. If a test case is not within the possibilities of the general problem description, then the problem should not have been validated by moderators

Hjax: thats called a cutoff

uvBoss: i think i get it

uvBoss: noice

uvBoss: ty

Hjax: if you google history heuristic theres some good articles about it

uvBoss: oke let me see

WillTheBill: But i totally get your frustration. Sometimes the problems are not very well stated.

pardouin: I think i'll always wait 100% tests in the future to avoid that

pardouin: but it will be frustrating ^^

WillTheBill: Yea :)

uvBoss: and any ideas for taking advantage of the first turn time constraint?

uvBoss: its 1 sec for the first turn adn 100 for the rest

Hjax: just search for the whole time on the first move

Hjax: do you have a transposition table?

uvBoss: nope

Hjax: those are really useful, because they let you reuse info from previous searches

uvBoss: yeah i was thinkin bout it

Hjax: then when you search for 1 second on turn 1

Hjax: you see the benefit on turn 2 too

uvBoss: ahhhh noice

Uljahn: make some precalculations, LUTs, node pools

Hjax: because the table remembers

Hjax: the table can also be used for move ordering

uvBoss: its like memoization, if u have already calculated just get it

uvBoss: right?

Hjax: something like that yeah, but you need to keep track of depth too

uvBoss: okok

Hjax: if youve searched with a lower depth, the answer is not necessarily the same

uvBoss: boi this is getting real complex real fast

Hjax: but you can use the result from the lower depth search for your move ordering

Hjax: and maybe get a really fast cutoff

uvBoss: yea thats what i think really reduces calc time

uvBoss: if i can get cutoffs ezly

Hjax: yeah better move ordering is a huge improvement for alphabeta searchers

uvBoss: yea ty again

Hjax: np

Hjax: chat is very quiet today

Tim_McSim: Everybody is working hard... :D

Default avatar.png Zerp: if im getting an timeout error without anything else

Default avatar.png Zerp: does that mean it has to be because my code isnt optimized enough?

eulerscheZahl: or an infinite loop. both is possible

Default avatar.png Zerp: oh right, didn't think of that

eulerscheZahl: are you Zerplin? Why the new account?

Default avatar.png Zerp: yeah, i still have my old account just wanted to start from scratch on gitc

eulerscheZahl: i see

Default avatar.png Zerp: trying to learn c#

Hjax: oh euler is here, chat is now less dead™

Default avatar.png Zerp: immediately regretted it when i was told you could implement f-w in one line in python xD

Default avatar.png Acerbic: why do I have to re-do captcha after every match :(

eulerscheZahl: vs 4 lines with C# if you omit the { }. Floyd Warshall is simple in any language

eulerscheZahl: except malbolge

Default avatar.png Zerp: oof

Default avatar.png Zerp: mine is 30

Default avatar.png Zerp: hastebin doesnt seem to work for me atm :/ https://pastebin.com/EjqiT3Rm

eulerscheZahl: seems i did it a little more verbose than i remember.

eulerscheZahl: http://chat.codingame.com/pastebin/6364aed5-de13-47b7-ac99-786419b2825b

eulerscheZahl: do you know named tuples?

Default avatar.png Zerp: dont you need them to retrieve data from functions that returns tuples?

Default avatar.png Zerp: something like this

Default avatar.png Zerp: Tuple<int[,], int[,]> result

Default avatar.png Zerp: = ....

eulerscheZahl: nah. just a newer version of your Tuple<int[,], int[,]>

Default avatar.png Zerp: oh, nope

eulerscheZahl: both works, new language standard allows more syntactic sugar

eulerscheZahl: you can have this as return type:

Default avatar.png Zerp: just got it from a SO from probably a decade ago

eulerscheZahl: (int[,] dist, int[,] next)

eulerscheZahl: the (..) is the named tuple

eulerscheZahl: then instead of Item1 and Item2 you can refer to them by name (dist, next)

Default avatar.png Zerp: ah neat

Default avatar.png Zerp: hoped you could do something like that when i realized i needed to return 2 items

eulerscheZahl: public static (int[,] dist, int[,] next) findPath(int[,] matrix, int factoryCount){

Default avatar.png Zerp: but the tuple syntax was what i got when i searched for a solution

eulerscheZahl: at some point it's more readable to just create a new class for the return type

eulerscheZahl: the old Tuple support up to about 17 generic arguments, gets a mess

eulerscheZahl: like Tuple<int, string, byte, List<int[,]>, MyClass> theTuple

Default avatar.png Zerp: oh, because you have to declare the types all the time

eulerscheZahl: and you forget which meaning Item1, Item2, ... have

Default avatar.png Zerp: also don't like how you have to make a temp var to store the items, if you dont want to run the function multiple times

wlesavo: damn, i only now realised that the move that captures all the seeds in oware is not forbiden, just capturing is not happening

wlesavo: i though this is simply an illegal move

wlesavo: and im not even sure if it is worth fixing it

Default avatar.png Zerp: think this is enough info for gitc? i have shortest dist matrix, next vertex matrix, and a matrix that predicts the next 20 turns based on troops https://www.codingame.com/share-replay/474511336

eulerscheZahl: yes, 20 turns is enough

Hjax: hey eulerscheZahl, are you familiar with mcts solver

jacek: are you not?

Hjax: well, i understand how it works, but i was reading the paper on it

Hjax: and there is a part that doesnt make sense to me

eulerscheZahl: i didn't read the paper but implemented what i expected it should be like

jacek: if this paper is about LOA, its a mess

Hjax: yes the LOA paper, is it just wrong?

eulerscheZahl: https://tech.io/snippet/UGXgTEg

Hjax: because it looks just wrong

Hjax: namely the final move selection, they say they select the move that maximizes value + 1/sqrt(rollouts)

jacek: maybe not wrong but really unreadable

Hjax: which seems to favor /less/ rollouts instead of more

Hjax: which doesnt make sense at all

jacek: maybe in this case they meant -

Hjax: minus would make way more sense

jacek: so LCB instead of UCB

Hjax: but the paper says +

Hjax: im glad im not just crazy, and the paper is in fact a mess

Hjax: because i was like "man i thought i understood this, but now im not so sure"

jacek: well if you choose the A as negative number then its alright :c

darkhorse64: All of this can be summarized: if your opponent has a winning move, you played a losing. If all your opponents moves are losing, you played a winning move. Backpropagate

darkhorse64: *losing move*

Hjax: yeah, i understand that, it was just their final action selection that confused me

Hjax: which is apparently because its just wrong

Snef: isn't it to favor shortest winning move ?

Hjax: but what does visit count have to do with winning faster

Snef: you said rollouts ?

Hjax: in mcts non solver, you usually pick the move that had the most visits, but they are picking the move that has the least visits

Snef: it makes only sense if they talk about rollout and not visits

Snef: only makes*

Hjax: i mispoke, the paper says visits

Snef: ok then it's weird

Snef: you'll try othello mcts ?

Hjax: thats what im writing

Snef: vanilla first or ept ?

Hjax: vanilla

Snef: nice i'm also doing that

Hjax: i havent written mcts before, usually i do minimax

Snef: darkhorse64 the wood boss is ept right ?

struct: Minimax seems more succesfull so far right?

struct: at least for othello

Hjax: the highest mcts is tomatoes i think?

Snef: afaik yes

Hjax: yeah it wouldnt surprise me if minimax was better, but i wanted to learn mcts

Hjax: so here i am

Hjax: unrelated question, does anyone know of any attempts to use the alphazero style networks (value + policy heads) in an alphabeta searcher?

Hjax: youd think policy would be perfect for move ordering

jacek: if that would be copatible with eval

Hjax: value head is eval, policy head is move ordering

darkhorse64: snef: the boss is mcts/random rollouts/no solver

PatrickMcGinnisII: good info darkhorse64

Snef: darkhorse64 how many rollout ?

darkhorse64: 40k

Snef: i guess i need to optimize then..

darkhorse64: think of it as the original OOC wood1.

Snef: lol

Snef: not really comparable

darkhorse64: for strength

Snef: if i want to do mcts vanilla

Snef: it's really hard to beat this boss

Astrobytes: It rekt darkhorse first time around Snef, his own monstrous creation turned against him

jacek: he didnt reduce time?

darkhorse64: Yeah, I had to resubmit

Snef: it's like imagine uttt gold boss => mcts with 50k roll out

darkhorse64: Now, if you look at my leaderboard rank, there are other monsters lurking

darkhorse64: around

Astrobytes: Yeah, this league is genuinely scary

jacek: im noob, im still at wood :c

struct: It's where your bot belongs

tomatoes: i added flag to node if it solved in either way

tomatoes: easier than mess with ifinities

jacek: Hjax btw youre not the first one to complain about paper and asking own sanity

Astrobytes: I did the same

Astrobytes: Had to ask Smits about it

Default avatar.png Zerp: is it possible to separate vars in console.write with commas like in js? like console.log("string", var, "string", var, var);

Default avatar.png Zerp: been using $"{var} string {var}" but i find it really slow compared to using commas

eulerscheZahl: there are some format options, but nothing as "simple" as you want

eulerscheZahl: i guess the closest would be to put all your variables into a list and the do string.Join(" ", list)

eulerscheZahl: but the string interpolation is shorter and more readable than string.Join

jacek: javascript. readable. pick one

Default avatar.png Zerp: don't you think using comma seperation is readable?

Default avatar.png Zerp: you can write console.log("the value of var1 is, var1, and the value of var2 is, var2")

eulerscheZahl: you forgot some "

Default avatar.png Zerp: yeah xd

Default avatar.png Zerp: but you get the idea

eulerscheZahl: i did before

Default avatar.png Zerp: it felt amazing going from c to js, going back from js to c# can feel little rough sometimes :p

Astrobytes: I'm always happier going from JS to C. JS world is a Very Odd Place.

Default avatar.png Zerp: what do the find odd

Default avatar.png Zerp: the typecasting?

Astrobytes: Everything. It's just... a bit strange :) I mean it's useful and all, and flexible. Just not my comfortable area


code_maniac: But it's fun learn once write everywhere 😁😜

Default avatar.png Zerp: what about python?

eulerscheZahl: same: no strong typing

eulerscheZahl: i like python to write a few lines

eulerscheZahl: not that much when the code gets longer

Astrobytes: But less strange. I like python for doing bits and pieces here and there, but yeah, what euler said

Default avatar.png Zerp: i guess, havent done a lot of projects more than a few hundred lines

eulerscheZahl: and I like Django

Astrobytes: I've only used flask

Default avatar.png Zerp: been fighting this weird bug, just tried recreating it in a separate project. Once i did that it seemed to work as expected, so i guess i have weird typo somewhere t.t

code_maniac: Haven't used python so far. But i think in general dynamic typed languages makes it bit easy to start programming

code_maniac: I think JS has evolved a lot after ES6 earlier there was hell lot of problems, but they are some how trying to cope up with the problems which can be fixed

Hjax: JS's syntax makes me sad

Default avatar.png Zerp: example?

Hjax: i dont have one off the top of my head, its just i find python to be more pleasant to look at in general

code_maniac: You can use prettier to have a pleasant looking code 😂 "Kidding"

ekym: everything in JS is sad

PatrickMcGinnisII: anyone try to run all possible games in othello? I was thinking the possible games would be around 2.6x10^32 realistically...so would it take like 4M years to run?

Hjax: you want to solve othello?

Hjax: good luck

jacek: its in order of magnitude of checkers which has been solved

Hjax: checkers is only weakly solved right?

Hjax: its known optimal play is a draw

Hjax: but the optimal move isnt known for all positions

PatrickMcGinnisII: Just trying to figure out an opening book, I guess a could run a local mcts ... but what depth could i shoot for without worrying about time

Astrobytes: PHP.... hmm... depth 1? :P

PatrickMcGinnisII: locally Astrobytes

PatrickMcGinnisII: gheesh

Astrobytes: depth 2 then :P

Astrobytes: :D

PatrickMcGinnisII: I went thru this with TTT, I could get depth 3 on CG, but I could get 6 on my pc w/o pullin gout my hair

Astrobytes: There's a bunch of Othello databases out there with loads of games

Astrobytes: human and computer-based games

struct: https://en.wikipedia.org/wiki/Game_complexity#Complexities_of_some_well-known_games

Hjax: othello is tricky because you cant really generate an endgame tablebase for it

Hjax: since the board gains complexity as the game goes on, rather than losing it

PatrickMcGinnisII: tx struct, let me borrow a quantum processor for a day or so - so I can kill the P SPACE

PatrickMcGinnisII: ok, if you separate the board into concentric rings... and until you own an edge square you avoid the 2nd ring. Then when you own an edge square you change up the priority to keeping it while not losing a corner, then you can just ride out the end game knowing you have an advantage

PatrickMcGinnisII: i can't do 100k sims, maybe 6k if I'm lucky

PatrickMcGinnisII: fun to think about, hard to get a hair cut

Hjax: rings?

tomatoes: yinsh flasback?

Default avatar.png Acerbic: how in the world did they solve Power of Thor in under 60 chars... ima crying here.

Default avatar.png Acerbic: not really, but

Hjax: my best power of thor is 131 in python

eulerscheZahl: thor never goes north

Hjax: ^ i laughed so hard at that

Hjax: what a silly set of validators

eulerscheZahl: indeed :D

Default avatar.png Acerbic: @eulerscheZahl so you just abuse limited testing set?

eulerscheZahl: or even call another programming language

eulerscheZahl: write a good bash solution and then do system()

eulerscheZahl: i don't know if top python solutions use that trick

eulerscheZahl: i'm stuck at 108 chars :( that's doable without system calls

Default avatar.png Acerbic: php people just use backtick `. it goes into shell directly. cheats

Hjax: that would be useful if i had any idea how to code golf in bash

Default avatar.png Acerbic: i am at 109 in JS now. :( Thor!

AdamB: bash FTW!

Hjax: my solution uses a while loop, which is probably sub-optimal

Hjax: i feel like optimal is probably some "\n".join list comprehension with a zip in it

Default avatar.png Acerbic: @eulerscheZahl thx for the idea

PatrickMcGinnisII: Acerbic i never tries I always assumed CG ran in safe-mode

Default avatar.png Acerbic: @PatrickMcGinnisII i definitely have seen someone doing $i=`cat` for reading inputs

PatrickMcGinnisII: gtg, yall have fun

Astrobytes: cya Patrick

jacek: hmm unicode counts as 1 character?

struct: y

Default avatar.png Zerp: isnt there something like smileys counts as 2-3 unicode chars

struct: ☻

Default avatar.png Zerp: but if you do something like .length, it's 1

Default avatar.png Zerp: if i set a var1 equal to an object and set var2 = var1, does it make a clone or do they both manipulate the same object?

struct: they both manipulate the same

struct: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign

Astrobytes: I thought Zerp was doing C# struct?

struct: ah :p

struct: I think same still applies

Default avatar.png Zerp: explain a lot t.t

Default avatar.png Zerp: i thought it created a copy

Default avatar.png Zerp: pretty much what i was fighting with all day

Default avatar.png Zerp: but it doesn't seem like there is an easy way to create a copy?

jacek: :F

Astrobytes: Knew there was gonna be a dbdr submit incoming

dbdr: :)

dbdr: Astrobytes, the submit watcher

Astrobytes: Nah, I saw jacek's :F, figured that was a submit from either you or tric

dbdr: oh, missed that

jacek: :s

Astrobytes: Fking hell

dbdr: also not sure what :F means

trictrac: dbdr you are on the road of a full victory wtf !!!

Astrobytes: donno either, jacek uses that and :E when things go south

Hjax: dbdr has decided to give up on losing

Hjax: this winning strategy is working much better

Astrobytes: That is one helluva submit, gg sir, gg

dbdr: I was thinking exactly that Hijax

dbdr: I decided to win :)

Hjax: what did you change?

dbdr: everything

Astrobytes: wreckingMode = true;

Astrobytes: wow

trictrac: now it's MCTS ?

Astrobytes: Seriously

dbdr: minimax

Astrobytes: Did you swallow a game database or something?!

dbdr: do you guys use books?

Hjax: tric does

Astrobytes: Not yet

trictrac: yes only openings

dbdr: how did you compute them?

dbdr: I wonder if that can hurt

dbdr: losing the same way over and over

trictrac: Yes it can drive to this behaviour

dbdr: I saw a couple of scores repeating, but not that much

jacek: in this pace were gonna solve othello in 2 weeks

dbdr: lol

Astrobytes: :D

Hjax: you cant prove dbdr hasnt already solved it

dbdr: solving requires lots of space though

dbdr: 100K won't cut it

Hjax: 100% winrate, solved game :P

Astrobytes: That really is something, what a submit

dbdr: fun thing is, if I stay at 100% winrate and spam submit, I should be able to drive everyone betlow 0, right? :D

Astrobytes: You've definitely torn us all a new one dbdr

Astrobytes: lol don't even think about it

struct: No dbdrt

struct: you will get to a point

struct: where you lose points from winning

Hjax: i like how his score says decreasing even though he hasnt lost yet

dbdr: yes, but that's quite high

dbdr: so maybe not below 0

Hjax: what? winning should never give you a negative amount, unless the rating system is broken

Hjax: limit as rating difference -> infinity, 0 rating change

dbdr: https://wiki.faforever.com/index.php?title=How_Trueskill_works#Why_did_I_lose_points.2Fdon.27t_gain_point_with_a_win_.3F

struct: Ok its time to increase board size :smiling_imp:

Hjax: can you make a new league with a bigger board struct?

Hjax: then it wont fit in a nice long

struct: I could

Astrobytes: lol you can keep that

struct: But I said that I wouldn't

dbdr: it would only be a problem if two bots were drawing every match

dbdr: the two top bots

dbdr: I'm sure my bot can be beaten

Hjax: it would be funny if Astrobytes won the last game against dbdr

Hjax: would gain a ton of points

Nevykelis: Hello, im new with Haskell, and ofc im struglling with it. So maybe someone has some ideas. Im stuck in puzzles where i need to give output after one move again and again( i hope you understood me :D ) but i cant change my variables values ofc, because its haskell.

Astrobytes: lmao, that ain't gonna happen :D

trictrac: struct don't chose dbdr bot as boss we never see the 10x10 board he will be alone

dbdr: :D

struct: https://www.codingame.com/replay/474559240

struct: ouch

jacek: ?

struct: so many skips

struct: in a row

dbdr: I optimize for that, among other things

Hjax: congrats on the perfect submit

Hjax: i dont think ive ever seen that before

MSmits: grats dbdr

Astrobytes: Other than in really low wood leagues

Astrobytes: That was epic, gg sir

MSmits: is the CG cpu slower these days?

dbdr: MSmits will you join?

MSmits: yes, it is a matter of time

dbdr: cool!

MSmits: i will do it eventually

dbdr: bitboarding paradise ;)

Hjax: he just needs to finish solving uttt :P

MSmits: still finishing off schoolyear. Then have to kick some NN ass on Oware also . It;s unnatural to have 3 at the top :)

dbdr: 3 roughly equal?

MSmits: agade is a bit stronger than the others I think

Astrobytes: I think so

MSmits: from messing around with parameters

Supercoder77: php.

MSmits: i can find many configurations that beat recurse or robo, or both (narrowly), but never agade. I get at most 30%

dbdr: I'll resub the same, curious how the scores evolve

jacek: beaten by rust, wha6t a shame

MSmits: hard to test against

MSmits: how will I make an opening book vs you dbdr ? :P

dbdr: nope, I'm sending a compiled version

MSmits: ohh ok

dbdr: feel free to test in the IDE

MSmits: thats nice

MSmits: is this minimax btw?

dbdr: yes

MSmits: cool

struct: https://www.codingame.com/multiplayer/bot-programming/coders-strike-back/leaderboard?column=SCORE&value=INPROGRESS

struct: why CG is slow

struct: ...

Astrobytes: Any hints as to what you changed for this submit, roughly ofc dbdr?

jacek: i submited and progress halts

dbdr: yeah, I submitted and no game played :(

jacek: so youre last. noob.

struct: 143 submiting on CSB :(

Astrobytes: oh ffs, CSB recalc

struct: Maybe one day this will be fixed

Hjax: next contest, performance optimize the csb ref!

MSmits: the ref is not the problem is it?:

MSmits: i would guess the bots are

Astrobytes: lol struct, I posted it in the bug report

Hjax: mostly tongue in cheek

Astrobytes: As you were posting it in genera;

Astrobytes: *general

struct: It's fine

MSmits: btw, dbdr, I'm the one that suggested someone make othello, hinting that struct should do it, would be kinda odd if i then not wrote a bot :P

MSmits: just being lazy/slow

struct: So each promotion is 100 games right?

struct: 14300 games

struct: we will be stuck for a while

Hjax: what caused this?

Hjax: people got bumped above the boss?

struct: yeah

struct: or boss got below them

Astrobytes: :computer: :fire: :fire: :fire:

AntiSquid: too much CSB advertising

Hjax: how long will the server take to sort this out?

Hjax: hours?

struct: yeah

AntiSquid: 100k bots in the arena, people calling it a good tutorial, yet how many of those are still active? clearly not a fun game :p

Hjax: sad

Astrobytes: It really can't go on like this

AntiSquid: blame quid34, obviously the culprit :D

Supercoder77: bots are lame.

struct: hmm

struct: the number increased to 156

struct: I wonder if the boss is still going down

Default avatar.png Zerp: anyone remember to selectmultiple lines / rows in the ide?

Default avatar.png Zerp: so i can edit 2 lines at once

zakariamouhid: press alt and click in multi places

Default avatar.png Zerp: ty

Astrobytes: ctrl+alt + up or down arrows

Astrobytes: (also)

dbdr: that changes my desktop :D

Astrobytes: You can change the key bindings

SoLiDwAtEr: Hi guys, is it a better strategy to solve puzzles test-case by test-case or try and write an algorithm to solve all test cases in one go - if you're trying to improve your problem solving skills?

Astrobytes: I *had* to disable Ctrl-S

dbdr: SoLiDwAtEr: better to solve the general case

dbdr: testcases are just examples

SoLiDwAtEr: interesting

Astrobytes: There are hidden validators to prevent you hardcoding the solution you see

Astrobytes: 14 losses in a row, then I win against tric :/

zakariamouhid: I the IDE that used here like vscode, exist in github ?

Astrobytes: yeah, Monaco

Astrobytes: (is the name)

zakariamouhid: yeah, thank you :)

Astrobytes: np

SoLiDwAtEr: okay thanks, i'm terrible at these interview tests in general

Astrobytes: Just chill, use your language knowledge and apply your brain, you'll be fine

SoLiDwAtEr: yeah i don't get it, how i struggle with the easy ones and i've got 9 years dev exp lol

SoLiDwAtEr: god i hate this stuff lol

NightScap3: dark mode would be so nice

Astrobytes: Click Settings, to your left of the screen

Astrobytes: Or Settings 'gear' icon, below chat for the chat

dbdr: https://www.codingame.com/share-replay/474595402

dbdr: gg jack

dbdr: jacek

darkhorse64: still 99%

darkhorse64: fix it

dbdr: yeah :D

dbdr: though I'll probably refactor first

pardouin: it's when you get 1st in poorly worded CoC vs 8 with only 90% that you realize you should NEVER play with bots

SoLiDwAtEr: how long should it typically take to solve easy puzzles ?

pardouin: 20 sec

SoLiDwAtEr: ah i need to improve then

pardouin: if you're talking about the "training" part, ofc some of them are longer

SoLiDwAtEr: yeah i'm talking about the practice easy puzzles like the descent and thor etc

pardouin: it should be more like ~5min then

SoLiDwAtEr: i feel like i'm taking too long to solve them but it doesn't really say how long people are taking on average to solve them, would be a nice metric to have

SoLiDwAtEr: yeah then i'm taking way too long, or thinking about them too long, takes me about 40min-1 hour

pardouin: if you need practice there are websites with easier problems

SoLiDwAtEr: thanks, i'll just keep practicing maybe i'll get quicker

pardouin: to warm you up a bit

SoLiDwAtEr: i like this one because it's kind of like playin an RPG game

SoLiDwAtEr: leveling up etc

pardouin: in CG it's often "game" oriented so only reading about the context, the rules etc is already long ^^

SoLiDwAtEr: i'm just hoping the more of these puzzles i do, the better i will get

pardouin: sure

SoLiDwAtEr: i've got 9 years dev exp but in real life it's more about design patterns than actually solving algorithms like this

SoLiDwAtEr: different mindset

pardouin: have you tried Clash of Clans ?

SoLiDwAtEr: the mobile game?

pardouin: it will be hard at first but it's funny

pardouin: sorry : clash of Code*

SoLiDwAtEr: oh no, is that in codingame?

pardouin: yes

SoLiDwAtEr: is this collaborating with other people etc?

pardouin: you compete against players /bots to solve problems as fast as possible or with as few characters as possible

SoLiDwAtEr: ah right, i won't be any good at that if it's taking me so long to do the easy puzzles lol

pardouin: well, give it a try, sometimes it's really easy

SoLiDwAtEr: sure, i will do some more of these easy puzzles first as i've only done the descent and power of thor 1 at the moment

SoLiDwAtEr: and then i might try something like clash of code

SoLiDwAtEr: or do you think that clash of code will help me improve quicker?

pardouin: you can do both

SoLiDwAtEr: :thumbsup_tone4:

Default avatar.png badAtCoding: clash of code = fun!!!

Default avatar.png Acerbic: to hell with this site! clash of code is fun, but doing recaptcha after EVERY MATCH is too much for me. Goodbye y'all.

Hjax: clash of code isnt the main appeal of this site in a lot of peoples opinion

simpledark: any other sites similar to clash of code guys?

Hjax: not that im aware of

LelouchVC2: not if ur based outside of The pacific ocen