Chat:World/2021-05-26

From CG community
Jump to navigation Jump to search

Default avatar.png IcePony_a124: я дед чат

Default avatar.png igoryan4ik: :pig_nose:

Default avatar.png igoryan4ik: :monkey_face:

Default avatar.png igoryan4ik: monke!!!!

Notter: Should I use custom exceptions for my bot?

Smelty: o.O

Smelty: depends on your goal

Lexer31: smelty

Smelty: yes?

Lexer31: meow

Smelty: meow

master._.mind: mau

Smelty: m e o w

Default avatar.png igoryan4ik: downs

Smelty: pog 26second clash

micoze-stella: m

Smelty: n

Nika22: щ

Hebo: чё?

DaCapo7: can we save our code to continue later ?

Notter: What code?

Notter: DaCapo7

derjack: good morning

derjack: robo :unamused:

derjack: retrained?

AntiSquid: how dare he

Default avatar.png ggenilson: morning guys!

Default avatar.png ggenilson: how can I battle with a single person?

KiwiTae: ggenilson you go to them and ask them if they want to battle with you, if yes start punching each other

aCat: ggenilson in multiplayer game ide you can substitute boss with any other person with the same / lower league

aCat: there are some remove / add buttons

olaf_surgut: https://www.codingame.com/clashofcode/clash/17746526f300c144f0ae113bf788e21b9eefb54

RoboStac: jacek - yes, plus some other changes

derjack: :thinking: noice

derjack: i didnt inspire you with that cache thing, did i

RoboStac: nah, it was training before that

RoboStac: and of course the version that looked to do better falls into an msmits trap

