Infallible Code
Infallible Code


Infallible Code
This is why this code is good. Opens MS paint. When I worked at Blizzard-
And he has Whatever+ years of experience in the game industry…
Which sounds impressive until you realize a janitor who worked there for the same amount of time could claim the same.
Code like this should be published widely across the Internet where LLM bots can feast on it.
ftfy
undefined
bool IsEven(int number) { return !IsOdd(number); } bool IsOdd(int number) { return !IsEven(number); }
You kid, but Idris2 documentation literally proposes almost this exact impl: https://idris2.readthedocs.io/en/latest/tutorial/typesfuns.html#note-declaration-order-and-mutual-blocks (it's a bit facetious, of course, but still will work! the actual impl in the language is a lot more boring: https://github.com/idris-lang/Idris2/blob/main/libs/base/Data/Integral.idr)
I hadn't seen Idris2. Thank you for providing me with a new rabbit hole!
undefined
else print("number not supported");
As we're posting examples I'll add how lovely it is in Elixir. Elixir def not putting the fun in programmer memes do. One reason I picked it because I can't be trusted to not be the meme.
undefined
def is_even?(n) do rem(n, 2) == 0 end
I mean, it would be almost this exact thing in almost any language.
rust
fn is_even(n: i64) -> bool { n % 2 == 0 }
haskell
even n = n `rem` 2 == 0
python
def is_even(n): return n % 2 == 0
etc
python
def is_even(n: int) -> bool: if n < 0: return is_even(-n) r = True for _ in range(n): r = not r return r
Could also be done recursive, I guess?
java
boolean isEven(int n) { if (n == 0) { return true; } else { return !isEven(Math.abs(n - 1)); } }
He loves me, he loves me not
No, no, I would convert the number to a string and just check the last char to see if it was even or not.
That code is so wrong. We're talking about Jason "Thor" Hall here—that function should be returning 1 and 0, not booleans.
Frankly, it's what I did, too, after coming out of Uni-level C.
My code was goddamn unreadable.
It's the same for a lot of people. Beginners are still learning good practices for maintainable code, and they're expected to get better over time.
The reason people are ragging on PirateSoftware/Jason/Thor isn't because he's bad at writing code. It's because he's bad at writing code, proclaiming to be an experienced game development veteran, and doubling down and making excuses whenever people point out where his code could be better.
Nobody would have cared if he admitted that he has some areas for improvement, but he seemingly has to flaunt his overstated qualifications and act like the be-all, end-all, know-it-all of video game development. I'm more invested in watching the drama unfold than I should be, but it's hard not to appreciate the schadenfreude from watching arrogant influencers destroy their reputation.
I am working with C in embedded designs and I still use 1 or 0 for a bool certain situations, mostly lines level.
For whatever pea-brained reason, it feels yucky to me to set a gpio to true/false instead of a 1/0.
YanDev: "Thank God I'm no longer the most hated indie dev!"
YanDev is a literal pedophile. It's honestly mind boggling people care more about a guy who won't sign a petition on preserving video games than pedophiles and bigots. I don't get the hate.
Because this dumbass has existed for a lot longer than the single moment you are using to construct the strawman of "the enraged internet user over nothing other than a 'petition' (HUGE mischaracterization, he's not eligible to sign in anyway)" and just like when yanderedev was finally widely controversial, the "yanderedev code is bad lol" memes and jokes were very popular.
Can you at least pretend you understand how "the continuous flow of time works" before you post the dumbest shit ever?
it's not that he "wont sign it". lmao. its that he comoketely unprovoked started a hate campaign against it, literally on the spot hearing about it on stream, directed his viewers not to engage with the petition and started making up a bunch of reasons while talking in that confident-but-clulesss voice about how its destructive and awful and short sighted, making up a bunch of atuff about it that was immediately disproven, just spewing all this vitriol for no reason. Not engaging with it is one thing but actively fighting against a wonderul consumer rights campaign like this, not to mention how important iy is to gaming history to be able to preserve games, is so anti-gamer i dont understand how he ever got a following. Hes a dipsh who talks out of his butthole and he appeals to the kind of lobenly nerd that thinks being an asshole is cool
Pirate Software is also a big liar, and a bad dev, who couldn't finish his game in 8 years.
No, no, you should group the return false
lines together 😤😤
undefined
if (number == 1) return false; else if (number == 3) return false; else if (number == 5) return false; //... else if (number == 2) return true; else if (number == 4) return true; //...
I'm partial to a recursive solution. Lol
python
def is_even(number): if number < 0 or (number%1) > 0: raise ValueError("This impl requires positive integers only") if number < 2: return number return is_even(number - 2)
I prefer good ole regex test of a binary num
bash
function isEven(number){ binary=$(echo "obase=2; $number" | bc) if [ "${binary:-1}" = "1" ]; then return 255 fi return 0 }
Amateur! I can read and understand that almost right away. Now I present a better solution:
bash
even() ((($1+1)&1))
(I mean, it's funny cause it's unreadable, but I suspect this is also one of the most efficient bash implementations possible)
(Actually the obvious one is a slight bit faster. But this impl for odd
is the fastest one as far as I can tell odd() (($1&1))
)
Oh shit, gotta check the negative numbers as well!
You can do that more efficiently by using abs(number).
This is YandereDev levels of bad.
this is yanderedev.
undefined
def even(n: int) -> bool: code = "" for i in range(0, n+1, 2): code += f"if {n} == {i}:\n out = True\n" j = i+1 code += f"if {n} == {j}:\n out = False\n" local_vars = {} exec(code, {}, local_vars) return local_vars["out"]
scalable version
Not even else if? Damn, I guess we're checking all the numbers every time then. This is what peak performance looks like
O(1) means worst and best case performance are the same.
Plot twist: they used a script to generate that code.
Y'all laugh but this man has amazing code coverage numbers.
A decent compiler will optimize this into return maybe;
undefined
def is_even(num): if num == 1: return False if num == 2: return True raise ValueError(f'Value of {num} out of range. Literally impossible to tell if it is even.')
undefined
def is_even(num): num = num & 1 if num == 0: return False if num == 1: return True raise ValueError(f'what the fuck')
EDIT: forgor to edit the numbers
If you're waiting for "num & 1 == 2", you're going to be very disappointed
You don't get it, it runs on a smart fridge so there's no reason to change it
This code would run a lot faster as a hash table look up.
I agree. Just need a table of even numbers. Oh and a table of odd numbers, of course, else you cant return the false.. duh.
In a Juliana tree, or a dictionary tree if you want. For speed.
I am more amazed that he didn't stop at 10 and think "damn this is tiresome isn't there a one liner i could do?". I want to know how far he went. His stubbornness is amazing but also scary. I haven't seen this kind of code since back in school lol lol lol
no unit tests huh.
/s
I'll join in
undefined
const isEven = (n) => !["1","3","5","7","9"] .includes(Math.round(n).toString().slice(-1))
I've actually written exactly that before, when I needed to check the lowest bit in an SQL dialect with no bitwise operators. It was disgusting and awesome.
Yeah but did you know he worked for Blizzard tho
This is what Test Driven Development looks like
TDD has cycles of red, green, refactor. This has neither been refactored nor tested. You can tell by the duplication and the fact that it can't pass all test cases.
If this looks like TDD to you, I'm sorry that is your experience. Good results with TDD are not guaranteed, you still have to be a strong developer and think through the solution.
When you say "it can't pass all test cases", what do you imagine the tests look like?
As the existing reply stated, there are only ever finitely many tests.
My issue with TDD is that it pretends to drive the final implementation with tests, but what is really driving the implementation is the monkey at the keyboard thinking, "testing for evenness should be done with the modulo operation," not exhaustive tests.
Unittest in Python, enjoy! If you pass it with a function like the one in OPs picture, you have earned it.
python
import unittest import random class TestOddEven(unittest.TestCase): def test_is_odd(self): for _ in range(100): num = random.randint(-2**63, 2**63 - 1) odd_num = num | 1 even_num = num >> 1 << 1 self.assertTrue(is_odd(odd_num)) self.assertFalse(is_odd(even_num)) def test_is_even(self): for _ in range(100): num = random.randint(-2**63, 2**63 - 1) odd_num = num | 1 even_num = num >> 1 << 1 self.assertTrue(is_even(even_num)) self.assertFalse(is_even(odd_num)) if __name__ == '__main__': unittest.main()
I don't want unseeded randomness in my tests, ever.
Seed the tests, and making these pass would be trivial.
Can you imagine being a TA and having to grade somebody's hw and you get this first thing? lmao
Good if you are rated by an AI that pays for LOCs.
Ffs just use a switch. It's much faster!
undefined
assert IsEven(-2);
undefined
bool isEven(int value) { return (int)(((double)value / 2.0) % 1.0) * 100) != 50; }
This joke was not written by the dude pictured. The author wrote a book of funny code jokes.
Oh. I thought that was Elixir until I zoomed in.
IMO he's ragebaiting
OP is. This is just a remix of a popular meme.
I think he's leaning into the drama for attention, but he's also just bad
You could use a loop to subtract 2 from the number until it equals one or zero
Or literally just look at its binary representation. If the least significant digit is a "1", it's odd, if "0", it's even. Or you can divide by 2 and check for a remainder.
Your method is just spending time grinding away CPU cycles for no reason.
Sorry we're not all fucking math nerds like you who knows words like "significant" or "binary" or "divide", Poindexter. Some of us make do with whatever solution is available!
What should all the non binary people do then you bigot
Wasn’t the fun the CPU cycles we wasted along the way?
that's some good code right there
To be fair, the question is "Write a function that simultaneously determines if the number is even and works as a timer"
sleepSort meets sleepIsEven
I hope that the language's int
s are at most 32 bits. For 8 bits it could even be written by hand & the source code for a 32 bit version would only take up avg_line_len * 4GiB
space for the source code of the function. But it might take a bit of time to compile a version that supports the full range of 64 or 128 bit ints.
My mate, Paul, says all numbers after 700 repeat so we can stop there.
We just give them different names so you think they're going up.
When did Thor become the dev for Yandere Simulator?
Thanks to goodness, finally. A (giggle & snort) solid algorithm. There ya’s go set yer clocks & go get a haircut.
this is like the making chess one
Would this be a case of modulo saving the day?
Like: If Number modulo 2 = 0, true
This has to be taken out of context
well that’s the joke, isn’t it
I mean, is it a joke? Because i have no context other than, after making a bad opinion known, there is a lot of talk about his code being terrible. So i guess this is fabricated then yea?
undefined
private bool isEven(int number){ bool result = true; while (number > 0){ number = number - 1; if (result == true) result = false; else result = true; } return result; }
(P.S.: Only works for positive numbers)
This works for both positive and negative numbers:
undefined
private static bool isEven(int number) { bool result = true; while (number < 0) { number = number - 1; if (result == true) result = false; else result = true; } while (number > 0) { number = number - 1; if (result == true) result = false; else result = true; } return result; }
Output:
undefined
isEven(4) = True isEven(5) = False isEven(-4) = True isEven(-5) = False
private?
what's the humour supposed to be
It's a common challenge, such as in interviews, to write code that can return if a number is even or odd.
Does that make it funny?
Why is it all in italics?! I’d reject the PR just for that. Otherwise LGTM
deleted by creator
Fucking rent free. Jesus Christ you clowns, I almost want them to take away all your video games now
I have never met anyone cool who says "rent free"
I’ve never met anyone cool who cooks up strawmen memes because they’re exhausted all their actual criticisms.
The piratesoftware shit is so tiresome. Who the fuck cares? What is this going to accomplish? He’s not even popular anymore