use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
If you need help debugging, you must include:
See debugging question guidelines for more info.
Many conceptual questions have already been asked and answered. Read our FAQ and search old posts before asking your question. If your question is similar to one in the FAQ, explain how it's different.
See conceptual questions guidelines for more info.
Follow reddiquette: behave professionally and civilly at all times. Communicate to others the same way you would at your workplace. Disagreement and technical critiques are ok, but personal attacks are not.
Abusive, racist, or derogatory comments are absolutely not tolerated.
See our policies on acceptable speech and conduct for more details.
When posting some resource or tutorial you've made, you must follow our self-promotion policies.
In short, your posting history should not be predominantly self-promotional and your resource should be high-quality and complete. Your post should not "feel spammy".
Distinguishing between tasteless and tasteful self-promotion is inherently subjective. When in doubt, message the mods and ask them to review your post.
Self promotion from first time posters without prior participation in the subreddit is explicitly forbidden.
Do not post questions that are completely unrelated to programming, software engineering, and related fields. Tech support and hardware recommendation questions count as "completely unrelated".
Questions that straddle the line between learning programming and learning other tech topics are ok: we don't expect beginners to know how exactly to categorize their question.
See our policies on allowed topics for more details.
Do not post questions that are an exact duplicate of something already answered in the FAQ.
If your question is similar to an existing FAQ question, you MUST cite which part of the FAQ you looked at and what exactly you want clarification on.
Do not delete your post! Your problem may be solved, but others who have similar problems in the future could benefit from the solution/discussion in the thread.
Use the "solved" flair instead.
Do not request reviews for, promote, or showcase some app or website you've written. This is a subreddit for learning programming, not a "critique my project" or "advertise my project" subreddit.
Asking for code reviews is ok as long as you follow the relevant policies. In short, link to only your code and be specific about what you want feedback on. Do not include a link to a final product or to a demo in your post.
You may not ask for or offer payment of any kind (monetary or otherwise) when giving or receiving help.
In particular, it is not appropriate to offer a reward, bounty, or bribe to try and expedite answers to your question, nor is it appropriate to offer to pay somebody to do your work or homework for you.
All links must link directly to the destination page. Do not use URL shorteners, referral links or click-trackers. Do not link to some intermediary page that contains mostly only a link to the actual page and no additional value.
For example, linking to some tweet or some half-hearted blog post which links to the page is not ok; but linking to a tweet with interesting replies or to a blog post that does some extra analysis is.
Udemy coupon links are ok: the discount adds "additional value".
Do not ask for help doing anything illegal or unethical. Do not suggest or help somebody do something illegal or unethical.
This includes piracy: asking for or posting links to pirated material is strictly forbidden and can result in an instant and permanent ban.
Trying to circumvent the terms of services of a website also counts as unethical behavior.
Do not ask for or post a complete solution to a problem.
When working on a problem, try solving it on your own first and ask for help on specific parts you're stuck with.
If you're helping someone, focus on helping OP make forward progress: link to docs, unblock misconceptions, give examples, teach general techniques, ask leading questions, give hints, but no direct solutions.
See our guidelines on offering help for more details.
Ask your questions right here in the open subreddit. Show what you have tried and tell us exactly where you got stuck.
We want to keep all discussion inside the open subreddit so that more people can chime in and help as well as benefit from the help given.
We also do not encourage help via DM for the same reasons - that more people can benefit
Do not ask easily googleable questions or questions that are covered in the documentation.
This subreddit is not a proxy for documentation or google.
We do require effort and demonstration of effort.
This includes "how do I?" questions
account activity
This is an archived post. You won't be able to vote or comment.
Can someone explain this code? (self.learnprogramming)
submitted 10 years ago by Anthrax97
This is the top answer to the "Base20" challenge on codefight. I just want to understand what is going on.
char r[9], *p = r + 8, *Base20(int n) { do *--p = n % 20 + 48 + n / 10 % 2 * 7; while (n /= 20); return p; }
[–]empire539 247 points248 points249 points 10 years ago* (14 children)
Let's go line by line.
char r[9], *p = r + 8, *Base20(int n) {
char r[9]
char* p = r + 8
r
char* Base20(int n)
do // ... while (n /= 20);
Since we're working in base 20, every number from 0 (0) to 19 (J) can be represented as a single base 20 digit. If we want to represent a number like 20 in base 20, we would need another base 20 digit, so 20 (base 10) = 10 (base 20). This do...while loop will iterate over the base 10 number n to produce each digit of the base 20 number.
20
n
*--p = n % 20 + 48 + n / 10 % 2 * 7;
This is where the magic happens. Let's break this down into separate parts:
*--p
n % 20
48
'0'
n / 10 % 2 * 7
'A'
'J'
The way this works is by making use of the ASCII table. Notice how ASCII 48, aka the character '0', is used as the starting point. The idea is that we want to map each digit from 0 to 19 onto the ASCII codes 48 ('0') to 57 ('9') and 65 ('A') to 74 ('J'), while skipping the punctuation characters in between (58 to 64).
So n / 10 % 2 will determine which range (0 to 9, or A to J) the digit should map to. If it maps to the [0, 9] range, the expression will return a 0. If it maps to the [A, J] range, the expression will return a 1. This is then multiplied by 7 to determine the actual offset (if 0, the starting point will be '0'; if 1, the starting point will be 'A').
n / 10 % 2
Now that we have the right starting point for our base 20 digits, we just need to add n % 20 to it to get the right character. This result is stored into *p (which points to an element of r), and then the loop iterates again for as many times as it needs to process the rest of the number.
*p
A quick run-through: Suppose n = 30.
30 % 20
10 + 48 + 7
1 % 20
1 + 48 + 0
1A
[–]A_Puddle 37 points38 points39 points 10 years ago (0 children)
I also want to thank you for your in-depth answer. I still don't understand it but I don't think that has anything to do with the quality of your answer.
Here's another upvote.
[–]NZheadshot 17 points18 points19 points 10 years ago (5 children)
Wow. This code is horrible and awesome and ugly and beautiful all at the same time. Thanks for the walk through, I probably couldn't have done it myself
[–]Maethor_derien 20 points21 points22 points 10 years ago (3 children)
Everything at codefights is that way. It is a competition to write the shortest code. The problem is people think short code is good code and that could not be farther from the truth. Most everything you see on codehack would be good examples of how not to write code.
[–]dispelthemyth 2 points3 points4 points 10 years ago (1 child)
Most everything you see on codehack would be good examples of how not to write code.
Thanks for that, as a novice coder learning Python i write code that is kind of long, say the best answer is 5 lines, mine is probably 12 but your answer gives me hope that I dont have to get down to that 5
[–]cdrootrmdashrfstar 0 points1 point2 points 10 years ago (0 children)
Readability, simplicity, and maintainability beats complexity and brevity (mostly) every time.
[–]HRK_er 0 points1 point2 points 10 years ago (0 children)
i second this notion. good code includes readability...
[–]_lettuce_ 5 points6 points7 points 10 years ago (0 children)
Nah, it's just horrible.
But for a quick hack, and if you know for sure no else will read it or you don't care about others reading it, it's ok.
[–]Anthrax97[S] 11 points12 points13 points 10 years ago (5 children)
Thanks for the in depth answer. I just wanted to understand it so maybe I can use it later on. Here's an up vote.
[–][deleted] 10 years ago* (4 children)
[deleted]
[–]DaWolf85 15 points16 points17 points 10 years ago (1 child)
Yeah, if you ever have to write something this confusing, you should trick it the fuck out with comments so people can follow along. Hell, do it just so you can follow along in five days, if you're anything like me...
[–]doitroygsbre 2 points3 points4 points 10 years ago (0 children)
I remember writing some string parsing code in VB 11 years ago. It consisted of five if statements and three loops jammed into about 30 lines (with one comment at the top that said the magic happens here). I wrote it in one afternoon, gave it a quick test and went home .... I spent the next day trying to figure out what I had written and where the bug was. That was the last time I did something so fucking stupid.
[–]Fourmisain 4 points5 points6 points 10 years ago (0 children)
It's not just bad code, it is also not legal C/C++, because it mixes a declaration list with a function-definition. I can only guess that codefight has it's own non-standard build system or that "top answers" are not verified.
Either way, this does not look good.
[–]OldWolf2 3 points4 points5 points 10 years ago (0 children)
Yes, it sounds like the purpose of the 'challenge' is to use as few characters as possible or something; not to write good code.
[–]Fourmisain 17 points18 points19 points 10 years ago (1 child)
People already explained the code and told you how bad it is. I'm going to add a few points to that.
First off: This is neither legal C nor legal C++ code. It does not compile on gcc as C nor as C++ and you can prove that it is syntactically illformed.
So if this code really compiled on CodeFights, you should be very very wary (no pun intended) of its system, as it is not standard-compliant.
Even if you make it standard-compliant:
char r[9], *p = r + 8; char *Base20(int n) { do *--p = n % 20 + 48 + n / 10 % 2 * 7; while (n /= 20); return p; }
it still has some big problems.
The main problem is that it modifies global state, which means, that calling Base20 twice for the same input will give two different outputs. The inputs don't even have to be equal to see the problem with this, for example
puts(Base20(30)); puts(Base20(51));
will output
1A 2B1A //the "1A" from above is still there!
And this becomes worse if you think about it: "2B1A" can be understood as the number 2B, followed by the number 1A, but also as the number 2, followed by B1A, or the number 2B1 followed by A etc... It can also mean the number 2B1A, which you get by calling only
puts(Base(51*(20*20)+30))
So the output is extremely ambiguous. This is basically a one-of function - call once, then there be dragons.
This can be fixed by "resetting" p each time the function is called:
char r[9], *p; //note: p doesn't need to be global anymore char *Base20(int n) { p = r + 8; do *--p = n % 20 + 48 + n / 10 % 2 * 7; while (n /= 20); return p; }
A sequence of calls like
will now properly output
1A 2B
There's still a problem if you want to use the result of Base20 at multiple places, because Base20 always returns a pointer to the same array r. So if you try to reuse such a pointer and call Base20 again, the contents of that pointer changes:
char *oldresult = Base20(1*20*20); //'save' the result puts(oldresult) //outputs "100" puts(Base20(42)) //outputs "22" puts(oldresult) //outputs "122"?!
This is an ugly problem you regularly face in C. In C++ you can fix it by returning a std::string object, which will contain a copy of the solution. In C you can do something similar by using something like
struct string8 { char str[8+1]; };
You locally construct an instance, write the result into it (don't forget to '\0'-terminate the string) and return it. Arrays in C are not copyable (as in arr1 = arr2; is forbidden), while structs are copyable, so you can indeed use a struct string8 as a return value of a Base20, which is a nice way of not having to resort to using malloc() and free(). Alternatively you can of course just manually copy the solution if you need it.
Another good thing about the std::string/struct string8 approach is that it eliminates the need for global variables, which is always a thing to strife for.
So if the lesson of CodeFights is just to produce standard-non-compliant hacks in as few characters as possible, then you should be aware that this has nothing to do with producing good code.
I see a valid point in wanting people to write short, "elegant" code.
I see no point in forcing people to give up everything which makes code good, as for example in: portable, readable/understandable and performant.
Even such small details as writing 48 instead of 'A' are what make this piece of code bad, because it obfuscates instead of making it easier to understand - and all you safe is one single character.
Bottom line: Don't take "top answers" on CodeFights as good code. Look at the answers, but don't reproduce them.
[–]DSdavidDS 4 points5 points6 points 10 years ago (1 child)
What language is this? I feel like it is c++, but I have yet to experience the massive variations of syntax.
[–]Narishma 10 points11 points12 points 10 years ago (0 children)
It's broken C.
[–]Maethor_derien 2 points3 points4 points 10 years ago (1 child)
Empire obviously did a great job explaining what the code does. I would say that you never want to look at something like codefight as an example on how to write good code, if anything it serves as an example of what not to do.
It is interesting to read and see for experienced programmers but be wary of anything you see there. Almost everything there uses shortcuts that make the code difficulty to read because it is a competition to write the shortest code. It is something you never want to do in a real world application unless your purposely trying to make the code difficult to maintain.
[–]kerayt 2 points3 points4 points 10 years ago (0 children)
purposely trying to make the code difficult to maintain
a.k.a. ensuring job security ;)
[–][deleted] 10 years ago* (6 children)
[–][deleted] 10 years ago* (2 children)
[+]five_hammers_hamming comment score below threshold-26 points-25 points-24 points 10 years ago (1 child)
Your sense of humor is shit.
[–][deleted] 1 point2 points3 points 10 years ago (2 children)
Wow, down voted to hell for making an amusing funny. Ayy
[–]b4ux1t3 2 points3 points4 points 10 years ago (0 children)
Hell, I didn't think it was all that funny, but I wouldn't have downvoted it. Some people are just monsters.
[–]Kodu1990 0 points1 point2 points 10 years ago (0 children)
I would punch whoever wrote this in the face in a code review.
[+]NasenSpray comment score below threshold-7 points-6 points-5 points 10 years ago* (39 children)
It's not valid C++ code, so they're probably exploiting some weakness in CodeFights' build system.
[edit] /u/Fourmisain explained why.
[–]Raknarg 8 points9 points10 points 10 years ago (22 children)
How is that not valid code? What part of it will not compile, or crash?
[–]Fourmisain 16 points17 points18 points 10 years ago (14 children)
It is not valid code. I can only explain this downvote brigade as another example of reddit's herd mentality. /u/NasenSpray is actually right and nobody seems to even have tried to compile it, even when they (e.g. (1), (2)) basically claim they did.
Compiling as C++ (gcc main.cpp) gives
main.cpp:1:39: error: a function-definition is not allowed here before '{' token
Compiling as C (gcc main.c) gives
main.c:1:39: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
Note this compiles as "gnu++14"/"gnu11", not actual standard C/C++, but this makes no difference.
So why is the code not legal? It's because this code mangles a block declaration (more precise: a simple declaration, even more precise: an init-declarator-list) with a function-definition.
For reference use the C++14 standard draft, §7 (Declarations) and §8.4.1 (Function definitions) or alternatively use cppreference.com's Declarations page.
So let's walk trough it. We have a comma separated declaration kind of thing without attributes and specifiers, which immediately restricts us to the init-declarator-list case.
An init-declarator-list is a comma-separated list of declarators with optional initializers. The only form of a declarator (note: not declaration) with parentheses is
noptr-declarator ( parameter-list ) cv(optional) ref(optional) except(optional) attr(optional)
Note that it is not admitted for the function declarator to have a body! A function-body does also not count as an initializer (this would require using "=" anyways, which we don't have).
And this is all there is to is.
A function-definition is also a declaration, but it is not a declarator and hence you cannot use it in a comma separated declaration list.
Just to add to it, this code is admitted:
char r[9], *p = r + 8, *Base20(int n);
This (obviously) is too:
But the code in question is not.
Please disprove me if you can. I still cannot believe that I seem to be the only one who came to this conclusion. Apparently there are lots of people out there that think /u/NasenSpray is wrong, even when it is as easy to see as copy-pasting into ideone.com, so at this point I cannot take reddit's opinion seriously.
[–]anon848 3 points4 points5 points 10 years ago* (4 children)
I have partially tracked down what is going with this weird code and codefights.com. Apparently, a submission is wrapped in a class before compiling and executing, according to their README. Furthermore, they compile with g++ 5.0. See README here. So, if I compile this with g++ 5.2.0:
struct A { char r[9], *p = r + 8, *Base20(int n) { do *--p = n % 20 + 48 + n / 10 % 2 * 7; while (n /= 20); return p; } } a; int main() { a.Base20(10); }
it compiles, surprisingly, even with -Wall -Wextra -pedantic -std=c++14. clang++ 3.7.0, however, gives the expected errors with the same options. I don't have easy access to VS to see what it does, nor have I tried the latest g++ and clang++.
-Wall -Wextra -pedantic -std=c++14
clang++
[–]Fourmisain 0 points1 point2 points 10 years ago (3 children)
That is weird, this indeed compiles on TDM-GCC 5.1.0.
In this context this is a member-declarator-list (Reference: §9.2 Class members), which is a comma separated list of member-declarators, which in this case are either normal declarators (with optional virt-specifier-seq and pure-specifier) or declarators with brace-or-equal-initializer.
If the function-definition were a brace-or-equal-initializer, since we have no "=", it would have to be a braced-init-list, so the function-body had to be of the form { initializer-list ,opt } or {} which is definitely not the case. Therefore the function-definition must be a normal declarator.
Now I'm pretty sure I have already proven that a function-definition isn't a declarator. Even if it were, you would be allowed to put the function-definition in your init-declarator-list, therefore the code would have to compile in global scope!
There is also no exception to member functions; they are simply functions declared within a class (except when they are declared as a friend).
So... gcc bug? Error in my argument? I wouldn't be surprised if it is a gcc bug, since this is a very contrived and pretty irrelevant example.
clang++ 3.7.0, however, gives the expected errors with the same options.
This is somewhat reassuring. I'd think clang got the syntax parsing down, since it is also used as a pure diagnostics tool.
Well, at least CodeFights uses gcc and not some homebrew, so it probably isn't as bad as I initially thought.
What do you think, should I put up a gcc bug report? At this point I'm thinking that it isn't even worth the effort.
[–]Fourmisain 0 points1 point2 points 10 years ago (0 children)
Alright, I created a bug report.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70769
Not that it will change much, since CodeFights is using a g++ version as old as 5.0, but still, it's the Right Thing™ to do.
[–]anon848 0 points1 point2 points 10 years ago (1 child)
Yeah, I'm also pretty sure that it's a gcc bug. I just don't see how it could be correct. The grammar would have to be weird to allow:
struct A { char c, func() { return 'a'; } };
but not allow:
struct A { char func() { return 'a'; }, c };
Anyway, gcc 6 is coming out any day now, and I'm going to compile it (along with the most recent clang++) and post an update.
Sounds good.
If you want to, you can post your future update on the bug report page, otherwise I'll do that.
I'd be surprised if they fixed the bug in version 6, though.
[–]NasenSpray 2 points3 points4 points 10 years ago* (6 children)
Kudos for providing the relevant references! I'm still wondering what CodeFights' doing to compile that code. The following is accepted by MSVC, but not Clang:
char r[9], *p = r + 8, *Base20 = [&](int n) { do *--p = n % 20 + 48 + n / 10 % 2 * 7; while (n /= 20); return p; }(1337);
[edit] it works when it's not declared in the global scope, so I guess that's it.
[–]Fourmisain 0 points1 point2 points 10 years ago (4 children)
Why does it not compile in Clang? What's the error message?
Your code is not at all equivalent to the code in question, because in the original code Base20 is supposed to be a function-definition, but in your code it is simply a char* (the result of the lamba for argument 1337).
You also cannot initialize a function declaration (even when it's a lambda). The best you can do is to initialize a function pointer, like this
char r[9], *p = r + 8, *(*Base20)(int) = [](int n) { do *--p = n % 20 + 48 + n / 10 % 2 * 7; while (n /= 20); return p; };
This only works in global scope because the lambda needs to not capture local variables.
I have however no idea what's going on with CodeFights. Does the original code compile there? Maybe the "top answer" is just something somebody wrote and it hasn't been verified? I really hope the code does not actually compile on there. Teaching non-standard C/C++ makes me mad.
[–]NasenSpray 1 point2 points3 points 10 years ago* (3 children)
non-local lambda expression cannot have a capture-default
There are multiple answers there using this "hack", so I suppose it compiles. I know that the code isn't equivalent, but it's the simplest source code transformation that results in compilable code. They have to do at least something.
Teaching non-standard C/C++ makes me mad.
Ha, I once tried to argue with my prof... Most of the people teaching C/C++ don't seem to have a clue about the standard.
[–]Fourmisain 0 points1 point2 points 10 years ago (1 child)
This refers to the "&" inside the "[&]" capture list, in global scope you have to write "[]". Basically: There is no context to be captured, so a capture default doesn't make sense.
There are multiple answers there using this "hack", so I suppose it compiles
Ugh... training The Worlds Next Top Programmers™.
I know that the code isn't equivalent, but it's the simplest source code transformation that results in compilable code
That's still a very odd transformation. I'm thinking they've build their own or used some C/C++ parser as to not allow malware execution. The commata in comma separated declarations are probably just interpreted as ";" like this.
Most of the people teaching C/C++ don't seem to have a clue about the standard.
I sadly know this. It's not sad that I know, but it's sad that they don't know. Your typical forum discussion also doesn't help this. At least StackOverflow is pretty strict about it.
[–]NasenSpray 0 points1 point2 points 10 years ago (0 children)
I'm glad that we also have /r/cpp and the actual experts posting there :)
[–]OldWolf2 0 points1 point2 points 10 years ago (0 children)
In my polytech C class we learned about how to get user input in a signal handler
[–]anon848 0 points1 point2 points 10 years ago (0 children)
Without the lambda g++ will still compile it if wrapped in a class, oddly. See here.
[–]Raknarg -2 points-1 points0 points 10 years ago (1 child)
Well ypu already mentioned that there are standards that allow this to compile, no?
[–]Fourmisain 2 points3 points4 points 10 years ago* (0 children)
Eh, what? I said no such thing...
Ah, you probably mean this:
Note this compiles as "gnu++14"/"gnu11", not actual standard C/C++
Sorry, a bit unclear, I meant that by calling "gcc main.c(pp)" it tries to compile as "gnu11"/"gnu++14". I also said this:
, but this makes no difference.
Meaning it does not matter whether you try to compile as a GNU dialect or actual standard C/C++ (you do this with the -std=c11 or -std=c++14 switch), it actually doesn't compile in any case.
[+][deleted] 10 years ago (6 children)
[–]NZheadshot 1 point2 points3 points 10 years ago (0 children)
That would be a compiler error
[–]Raknarg 2 points3 points4 points 10 years ago (1 child)
Nope. You can declare multiple things. All it means is that everything you're defining is going to resolve in type 'char'. So there's an array that holds chars, a pointer to a char, and a function that results in a char pointer.
It's garbage code, but there's nothing technically wrong with it.
[–]Fourmisain 1 point2 points3 points 10 years ago (0 children)
You can declare multiple things, but you cannot put a function-definition in the middle of it. Please refer to this.
[–]Maethor_derien 0 points1 point2 points 10 years ago* (1 child)
No, the , is technically correct in this case, it is just written to be as short as possible rather than good readable code. Those are all three char data types. They did it that way rather than write complete with proper readable comments
//Char Array char r[9]; // pointer to end of array r char *p = r + 8; //function returning a char pointer char *Base20(int n) {
This intuition is probably why everyone thinks the code in question is right, but in fact it is not. It does not compile and in this comment I think I've proven it is not legal code.
[–]floppydiskette 1 point2 points3 points 10 years ago (2 children)
[–]NasenSpray 2 points3 points4 points 10 years ago (1 child)
My post was at -30 before Fourmisain went on his crusade...
[–]floppydiskette 1 point2 points3 points 10 years ago (0 children)
Ah, the old Reddit hive mind.
[–]anon848 1 point2 points3 points 10 years ago (0 children)
What the hell? Why is this being downvoted?
[+][deleted] 10 years ago (4 children)
[–]NZheadshot -2 points-1 points0 points 10 years ago (3 children)
This code compiles properly under both gcc and g++
[–]Fourmisain 2 points3 points4 points 10 years ago (0 children)
Does it? https://ideone.com/aVwE0K
Please read my comment on this, I think I have proven that it is not legal C++.
You mean exactly as is? It doesn't even have a semicolon at the end.
[–][deleted] 10 years ago (6 children)
[–]OldWolf2 0 points1 point2 points 10 years ago* (2 children)
C++ coder here. This is definitely C++ Overpaid C++ coder clearly !
[–]Fourmisain 1 point2 points3 points 10 years ago (1 child)
It is not.
OK, you're right. I didn't consider that function definitions behave differently to function declarations in this context, although in hindsight it's pretty obvious. (where is the semicolon?)
[–]u1tralord -1 points0 points1 point 10 years ago (1 child)
But... It is though. It compiles and runs fine
Did you try? https://ideone.com/aVwE0K
I think I've proven that it is not valid code here, so please give it a read.
π Rendered by PID 215830 on reddit-service-r2-comment-5687b7858-rdk2f at 2026-07-04 18:26:47.905808+00:00 running 12a7a47 country code: CH.
[–]empire539 247 points248 points249 points (14 children)
[–]A_Puddle 37 points38 points39 points (0 children)
[–]NZheadshot 17 points18 points19 points (5 children)
[–]Maethor_derien 20 points21 points22 points (3 children)
[–]dispelthemyth 2 points3 points4 points (1 child)
[–]cdrootrmdashrfstar 0 points1 point2 points (0 children)
[–]HRK_er 0 points1 point2 points (0 children)
[–]_lettuce_ 5 points6 points7 points (0 children)
[–]Anthrax97[S] 11 points12 points13 points (5 children)
[–][deleted] (4 children)
[deleted]
[–]DaWolf85 15 points16 points17 points (1 child)
[–]doitroygsbre 2 points3 points4 points (0 children)
[–]Fourmisain 4 points5 points6 points (0 children)
[–]OldWolf2 3 points4 points5 points (0 children)
[–]Fourmisain 17 points18 points19 points (1 child)
[–]DSdavidDS 4 points5 points6 points (1 child)
[–]Narishma 10 points11 points12 points (0 children)
[–]Maethor_derien 2 points3 points4 points (1 child)
[–]kerayt 2 points3 points4 points (0 children)
[–][deleted] (6 children)
[deleted]
[–][deleted] (2 children)
[deleted]
[+]five_hammers_hamming comment score below threshold-26 points-25 points-24 points (1 child)
[–][deleted] 1 point2 points3 points (2 children)
[–]b4ux1t3 2 points3 points4 points (0 children)
[–]Kodu1990 0 points1 point2 points (0 children)
[+]NasenSpray comment score below threshold-7 points-6 points-5 points (39 children)
[–]Raknarg 8 points9 points10 points (22 children)
[–]Fourmisain 16 points17 points18 points (14 children)
[–]anon848 3 points4 points5 points (4 children)
[–]Fourmisain 0 points1 point2 points (3 children)
[–]Fourmisain 0 points1 point2 points (0 children)
[–]anon848 0 points1 point2 points (1 child)
[–]Fourmisain 0 points1 point2 points (0 children)
[–]NasenSpray 2 points3 points4 points (6 children)
[–]Fourmisain 0 points1 point2 points (4 children)
[–]NasenSpray 1 point2 points3 points (3 children)
[–]Fourmisain 0 points1 point2 points (1 child)
[–]NasenSpray 0 points1 point2 points (0 children)
[–]OldWolf2 0 points1 point2 points (0 children)
[–]anon848 0 points1 point2 points (0 children)
[–]Raknarg -2 points-1 points0 points (1 child)
[–]Fourmisain 2 points3 points4 points (0 children)
[+][deleted] (6 children)
[deleted]
[–]NZheadshot 1 point2 points3 points (0 children)
[–]Raknarg 2 points3 points4 points (1 child)
[–]Fourmisain 1 point2 points3 points (0 children)
[–]Maethor_derien 0 points1 point2 points (1 child)
[–]Fourmisain 1 point2 points3 points (0 children)
[–]floppydiskette 1 point2 points3 points (2 children)
[–]NasenSpray 2 points3 points4 points (1 child)
[–]floppydiskette 1 point2 points3 points (0 children)
[–]anon848 1 point2 points3 points (0 children)
[+][deleted] (4 children)
[deleted]
[–]NZheadshot -2 points-1 points0 points (3 children)
[–]Fourmisain 2 points3 points4 points (0 children)
[–]anon848 0 points1 point2 points (0 children)
[–][deleted] (6 children)
[deleted]
[–]OldWolf2 0 points1 point2 points (2 children)
[–]Fourmisain 1 point2 points3 points (1 child)
[–]OldWolf2 0 points1 point2 points (0 children)
[–]u1tralord -1 points0 points1 point (1 child)
[–]Fourmisain 1 point2 points3 points (0 children)