RoboStac: :(

derjack: i relative lose more vs agade. meh the rps

Default avatar.png megud: cum

babouindafrique: suce

Default avatar.png vivibgyctu: shuuuuuuuuuuuuuuuuush

Default avatar.png vivibgyctu: sheeeeeeeeeeeeeeeeeeeeesh

Default avatar.png vivibgyctu: http://chat.codingame.com/pastebin/2d9885e2-abd1-4a0f-9b4e-9f693cc05a24

sprkrd: advancing leagues in coders strike back is hell. I'm clearly better than the bronze boss, but there are so many people that climbing in the leader board seems almost impossible. And I'd rather have the full set of rules before investing serious time with it >:(

Sitja: if you clearly beat the boss you would be first in the leaderboard, you don't have to wait it is pretty fast to ramp up like in one minute you can know

Morcifer: @sprkrd, isn't it just a matter of time even if a lot of people are climbing in that league? I typically found that if I'm better than the boss, by the next day I'd have advanced to the next league.

Morcifer: And since getting to bronze is relatively easy, and rules stop changing at bronze, I never had that problem...

sprkrd: In CSB you don't get the final set of rules until silver

sprkrd: the tutorial reaches up to bronze league

sprkrd: @Sitja: I do think I beat the bot most of the time, unless I'm extremely lucky on the IDE and extremely unlucky in the arena. But yeah, I'll stop crying, have some patience and/or try to find the laziest way to beat people in the middle of the ranking (already got a suggestion)

Morcifer: Oh, crap, good to know!!

One thing that might work is try to look for people's code on github and see what's their startup code, though it doesn't help getting you out of Bronze of course.

sprkrd: That would be a solution, but I'd rather pull my own weight. Pride is my sin :D

sprkrd: I was just crying to vent, I'll eventually get around it ;)

KalamariKing: what we talking about

KalamariKing: csb I take it?

sprkrd: yep

sprkrd: I saw some talk yesterday on the chat about CSB that caught my attention. Never participated in CSB before

KalamariKing: about what? using nns?

KalamariKing: we were talking abt nns a lot yesterday, with ttt

sprkrd: Actually, the conversation was about GAs

KalamariKing: yesterday?

sprkrd: Maybe it was the day before yesterday

sprkrd: But I think it was yesterday. You from US, right? Maybe you weren't awake :D

KalamariKing: must have evolved since me A​ntiSquid and MS​mits were talking

KalamariKing: Yeah probably not lol

sprkrd: AntiSquid wasn't there, it was astrobytes

KalamariKing: ok yeah different conversation

KalamariKing: must have evolved to gas

AntiSquid: what do you need?

KalamariKing: oh hi, didn't mean to ping, sorry We were discussing yesterday's conversations

KalamariKing: Shortly after i left, it went to ga's, right

sprkrd: Yeah, sorry, didn't mean to ping either

KalamariKing: Anti I didn't ping you right? the zero-width space worked?

sprkrd: He went to his slumber again :joy:

sprkrd: Like an ancient dragon summoned on accident

derjack: :upside_down:

Default avatar.png Kongslayer69: Is there a twitch streamer hosting clash of code live right now?

KalamariKing: Idk

KalamariKing: Probably not a clash of code, but you could check the streams tab, that little stream icon in the top right

codeing: hello everybody

KalamariKing: Hello there!

codeing: does anyone know a free api to get histical weather ?

KalamariKing: Historical?

codeing: historic

KalamariKing: Google it

KalamariKing: https://www.ecosia.org/search?q=historical+weather+api&addon=opensearch

Tessar: ecosia it

Default avatar.png Voudrais: https://www.codingame.com/clashofcode/clash/1775021150c851471599bfcacc62292294c20a7

KalamariKing: yeah, ecosia it

Default avatar.png Jeff_93: Hi Guys! How can I set a specific seed in editor mode?

Uljahn: in browser IDE? set mode to "Expert" in settings, thenuse "manual" tab in options

Uljahn: *then use

ErrorCookie: What medium puzzles can you recommend?

Uljahn: any classic ones

Uljahn: those with no author specified

ErrorCookie: ok thonks .(^_^).

Default avatar.png Jeff_93: Thanks a lot, uljahn!

Uljahn: yw

Default avatar.png _FloPvP_: hi

Default avatar.png Shizznett: helo

Default avatar.png MitchPlease: Hrm, Im stuck on the second test case for the temperatures exercise

Default avatar.png MitchPlease: I have every other test case passing, but that one is messin with me

Uljahn: you mean testcase 02 "Only negative numbers"?

Default avatar.png MitchPlease: yeah, I have everything else passing

Default avatar.png Fashathus: Just glanced at that, looks like that's the only case where the correct answer is a negative number. I'd check how you're handling negatives

Default avatar.png MitchPlease: but the conditoins I made to meet choosing the right temperature makes it hard for me to access those negative numbers

Default avatar.png MitchPlease: choosing the right temperature asks me to invert a negative to a positive

wouter173: nigga

Default avatar.png MitchPlease: so, by doing that I make it hard to actually access the negative number in the array

Default avatar.png MitchPlease: its also in python so working in an array itself is kinda hard

Uljahn: wut

Default avatar.png wotroe: @wouter173 pls no swear

Default avatar.png wotroe: this is a christian server

Default avatar.png stingalleman: @wpiter173 excuse me?

wouter173: oke

wouter173: en wie

wouter173: wie

wouter173: wie vroeg

Default avatar.png wotroe: i dont speak german

jacek: oO

Default avatar.png Fashathus: trying to think of a tip I could give you that wouldn't just tell you exactly how to do it

Default avatar.png Fashathus: If you're not already I'd consider using abs() in python to help deal with negatives

Default avatar.png RogelioMENDOZA: Though be careful with the case abs(t) = abs(current_closest_to_zero)

Default avatar.png Fashathus: also instead of overwriting your negative values you could make a copy of the array of values in it and doing comparisons with that

Default avatar.png Fashathus: or values in it*

Default avatar.png MitchPlease: hmm, maybe I loop through the array and place negative values into another array?

Default avatar.png Fashathus: that could work, just be careful you handle the -5 vs 5 case correctly then

Uljahn: MitchPlease: or you could just track min and max bounds while looping through

Default avatar.png MitchPlease: gah im so close LOL

Default avatar.png Fashathus: That works too, I was trying to help without just telling you exactly what to do lol

Default avatar.png MitchPlease: yeah lol, i appreciate that

Default avatar.png MitchPlease: the weird thing is

Default avatar.png MitchPlease: print(min(tempArray, key=lambda x:abs(x-goalTemp)))

Default avatar.png MitchPlease: when I use that min function and print it out both tests pass

Default avatar.png MitchPlease: but then the conditions for handling the rest of the numbers arent met

Default avatar.png Fashathus: What's goalTemp? isn't this always closest to 0 so the goal would always be 0?

Default avatar.png MitchPlease: Yeap, I just made it a variable at the start

Default avatar.png Fashathus: Not sure, I don't do a lot of python tbh

MSmits: pycharm is funny. I am trying to convert my TTT NN to use keras

MSmits: pycharm is making some "suggestions"

MSmits: Typo in word "winrate"

ZarthaxX: :rofl:

MSmits: Suggestion, replace with "ingrate"

MSmits: not kidding

MSmits: it's also suggesting to replace tanh with tan

MSmits: (as an activation function...)

reCurse: Is it suggesting to replace keras with pytorch?

MSmits: good one... no :P

reCurse: Truly dysfunctional tool then

MSmits: lol

jacek: so truly oop tool then

MSmits: still not completely clear why someone would prefer pytorch over tensorflow/keras or the other way around

MSmits: I kinda went with the majority here

reCurse: Without trolling my main reason is tensorflow has been a versioning nightmare the past few years, so no telling what it's gonna be in the next few

reCurse: Meanwhile even quite old pytorch code works out of the box

MSmits: sounds like a very good reason to me

MSmits: well I am not too invested in either so if I end up not liking it, I can easily switch

reCurse: Not too invested either but trolling is fun

MSmits: ahh true

jacek: why would mod say trolling is fun

reCurse: I mean the good natured trolling

jacek:

MSmits: if i look at the actual lines of code written for this TTT experiment the part that is Keras is very tiny. I

MSmits: the TTT part is much larger

Default avatar.png relay: hy!

MSmits: yo

ErrorCookie: hello human

MSmits: hi mammal

reCurse: Did you just assume my species

MSmits: nah he was talking to me I think. I shared my species before

MSmits: noone knows what you are, so secretive

reCurse: I don't know either for what it's worth

MSmits: ahh ok

MSmits: literally the only hard part to converting my code to keras is figuring out how to format the input array

MSmits: i had a python list of lists

reCurse: Tensors typically go from last dimension to first in ordering

MSmits: ah I see

reCurse: Assuming it's contiguous

reCurse: I'm also assuming tf follows the same principles

reCurse: Only fluent in pytorch

RoboStac: if you are trying to pass a single state in you'll probably need to put it in a list too as it expects batches

MSmits: http://chat.codingame.com/pastebin/f96c3b9d-5b6c-4e0d-929a-4d313504a3a9

MSmits: no, i am not putting a single state in

Default avatar.png relay: Can you help me in my career? xd:relieved:

MSmits: the xor example had input_dim = 2

MSmits: so i figured i just put 27

KiwiTae: relay here's help o/

Default avatar.png relay: thx

MSmits: X = np.array([[0,0],[0,1],[1,0],[1,1]]) y = np.array([[0],[1],[1],[0]])

ErrorCookie: KiwiTae your bird looks tasty

MSmits: I just need to make it a np array i am guessing

MSmits: prolly doesnt understand list of lists :)

reCurse: Sorry this is too specific to keras for me

MSmits: yeah it probably is

Default avatar.png relay: o/ i don't understand how i have to prepare coding on this site...(((

reCurse: Alright BT fixed, what's next...

jacek: isnt pytorch == keras, or what am i missing here

KalamariKing: wdym

reCurse: No it's not at all

KalamariKing: pytorch and keras are different

reCurse: Keras used to be an abstraction over different ML libraries

reCurse: Now tensorflow took ownership of keras

MSmits: theano too

reCurse: So who knows if that's still really true

Default avatar.png relay: i don't understand how i have to prepare coding on this site...(((/o

KalamariKing: I think *correct me if I'm wrong* keras is higher-level to make pytorch (but mostly tensorflow) easier

MSmits: yeah it's built on top, they say "tensorflow back end"

reCurse: I'd rather work with the library directly than try to figure out what it's actually doing behind the scene when it inevitably messes up

reCurse: But I guess tf == keras now so

reCurse: shrug

reCurse: Maybe a symptom of google overengineering or maybe a symptom I'm just a monkey

struct: re curse is your stc NN?

reCurse: No it's oldschool

struct: ok, thanks

MSmits: this is probably just his contest code

reCurse: Why

struct: just wondering, it was submited around the time you started submiting NNs

reCurse: Ah, no I was still too newbie for that back then

reCurse: I could probably make it work now

reCurse: But then I'd rather finish my puyo clone and make a bot for *that*

jacek: youre doing contribution?

reCurse: Was

reCurse: I don't know what to do next tbh

reCurse: I have zero interest to fix othello and checkers

jacek: :soccer:

jacek: fix oware

struct: amazons, non bookable

struct: ezpz

StevensGino: can GA go into top 100 of CSB?

reCurse: Yes

jacek: oh i know, onitama!

StevensGino: which algorithm you use on CSB @reCure ?

reCurse: Neural networks

StevensGino: thanks

reCurse: I am hesitating between chess, ooc and finish puyo clone

reCurse: Not inspired by :soccer:, oware, amazons and onitama sorry

jacek: if you start chess, will there be the end of this?

reCurse: Well I'd just plug totozero, see what happens and hope that's it? :P

jacek: so many ways to bitboard it

reCurse: Though I might have to squeeze the NN a bit for 50ms

jacek: im using 30ms

jacek: for some reason over that it timeouts often

jacek: could be not so granual search interruption

reCurse: Ah right the random timeouts they won't fix

reCurse: This is actually upsetting

reCurse: Doesn't it just break most 50ms games?

MSmits: not at all

jacek: works well on oware or onitama

reCurse: Hm

MSmits: I get maybe 1 in 100 timeouts using 45 ms

reCurse: Ok then

MSmits: but chess i dunno

reCurse: Maybe it happens more in intensive periods

MSmits: jacek maybe your bot runs into situations where it suddenly slurps 20 ms between checks

jacek: yeah

jacek: who made the chess. who approved it :unamused:

reCurse: Oh right, how quickly I discarded the option of jacek's code being bugged

reCurse: :P

Default avatar.png MegaGirl: Can you guys help me understand pseudocode? My instructor returned my assignment again and i don't know what he wants.

reCurse: Not a school tutor sorry

Default avatar.png MegaGirl: That's okay. But do you have any recommendations on where I can go to understand it more?

NotHenricDizzle: from what i understand pseudocode is supposed to represent code instead of actually being code

NotHenricDizzle: like a blueprint almost

NotHenricDizzle: "if balance is less than 100 print 'insufficent funds'" would be pseudocode

NotHenricDizzle: because it's not an actual programming language

Default avatar.png MegaGirl: It doesn't have any syntax right?

NotHenricDizzle: yeah

Default avatar.png Bendu: Sounds about right, yeah

jacek: https://img.devrant.com/devrant/rant/r_2315470_J5vXC.jpg

Default avatar.png MegaGirl: Man, that's tricky cause you never really know what the instructor wants.

Default avatar.png Bendu: Yeah, especially since psuedocode isn't an actual language, so people may have different ideas of what to write for it

Default avatar.png Bendu: Or of what constitutes pseudocode

Default avatar.png MegaGirl: So does that mean there is really no WRONG way to write it?

struct: if it works it works

Default avatar.png Bendu: That's my understanding, because it is meant to be a basic outline of your program

sprkrd: there's definitely wrong ways of doing it

Default avatar.png Fashathus: A couple things you could do. If he has a TA reach out to them as they often do a lot of the grading and may know what they want. Just send him and email saying you aren't sure why he returned your assignments and ask how to fix it.

Default avatar.png Bendu: Yeah best advice is probably just to ask

Default avatar.png Fashathus: My experience with professors like that is they often explained what they want once in the middle of an unrelated lecture and now expect everyone to remember

Default avatar.png MegaGirl: Okay, well thank you all for the advice. No matter how hard it gets I will keep trying and not give up.:slight_smile:

MSmits: wow it's hard to get keras to just do a single prediction and just get a number out of it

MSmits: model.predict(np.array(arr))[0][0]

MSmits: it expects a 2D tensor and outputs one

Default avatar.png MegaGirl: jacek, you are funny and just made my day:joy:

Default avatar.png eeeeeeerrrr: clash of cod

Default avatar.png eeeeeeerrrr: cod game

sprkrd: clash of call of duty?

sprkrd: you clearly were under the impression this was the google search bar, didn't you

Default avatar.png eeeeeeerrrr: shhh no never

Smelty: dhhhh

BrunoFelthes: MSmits, you was offline yesterday, but I got legend using your tips at UTTT, thank you a lot.

jacek: :tada:

BrunoFelthes: :heart_eyes:

jacek: what did work eventually

jrke: finally i coded a good tracker for opp in OOC

jrke: good winrate

jrke: just loosing due to timeout bug

ZarthaxX: or your tracker being inefficient and timeouting too

jrke: lemme track the timeout now

jacek: you can track opponent but you cant track timeout?

BrunoFelthes: jacek, was the question for me?

jacek: yes

BrunoFelthes: i changed the score to -1 to 1, with a constant equals 0, and the draw is not zero, it is less..

jacek: exploration constsnt?

BrunoFelthes: the UCT constant

BrunoFelthes: yes

jacek: so, no exploration? :scream:

BrunoFelthes: equals 1

BrunoFelthes: sorry

BrunoFelthes: :)

