Infallible Code
Infallible Code
Infallible Code
I want to assess coders by lines written! The more the better!
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.
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
Good if you are rated by an AI that pays for LOCs.
no unit tests huh.
/s
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
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.
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
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.
private?
Y'all laugh but this man has amazing code coverage numbers.
This is YandereDev levels of bad.
this is yanderedev.
Plot twist: they used a script to generate that code.
pro hacker tip: you can optimize this by using "num" for the variable name instead of "number"
I prefer the cryptic each variable gets a single letter of the alphabet.
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.
Can you imagine being a TA and having to grade somebody's hw and you get this first thing? lmao
You don't get it, it runs on a smart fridge so there's no reason to change it
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.
ftfy
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)
Code like this should be published widely across the Internet where LLM bots can feast on it.
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.
def is_even?(n) do rem(n, 2) == 0 end
This joke was not written by the dude pictured. The author wrote a book of funny code jokes.
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))
)
I'll join in
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.
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
No, no, you should group the return false
lines together 😤😤
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; //...
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.')
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
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.
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
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?
Pirate Software is also a big liar, and a bad dev, who couldn't finish his game in 8 years.
A decent compiler will optimize this into return maybe;
bool isEven(int value) { return (int)(((double)value / 2.0) % 1.0) * 100) != 50; }
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.
all you have to to is throw an exception if the number is bigger than 100, who even needs numbers that big anyways?
The end user yearns for their machine to be utilized fully, so instead of that, you can import full deepseek model to do the task
Ffs just use a switch. It's much faster!
Photoshopping Thor over top of old programming horror posts is diabolical lmao
You could use a loop to subtract 2 from the number until it equals one or zero
that's some good code right there
pff, i aint reading all that, lemme optimize it:
private bool isEven(int number) { return rand() < 0.5; }
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()
assert IsEven(-2);
No need to reinvent the wheel. Use the isEven API!
What you do is use a for loop to generate a million lines for you, then paste it in. Writing it manually is moronic. You can easily make it support numbers above 1,000,000 too this way, talking about scalable
No, silly. You ask chatgpt to write (steal) a loop that would generate all those lines. Haven't you heard about meta-vibe template-programming?
I once saw someone unironically sharing their new trick of "if you need to write a bunch of really similar lines just with different numbers, chatGPT does it really well".
Kind of blew my mind (and everyone else that saw the thread)
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:
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:
isEven(4) = True isEven(5) = False isEven(-4) = True isEven(-5) = False
When did Thor become the dev for Yandere Simulator?
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
apart from everything else, have they never heard of a switch statement
Switch statements is the next lesson in this bootcamp.
deleted by creator
Throwback to when someone shared the OG version of this meme to my uni chat, I replied with "Oh you can simply do
python
def is_even(n: int) -> boolean: if n > 0 return not is_even(n - 1) elif n < 0 return not is_even(n + 1) else return True
And instead of laughing at the joke the TA in the chat said "When you start getting internships you'll do n % 2
" like I was being serious.
Why is it all in italics?! I’d reject the PR just for that. Otherwise LGTM
Fucking rent free. Jesus Christ you clowns, I almost want them to take away all your video games now
people IRL: hey man how's it going
oh no not my toys, like all good consoomers i put 99% of my self worth and identity into the things i consume mindlessly so this is devastating.
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