16-Year-Old Creates Scientific/Graphing Calculator In Minecraft
New submitter petval tips another amazing Minecraft project: a functioning scientific/graphing calculator. "On a virtual scale, the functional device is enormous — enough so that anyone in the real world would become a red blot of meat and bone staining the road if they fell from the very top. Honestly, his virtual machine looks more like a giant cargo ship ripped from a sci-fi movie than a working calculator. Yet type your problem out on the keypad, and the answer appears on a large white display mounted on the side of the monstrous brick structure." The creator says it can do "6-digit addition and subtraction, 3-digit multiplication, division and trigonometric/scientific functions ... Graphing y=mx+c functions, quadratic functions, and equation solving of the form mx+c=0." We've previously discussed the creation of a 16-bit ALU in Minecraft.
Well, if these games can get younger people interested in the concepts of programming, I'm all for it. I'm not a fan of most online games, but I have to say this is really cool. I think more games should provide an environment to explore programming (optionally of course)
I don't think a kid who has the ability to create this in Minecraft will be having too much trouble with their SATs...
There are lots of addons that help with redstone wiring. The premiere one is probably RedPower2. In addition to giving unit-sized gates, latches, and flip-flops, it also gives buses, which can carry 8 bits of data along a single line.
I just can't believe that this is all done without addons. Even building a BDD (Binary to Decimal Decoder) is difficult in Minecraft, and translating that to display the correct digits is complex. I don't mean "complex so that a child couldn't understand it", but complex as in taking a lot of clock cycles. There are only 20 ticks per second in Minecraft, so all these operations quickly add up to a lot of time.
In addition to binary/decimal conversions, and the logic for doing complex operations (dividing is very hard), this calculator even has typesetting. When you have a power, it places the the displayed value as a superscript! Radicals are drawn over values for the SQRT operations!
In essence, I'm a bit skeptical about this. I believed it when I first saw it a few days ago, but the more I think about it, I think it's all staged. I'm curious to see what others think.
As far as my own redstone experience: I've done far more than the average minecraft player, including building adders and counters, but haven't ever attempted any mega projects.
Free unix account: freeshell.org
Minecraft is a sandbox type game where you can build stuff out of the environment. It has no scripting or math functions built in, nor does it really have any sort of logic gates built in. However, it does something called "redstone dust" which you can use as wires. The wiki explains more, but you can hand-craft logic gates out of it: http://www.minecraftwiki.net/wiki/Redstone_Dust
Considering the amount of research and understanding that it took to build this thing, I highly doubt this was a "waste of time". Also, it is an awesome showcase of his abilities to future employers and colleagues. You could argue that he could have built a real calculator from transistors instead but that would probably take money that a lot of 16 year olds simply do not have.
As per a YouTube Comment:
Autismï is a hell of a drug.
I remember when Linux was good... too...
A friend of mine (who's 15) and myself (I'm 28 with a CS degree) have a nearly working programmable 8-bit computer in Minecraft. ALU is done, all 256 bytes of memory are done, the instruction tape (made out of sand and glass, much like a punchcard) is done, etc. Another 20 someodd hours and we'll have all of the components connected together and the whole CPU completely done. It actually isn't as hard or take as much time as it may sound.
The most impressive thing about this video is that he did all of the math in BCD rather than just running it on a CPU. I already have multiplication (Booth's algorithm) and other operations programmed on our instruction set (we wrote an assembler and emulator outside of Minecraft to work out the kinks). I'd rather do the complex operations in software rather than laying gates and logic in the hardware.
I don't see how he has enough room for displays of that size. You'd need NxM worth of latches to sustain the pistons that drive the pixels as well as the appropriate muxers to select which pixels are turned on. Our 256 byte memory array is bigger than his entire calculator so I'm a bit skeptical that he isn't using some addons.
skipped the whole stupid "show your work" crap which just slowed me down
You really do need to show your work. It's not an issue for 25+13, but for any real problem it is essential. Try doing vector calculus without showing any work. It doesn't make you smart if you can, it makes you stupid to try. The work is a proof that validates your answer. Not showing the work in math is like not supporting any of your conclusions with arguments in philosophy. That's why they try to train kids to do it early.
Honestly, if your tutor didn't realize that, then she was a pretty terrible teacher.
For logs, it is easier and faster to [1] convert the number to binary (2^x) (1.yyyy). Save the power x for later. For the other number 1.yyyy, break the number down to [binary] (1+0.a)(1+0.0b)(1+0.00c)... Where a, b, and c are binary digits. There is an algorithm like a single binar divide that will generate a,b,c all at once . Then for every nonzero a, b, and c... you look up the log-base 2 and sum those together. That will give you the binary digits to the right of the decimal. The number to the left is the power of 2 from the first conversion.
Correct Horse Battery Staple: 72 bits of entropy. Enter "Correct H" into google. When it generates the phrase, that's
Next step: Minecraft fleshlight.
The thing to be noted from this is that Minecraft is an easier IDE to use than Eclipse.
I have a truly remarkable rebuttal to your argument that your mind is too small to contain.