jacek: phew

jacek: nice

BrunoFelthes: but after the legend, i think that i found a bug, because, Almost every time, I have a clear win or lose with 3/4 rounds before the end, and my algo do not detect it... I need to build mcts solver, maybe it will be my algo better, I'm doing 20k rollouts at the starts plays...

struct: 20k for java seems good

BrunoFelthes: my tree ends with 3.5 to 4 billions nodes

jacek: billions?

struct: billions?

sprkrd: really? doesn't add up

BrunoFelthes: yes, billions

struct: impossible

struct: im sorry

BrunoFelthes: why?

struct: 1'000'000'000

struct: right?

sprkrd: 20k rollouts (upper bound, in the subsequent turns it will be less)*81 turns = ~2M nodes maximum

BrunoFelthes: hum

BrunoFelthes: no

jacek: well near the end the 'rollouts' could be in millions if he isnt using solver. but that doesnt means billions of nodes though

sprkrd: assuming a new node it'll be created in each rollout, which won't be the case either

BrunoFelthes: let me check again

sprkrd: yes, but towards the end new nodes are not created

sprkrd: the same old ones are visited over and over

struct: I create every time I do an action

struct: and I get like 15 Mill nodes per turn

BrunoFelthes: oh, you are right, it is million

BrunoFelthes: do you create 15 million nodes in 1 turn?

struct: yes but my mcts expands every action made

struct: its bad

jrke: bruno[weights] += millions - billions * lr

BrunoFelthes: who to not do it struct?

BrunoFelthes: how

struct: well if you do normal rollout

struct: it should be better

struct: expand select one and do random moves until game is over

BrunoFelthes: but every rollout, i need to expand one node, right?

struct: I expand select expand select .. until end

Wontonimo: Nice UTTT bot BrunoFelthes !

BrunoFelthes: thankyou Wontonimo

BrunoFelthes: hum, i see... Is it a kind of minimax?

struct: no, its just poorly implemented mcts :D

BrunoFelthes: hauhahua

jacek: my 'rollout' count is somewhat lower, but they are smarter ~

sprkrd: @struct actually, you're kinda doing tabular reinforcement learning :joy:

sprkrd: With no persistence between games, of course

jacek: no, hes doing expansion till the end

sprkrd: yes

sprkrd: which is why I said it's kinda like reinforcement learning

sprkrd: there is no default policy, only the tree policy

sprkrd: so it's updating for the whole state trajectory

sprkrd: it's not temporal difference for sure

sprkrd: because the target of the updates is the final result, there's no dynamic programming

sprkrd: it's be like one of the algorithms in Chapter 5 of the RL book by Sutton and Barto

struct: I think ill try uttt again

struct: should not take much time

jacek: hmm how many moves does typical backgammon game last?

jacek: would it be feasible for CG?

sprkrd: I think it should be totally feasible for CG :thinking:

jacek: less than 300 plies?

sprkrd: Not sure about the amount of moves though, but there was this algorithm called TD-gammon that nailed the game

sprkrd: (neural network)

struct: longest game was 143 shakes

struct: w/e that means

struct: i dont know if 1 shake = 1 play

struct: ah wait it was just this person longest game

struct: not overall

sprkrd: it's a good upper bound then

ddreams: well, if both players are trying to prolong the game....

sprkrd: but then there can be a hard limit of, say, 200 turns

ddreams: eventually it must end, but I think it's possible that it's extremely long

jacek: it says 55 plies average https://en.wikipedia.org/wiki/Game_complexity#Complexities_of_some_well-known_games

jacek: it could be reasonable to end in draw at 300 rounds

jacek: or count the points(?)

jacek: i dont know the game

jacek: except for td-gammon thing

sprkrd: branch factor of ~250

jacek: due to dices i presume

ddreams: Yeah, you have a score which is basically how many more steps you need to get all your pieces to the goal

sprkrd: I think those are fine stats

sprkrd: for a game

sprkrd: poker would be a good one too

sprkrd: and the top bot could earn some money in online casinos

sprkrd: another source of income for CG

sprkrd: poker outsourcing

struct: I would say yes jacek

ddreams: I don't think poker would be a good game here

struct: but I never played the game

struct: So I dont know the rules

ddreams: Backgammon would fit the format quite well, since you only play a few games with each opponent

ddreams: or just one

sprkrd: @ddreams why not?

Scarfield: you cannot draw in backgammon, first player to get all pieces off the board wins

ddreams: it's too random, unless you play the same bots for a long time

ddreams: and can exploit weaknesses in the other's

Default avatar.png UUolfo: that would go for all dice games then?

ddreams: Backgammon is somewhat random, which is why you typically play several times

ddreams: However, a better opponent beats you every time

sprkrd: don't know enough about backgammon to judge that

sprkrd: in fact, i know exactly nothing about bg

ddreams: It's more interesting than it seems

sprkrd: i've always wanted to learn what's it about

Scarfield: its a really good game, there is a reason it has existed for so long :)

sprkrd: but never found the time

ddreams: another point in favor is that it's very easy to write a bot for it

ddreams: but hard to write a superhuman bot

ddreams: at least, it used to be

Scarfield: yea, pretty simple rules, easy to learn hard to master type of game, the dice part is probably the worst for a CG port i guess

jacek: td-gammon is superhuman and its from 90s

Default avatar.png MegaGirl: ( ' Hello World! ); :grin:

ddreams: superhuman chess bots are from the 90's too

Scarfield: so am i

Scarfield: but im not superhuman :(

ddreams: it's hard to be

sprkrd: no need to be either

ddreams: exactly, we can write programs that are

sprkrd: better to create something that does the work for us :sunglasses:

Scarfield: if there where a backgammon multi on CG I would definately make a bot for it though

jacek: and got crushed by NN guys

Scarfield: as per usual

ddreams: ^ as is tradition

sprkrd: i think there are new interesting trends in kaggle

jacek: it would take a while tho, i havent done bot for game with random nodes

sprkrd: some kind of differentiable decision tree

sprkrd: xboost or something like that, i don't remember the name

sprkrd: maybe that'll take the place of NNs some day :D

sprkrd: all i know is a lot of people are using that like crazy

struct: just reverse the seed jacek

gon: like crazy

struct: ezpz

sprkrd: @gon did you just predict what I was going to say? :scream:

sprkrd: You just typed that milliseconds after I pressed enter

Scarfield: yea, the dice rolls should really not be somthing you could sim, then it would be another game basicly

Scarfield: and by sim i mean predict

sprkrd: reversing the seed of a prng is a whole endeavor on its own

sprkrd: I think Java uses splitmix64

sprkrd: not trivial to reverse at all

jacek: i'd use secure random

sprkrd: If you do it you just deserve to win

struct: jacek even if you use random

struct: its safe

struct: seed is 64 bits now

struct: used to be 32

struct: thats why it was reversable

jacek: i would not take chance with Random

struct: :(

sprkrd: but, even should you reverse it, you haven't quite won yet

Scarfield: thats only twice the computation though :p /s

sprkrd: you are able to predict future states, but you still have to predict the opponent's action

CodeLoverboy: goooood afternoon!

sprkrd: and come up with a better one, of course

Scarfield: true, but one massice advantage it would be though

sprkrd: yes, but i'd say if you reverse the seed you just deserve to win

ddreams: yeah, even if you only knew your own throws it would be insane

AntiSquid: in breakthrough how do i know which color i am ? do i need to check it myself?

sprkrd: even with a simple generator like LCG you'd need to do quite some work, because you're not getting the generator's output directly, but only the past die throws

Scarfield: its not in the input?

AntiSquid: no

Scarfield: then top or bot of board iirc

AntiSquid: you just get moves in input

struct: well

struct: if its none you are first

AntiSquid: oh ok

AntiSquid: thanks

AntiSquid: makes sense

struct: np

jacek: its None

jacek: and i see reBless took his time to retrain his bot

Scarfield: 0 losses

jacek: :(

sprkrd: BTW, on the same meta-level of reversing the seed, has anybody tried to win by completely breaking the game? For instance, in CSB the field is infinite. What happens if you towards the same direction at full throttle until the x coordinate or the y coordinate exceed the int boundaries?

sprkrd: if you speed towards*

ddreams: I guess you just lose

ddreams: isn't there a boundary?

sprkrd: I don't think there is

ddreams: anyway, that's pretty far, and if you managed you'd perhaps overflow

sprkrd: there's a view box with dimensions 16000x9000, but you can outside that box

jacek: and int is 2 billions

sprkrd: Yeah, I guess in this case what would happen is you teleport to the other side

ddreams: or you'd make the referee fail, which doesn't mean a win for you

sprkrd: but maybe there's something waiting to be broken out there

ddreams: you should be a security researcher then

ddreams: there's a lot of things to be broken out there

sprkrd: sometimes I ponder that option

sprkrd: but I chose a different career path :sweat_smile:

sprkrd: no turning back now

ddreams: what path did you choose?

sprkrd: robotics

AntiSquid: awesome choice

ddreams: that's a more fun path imo

sprkrd: sometimes it can be

sprkrd: however, most of the time nothing works in robotics

sprkrd: only for the demo videos

ddreams: well, have you tried any security research? :p

AntiSquid: you can fix it

sprkrd: well, there's the middle ground

sprkrd: security research for robotics

ddreams: I've done robotics too, for repairing cracks in pipes under the water where it's too dangerous for human divers

AntiSquid: robots will make you fix it ?

reCurse: The ultimate AI

jacek: reCurse anything novel you done to bt?

reCurse: No I just ported all the improvements and fixes, same as uttt

sprkrd: maybe you already know this, but a lots of robots operate with ROS (a framework for sending and receiving messages). ROS has no security whatsoever, so doing a network scan you can discover a lot of robots in research labs that you can control as you wish

AntiSquid: i know ROS

jacek: IoT, the S is for Security

AntiSquid: do you know Darpa subt challenge sprkrd ?

reCurse: Nice, I'll steal that one

sprkrd: this is going to be fixed in ROS2, I think, by 2050 when people start adopting it :joy:

AntiSquid: that's how i found out about ROS

sprkrd: AntiSquid Yeah, I know about Darpa

AntiSquid: did you try their contest then ?

AntiSquid: did you win the millions ?

sprkrd: it's the one about racing in the desert, right?

AntiSquid: no

sprkrd: which one is it then?

jacek: darpa? that military stuff?

AntiSquid: you control 3 bots and they need to cooperate to find all orange stuff in a maze

ddreams: did you guys see the formula 1 ai competition?

ddreams: https://www.wevolver.com/article/the-indy-autonomous-challenge-simulation-race

sprkrd: oh, yeah, I knew that one too, I got them mixed

AntiSquid: last one was cave and the walls were pretty funny to deal with on top of the other difficulties

sprkrd: no, haven't won millions yet :joy:

sprkrd: a workmate suggested me once to participate on that

AntiSquid: this year's the final

sprkrd: never found the time because there's always a lot of papers and deadlines...

AntiSquid: which one is the desert race ??

sprkrd: mmmh

ddreams: "Award $1,000,000 USD to the first Team, $250,000 to the second Team, and $50,000 to the third Team to cross the finish line in 25 minutes or less"

AntiSquid: i only know about dogfight and subt

sprkrd: i think it was darpa too

sprkrd: but from another year

ddreams: in October they will race the cars live

ddreams: 17th of June in a simulator

AntiSquid: exciting, time to code some if-else on CG

ddreams: Only universities are eligible though

sprkrd: ah, then we're eligible :D

AntiSquid: subterranean one was open to all

AntiSquid: is *

AntiSquid: imagine that, you have to sign up for uni to do some contests ...

sprkrd: Yeah, seems arbitrary

sprkrd: I guess hey don't want Roufus and Doufus in the contest

sprkrd: They only want TOP TIER NAMES

ddreams: the best of the best is always found toiling away in some phd-program

AntiSquid: guy and his garage winning a contest * sprkrd

sprkrd: But do phd students have the time for contests? They have to write their thesis :)

sprkrd: Like myself, I should write my thesis instead of procrastinating in CG :joy:

ddreams: that'd probably be their thesis

AntiSquid: prolly they do a mediocre/starter bot to have something to write about and then write it based on that ?

sprkrd: AntiSquid I've always advocated for that, for toppling the powerful :D

sprkrd: Gonna go back to write my thesis. Introspection hurts

ddreams: See you in five

sprkrd: ha, you know it :D

ddreams: Realism hurts

AntiSquid: steal some ideas from contest postmortems lol

sprkrd: AntiSquid Yeah, at least I try to make procrastination productive :D

sprkrd: if i'm gonna waste time, better do it learning something

reCurse: Then is it wasted time

sprkrd: i was about to write just that

sprkrd: you stole it :joy:

AntiSquid: increase depth

ddreams: increase speed

AntiSquid: to think further ahead

jacek: so deep

Andriamanitra: why am i getting 404 when i try to test this clash in IDE? https://www.codingame.com/contribute/view/1462c7bd45e5d5bc2c375166880f72a4d2fe

Andriamanitra: we just had it and i wanna know why i only got 71% after passing all the tests

jacek: i dont know. could it be because its already approved you cant test it in approval page?

Andriamanitra: i've definitely tested other contributions after they've been accepted.. although this one seems to be particularly old so maybe something's changed

jacek: oh

Andriamanitra: oh, apparently going into edit mode first lets me open the ide, nvm

jacek: oO

Andriamanitra: (the issue was that only the hidden validators check for alphabetic ordering in case of ties, if anyone was wondering)

jacek: oh my

WeiserTeufel: hello

WeiserTeufel: just testing it

Default avatar.png UUolfo: Welcome

ddreams: testing is important

jacek: nah, push it to production right away

jacek: on friday evening

KOTS98: Sounds good to me!

Astrobytes: Have I missed anything today?

ZarthaxX: nope astromissed

Astrobytes: Figures.

ddreams: Me, probably?

Astrobytes: Hi tho

ZarthaxX: what is the lastr achievement for optim quest map?

ZarthaxX: top 2% code golf?

ZarthaxX: please say no

Astrobytes: No. But that answer is false.

ZarthaxX: NOOOOOOOOOO

ZarthaxX: why asrtro

ZarthaxX: ;(

Astrobytes: You can do it. I dedicated most of a weekend to it.

Astrobytes: I still won't do the clash path though.

ZarthaxX: i dedicated HOURS a bit earlier just to get 200 chars in dont panic

ZarthaxX: :I

Astrobytes: Do it in multiple languages.

ZarthaxX: that's even worst...

ZarthaxX: you are not funny

ZarthaxX: wait tho, you get ranked with same lang ?

ZarthaxX: :thinking:

Astrobytes: I can't remember what counts tbh

ZarthaxX: i wanna die

ZarthaxX: ty

ZarthaxX: howdy btw

Astrobytes: Search engines and language references + codegolf stackexchange + any CG threads on golfing might help

Astrobytes: The process isn't fun but I guess there is a little bit of satisfaction at the end. Kinda like throwing up.

ZarthaxX: yeah i get you

ZarthaxX: i will do it for sure :)

ZarthaxX: will knock it out today or tomorrow

ZarthaxX: :D

Astrobytes: You got this easy, it's just tedious.

ZarthaxX: sure

ddreams: Why are you doing tedious stuff?

ZarthaxX: i wanna finish and do multis lol

ZarthaxX: the good part

ZarthaxX: ddreams idk achievements :rofl:

ddreams: I'm happy I don't care about those

jacek: i just took the answers from normal puzzles and pasted into codegolf

jacek: some of them were really shorter than my 'codegolfed' solution

Astrobytes: I did it as it was less tedious than clashes. I don't care if the quest map is incomplete, I just won't do clashes

ZarthaxX: jacek for real¡?¡¡

jacek: eeyup

ZarthaxX: automate classhes :D

ZarthaxX: clever jacek

AntiSquid: wait so if optim goal is to get top 2% then the goal post keeps moving for new peeps

ZarthaxX: would have saved me from severe headaches

ZarthaxX: AntiSquid right

ZarthaxX: it's like, painful

ZarthaxX: :D

ZarthaxX: good point

AntiSquid: why didn't they do something like that for multis to increase activity?

Astrobytes: 5% issue

AntiSquid: optim has even fewer people

Astrobytes: Anyway, ignore that. I'm losing salt.

AntiSquid: eat bananas, drink coconut water

Astrobytes: No, I mean my CG sodium levels are being deliberately reduced.

AntiSquid: joking :D

Astrobytes: I know!

Astrobytes: Also, coconut water out of anything other than an actual coconut is atrocious,

Astrobytes: *.

Astrobytes: Bananas are ok when they're a little underripe

AntiSquid: thought it's alright (coco water)

ZarthaxX: wdym by 5% issue?

AntiSquid: check my school ZarthaxX

Astrobytes: Someone else link the discussion please. I am reforming myself.

AntiSquid: https://discord.com/channels/466965651135922206/466965651135922208/798943788516900864

Astrobytes: I also looked it up, in case I was wrong. Y'know, trust but verify :P

ZarthaxX: i dont get it

Default avatar.png UUolfo: @Astrobytes Banana water?

Astrobytes: Read that discussion ZarthaxX

ZarthaxX: Astrobytes what discussion

ZarthaxX: ohhh

ZarthaxX: that link lol

Astrobytes: The discord link squiddy posted

ZarthaxX: thought i had to check squido school there lol

AntiSquid: one day people will stop calling me a squid :'(

ZarthaxX: what's up with your school

Astrobytes: UUolfo: that can take a long walk off a short plank that's for sure :D

AntiSquid: it's a reference to that

Astrobytes: *notasquiddy

Astrobytes: just 'anti' is too vague

ZarthaxX: oh i see why the 5%

ZarthaxX: competitors are 5% of platform?

ZarthaxX: that's big anyway

ZarthaxX: :thinking:

AntiSquid: but then competitors are the most active

ZarthaxX: true

Astrobytes: :zipper_mouth:

AntiSquid: hey what do you think astro? bet there's something on your mind you'd like to share, isn't that right Automaton2000 ?

Automaton2000: i don't know how to do anything with it

Astrobytes: You cannot bait me into saltiness.

Astrobytes: I am strong. Like ox.

AntiSquid: what if you see red ?

Astrobytes: I might confuse it with green, depending on the hue and contrasting surroundings.

AntiSquid: anyways what are you up to astro ?

AntiSquid: on CG

Astrobytes: Avoiding CG mostly.

Astrobytes: When I come back I'll probably clean up on all the official multis that I never do because of board games.

AntiSquid: cool, what do you do for fun ?

Astrobytes: Code things. Play guitar.

ZarthaxX: drugs

ZarthaxX: oh sorry

Astrobytes: Hah!

Astrobytes: Not these days sadly.

ZarthaxX: i checked astro, there is a ranking per lang in code golf

ZarthaxX: :)

AntiSquid: what drugs to highlanders take ?

Astrobytes: Ah, there ya go

Astrobytes: Haggaine

Astrobytes: Anyway, I'm a Lowlander.

ZarthaxX: why are you avoiding cg astro

ZarthaxX: :c

ZarthaxX: life doesnt exist beyond cg

Astrobytes: Reducing my salt intake and output

AntiSquid: lol right, ZarthaxX you were MIA most of the time

ZarthaxX: :rofl:

ZarthaxX: that's why i was saying it mostly

AntiSquid: sneaky baer

ZarthaxX: being hypocrite :D

ZarthaxX: i have been always here tho, just dont talk nor do

AntiSquid: where are the good old trolly times gone ?

Default avatar.png ButterM-40: UwU

Default avatar.png ButterM-40: what this

ZarthaxX: ah, lol

ZarthaxX: those were times

Astrobytes: ZarthaxX has achieved omnipresence

ZarthaxX: trolling ppl nonstop

ZarthaxX: i have become a better bear no,w hopefully

ZarthaxX: :)

AntiSquid: is LelouchV2 or something reminds me of you but his jokes are mild by comparison

AntiSquid: that*

ZarthaxX: wot

ZarthaxX: Astrobytes OmniaxX

ZarthaxX: mhmm ,that could been a good name

ZarthaxX: maybe for alt

Astrobytes: I like it!

Astrobytes: ZarthomniaxX!

ZarthaxX: oh that's nice

ZarthaxX: but sneaky

Astrobytes: It's similar to 'insomniacs', syllabically at least

ZarthaxX: i need a sneaky one, that one almost reveals my name :P

ZarthaxX: :rofl:

ZarthaxX: i have an alt, will change name later lol

AntiSquid: did it get kicked at all from chat ? your alt ?

Astrobytes: AxXiomN

AntiSquid: i need to submit an application not sure what to write @_@

Astrobytes: Your name is usually a good start.

AntiSquid: the cover letter stuff

ZarthaxX: AntiSquid no, why? :P

Astrobytes: Their name

ZarthaxX: what are you applying for????

AntiSquid: usually i paste a default long winded cover, thought i should make it shorter, there's no way anyone ever read that

AntiSquid: just another job within my little world

Astrobytes: Shorter is better. Make them want to look at your CV.

AntiSquid: diff team same department

ZarthaxX: ah okwey

ZarthaxX: gl tho :)

ZarthaxX: true

AntiSquid: thanks baer

ZarthaxX: i have a friend that feels his cv with boilerplate

ZarthaxX: fills*

Astrobytes: Explain why you're right for the position and why you want it.

Astrobytes: Simple as that. It's "PICK ME PICK ME PICK ME YEAH!"

ZarthaxX: *dont you dare reject me*

ddreams: I know where you work

ZarthaxX: lmao

ZarthaxX: :rofl:

AntiSquid: oh noes

ZarthaxX: that's a good one for this situation

MUlRA: how do you use stderr to print debug message in console?

ZarthaxX: lang?

MUlRA: C#

Astrobytes: "Hello. I sleep with your boss. Thanks for the job."

AntiSquid: it shows you in the default code any language

MUlRA: ?

AntiSquid: question mark

Astrobytes: it's in the commented part of the default code

MUlRA: found it, thanks!


Astrobytes: console.error() iirc

Astrobytes: Plus caps

Astrobytes: Anyway. See ya's tomorrow or something.

ZarthaxX: gn astro

ZarthaxX: :*

struct: gn

Default avatar.png Exodomaximus: helo

Default avatar.png n-mcnally: can you see your answer history?

Default avatar.png n-mcnally: on clash

ZarthaxX: nope

ZarthaxX: hi Exodomaximus

BrunoFelthes: I'm trying to implement the MCTS Solver at the UTTT, but i dont know how to deal with the draw... Anyone has any reference?

**BlaiseEbuth give a & to BrunoFelthes.

sprkrd: I just treat draws as a result of 0, loses as -1, and wins as +1

sprkrd: when I used MCTS, that is. My current bot uses negamax

struct: solver is quite different though

sprkrd: what do you mean?

struct: MSmits explained it to me before but I cant remember

struct: mcts is different from mcts solver

sprkrd: Is "MCTS solver" a different concept from "MCTS"?

sprkrd: Oh, didn't know that

BlaiseEbuth: Yup, it's some variant...

sprkrd: yeah, looking at a paper describing it now

BlaiseEbuth: https://dke.maastrichtuniversity.nl/m.winands/documents/uctloa.pdf

sprkrd: yeah, it was that paper in fact

BlaiseEbuth: ^^

AntiSquid: 1001 MCTS paper nights

sprkrd: :D

sprkrd: interesting stuff this MCTS solver stuff

sprkrd: Maybe I'll give another chance to my MCTS bot some day and adapt it to use this approach

sprkrd: I see the problem with the draws

sprkrd: One non-ideal solution would be to treat draws as loses if you're the first player and as wins if you're the second (because it'd seem that it's easier to win as the first player, and the second player should be happy enough with a draw)

Default avatar.png KyleWardle: How is the percentage score in clash of code work?

Smelty: e?

Smelty: its the amount of validators that you pass

Smelty: ex. if you passed 3/4 of validators you get 75%

Default avatar.png KyleWardle: I passed all and it gave me 33%

Default avatar.png KyleWardle: at least i passed all the tests given?

Default avatar.png KyleWardle: if thats what you mean by validators

BlaiseEbuth: Nein

YurkovAS: BrunoFelthes parent is draw when: all child is solved, hasn't wins and has 1+ draws

BlaiseEbuth: Validators are different from the tests in the IDE.

Smelty: KyleWardle the test are different from validators to prevent hardcoding

Smelty: ....what blaise said

Default avatar.png KyleWardle: so it was a reverse one so im not sure what the end goal was but i passed all unit tests, should i rate the test relevancy as poor then?

Default avatar.png KyleWardle: Nobody in the full clash got 100%

Default avatar.png KyleWardle: most was 50%

Smelty: ...sure

BrunoFelthes: Nice YurkovAS, i will try it

Smelty: if you hardcoded it, though, then don't rate it as bad

Default avatar.png KyleWardle: I didnt hardcode it

Smelty: because the validators are there to prevent hardcoding

Smelty: okay, then go ahead

MSmits: anyone still have questions about mcts solver?

MSmits: i got pinged

Default avatar.png Aftaklas: print(.join(chr(ord(c)^(0x20*c.isalpha()))for c in "fE g!eF"))

Default avatar.png Aftaklas: how does for loop work?

MSmits: c is an item in the collection that's a string

MSmits: a string consists of characters

MSmits: so each "c" is a character

MSmits: so first it does f, then E, etc.

Default avatar.png Aftaklas: y but how does it work when c is called before the loop

MSmits: it's not called before the loop

MSmits: this is a way of writing that comes from functional programming i guess. Python does this sort of thing

MSmits: it applies whats before the loop to every item in the loop

MSmits: print(c) for c in string

MSmits: would print every character in the string

MSmits: unless i did a syntax error somewhere in there. I dont use this way of coding

Default avatar.png Aftaklas: ok ty :P

struct: msmits you still use the sse instruction on uttt to check for win?

MSmits: mmh i dont know. Let me check

Notter: Should I define custom exceptions for my bot?

MSmits: http://chat.codingame.com/pastebin/0d859ef5-4a63-4a4d-b573-8ca7be1a7103

MSmits: still in there I guess

MSmits: not sure what you mean Notter

Notter: Uhhh

Notter: Like an error if I try to do something that's not allowed

Notter: By the game rules

struct: ah good

struct: its fine, I was trying and found some old snippet from you

struct: that was a little bit slower

struct: But that one is fine

MSmits: ahh ok, i think this is one you improved :P

MSmits: Notter I use debug print statements

MSmits: use whatever works I guess :)

struct: I use return _mm_movemask_epi8(result);

struct: It works

MSmits: oh ok

MSmits: I converted my TTT NN for use with TF/Keras today

struct: nice, did it work?

MSmits: yeah

MSmits: training got really fast

MSmits: but doing a single prediction got slow :P

MSmits: it's because it converts numpy array to a tensor before doing the prediction

MSmits: at least I think thats why

MSmits: it's over 10x slower than my handcoded network at prediction

struct: Still the training should make up for it

MSmits: yeah it does

MSmits: it's only annoying when I try to benchmark 1000 TTT games and it has to do like 30k predictions

MSmits: i mean once i work with a c++ inferer this doesnt matter anymore

struct: will you use gpu or cpu?

MSmits: i'm just using cpu for practice now, but I guess I'll install some tf gpu packages and such when i need to

MSmits: my gpu is suitable at least

struct: ah right you will only code the inferer on c++

MSmits: yeah i will try to use keras locally

MSmits: to train

struct: which gpu do you have?

MSmits: 1060 GTX

MSmits: not the newest but tf said it works

struct: it works yeah

MSmits: I changed my random opponent to also pick winning moves when they are available to be on the same level with nn

struct: Im just going to try to improve UTTT before going back to the book

struct: I got a bit lost

struct: on the book

MSmits: book?

MSmits: you're writing a book?

struct: No

struct: The NN book you are readin

struct: I also bought it

MSmits: ohhh

MSmits: I stopped at page 200, will probably get back to it

MSmits: the backpropagation is soooo dry

struct: poorly explained?

MSmits: no, i just think it's impossible to make that exciting :P

struct: ah

MSmits: but i get the idea

MSmits: i just felt i had enough info to get started.

MSmits: as with any topic, when you get beyond a certain point, google can fill a lot of gaps

MSmits: and Wontonimo as well :P

MSmits: been talking a lot with him

struct: I just need to take it slow

MSmits: yeah

MSmits: btw, as soon as you start trying stuff, just focus on the xor example

MSmits: great place to start

MSmits: mnist is good too i guess

MSmits: but doing ai motivates me more

MSmits: (ai for games)

struct: mnist might be more exciting to start

MSmits: mnist has a fashion set too if you like pants more than written numbers

struct: oh had no idea

struct: But I think ill stick with numbers :D

MSmits: the book goes into the pants and shirt

MSmits: guess it wanted to be original :)

struct: it provides full explanation on it?

MSmits: didnt not read that far ahead, but it has full code so i am guessing so

struct: good

MSmits: in fact, I think the book is so big because it keeps repeating the same code with new additions

struct: I understand code better than words

MSmits: the end of the book has 1 program that is like 20 pages long

struct: that is true

struct: lol

MSmits: I think this the shirt's and pants program

MSmits: is probably 1 page in keras :P

struct: The final chapter is the pants and shirts?

MSmits: I think so

struct: I guess as long as I can code something with it after I read it, its fine

MSmits: you can sure do that

ZarthaxX: mhm

ZarthaxX: i didnt get the top 2% optim achievement and im in 2%

ZarthaxX: wtf

ZarthaxX: ah nvm

ZarthaxX: it was laggy

ZarthaxX: :D

struct: ZarthaxX you going for achievements?

ZarthaxX: yes

ZarthaxX: now its time for 2% codegolf

ZarthaxX: and eventually collab legend

ZarthaxX: but i need to do a contribution lol

ZarthaxX: i guess i will leave that one for now

ZarthaxX: i just wanted to finish the quest map

struct: :D

ZarthaxX: i know, dumb

ZarthaxX: i will do uttt next i think

struct: I wanted to port 2 vs 2 bomberman

ZarthaxX: :O

ZarthaxX: dont do that lol

ZarthaxX: i want to port omnigon still

struct: But than I saw that already exists

ZarthaxX: but need to get with sdk

struct: :(

struct: https://www.pommerman.com/

ZarthaxX: yo wtf

struct: I want to make a multi agent game

struct: but no ideas

ZarthaxX: we could talk about that :P

struct: sure

ZarthaxX: we never did that contest project

ZarthaxX: ;(

struct: which project?

struct: I cant remember :thinking:

ZarthaxX: we were doing it with icebox

ZarthaxX: on the discord cg

struct: ah you and more people

struct: not we :D

ZarthaxX: right

ZarthaxX: i thought you were there too

ZarthaxX: mmmmmmmmmmmmmm

struct: nope

ZarthaxX: wait

ZarthaxX: you were there

struct: im on the discord channel

ZarthaxX: we had this capture the flag

ZarthaxX: :thinking:

ZarthaxX: the fuck

struct: I joined that channel on fall challenge

ZarthaxX: hey ctf multiplayer?

struct: maybe your idea is older

ZarthaxX: ah nvm then

ZarthaxX: was private with you lol

ZarthaxX: you could try a ctf then

struct: ah I think I remember vaguely

ZarthaxX: we could revive that

ZarthaxX: heaxgon board

ZarthaxX: :D

ZarthaxX: that can be cooperative

struct: hell no

ZarthaxX: hahahaha

ZarthaxX: code a la mode nightmare

ZarthaxX: :D

Decco: gaymer

ZarthaxX: ban

struct: I dont really enjoy coop

struct: coop with own units sure

struct: but not with other players

ZarthaxX: i meant that then

ZarthaxX: 4 player ctf?

ZarthaxX: :thinking:

ZarthaxX: maybe 3p

struct: 8p

ZarthaxX: 16p!

Decco: 32p

ZarthaxX: ban

Default avatar.png HapppyDe: 64p

Decco: 128p

Default avatar.png HapppyDe: band

Smelty: hi mr fruit

Wontonimo: i hope i never unlock the next achievement in CoC

Wontonimo: hi mr fruit. Who's mr fruit?

Wontonimo: lol struct, "coop with own units sure". I don't think that's coop :D

dscientist: it's me: banana lol

struct: yeah poorly worded Wontonimo

struct: I was trying to mention multi agents

Wontonimo: i thought you were being funny. turns out you are funny as a sideeffect

ZarthaxX: :rofl:

Chainman: This problem guys https://www.codingame.com/training/expert/tiling-by-squares

Wontonimo: alright, it's quite late. See ya all once the planet has rotated 1/4 way around

Smelty: cya wonton :D

Chainman: adieu

Smelty: 再见

Smelty: im dropping ranks in coc T^T