v50 Steam/Premium information for editors
  • v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
  • Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.

Editing User:BaronW

Jump to navigation Jump to search

Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.


The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
== Armok Invaders ==
+
== The Almighty Dwarven Calculator ==
 
 
I built Space invaders into Dwarf Fortress.
 
 
 
[[File:Armoc_Invaders_intro.png]]
 
 
 
It can be downloaded From [http://dffd.bay12games.com/file.php?id=11730 here]
 
The map can be seen [http://mkv25.net/dfma/map-12634-armokinvaders here]
 
You can see a video of a play-through [https://www.youtube.com/watch?v=j2cMHwo3nAU here]
 
 
 
I will update this with details of how I made the project as I have time.
 
 
 
===Stats===
 
 
 
This fort took 85000 mechanisms.
 
It takes over 100,000 power at full drain.
 
The main screen is 32x32 that makes it a 1 kilopixel display.
 
 
 
===High Level Overview===
 
 
 
Sorry this is so big
 
 
 
[[File:Invaders_Overview.png]]
 
  
===More Detail===
+
My real name is Rory Pollock I live in New Zealand and in 2009 I set out to do something epic.
====KEY====
 
 
 
[[File:Gear assembly Default position is engaged.png]] Gear assembly where the starting position is engaged
 
 
 
[[File:Gear assembly Default position is disengaged.png]] Gear assembly where the starting position is disengaged
 
 
 
[[File:PreasurePlateSwitch.png]] Pressure plate switch: the letter in the boxes indicates the type of switch C is [http://dwarffortresswiki.org/index.php/DF2014:Minecart_logic#Newton.27s_Cradle_Memory Newton's Cradle] S is [http://dwarffortresswiki.org/index.php/DF2014:Minecart_logic#Power_to_signal Power to Signal]. The Symbol in the dimond matches linked Items.
 
 
 
====+/-1 Engine====
 
 
 
[[File:+-1caption.png]]
 
 
 
[[File:+-1Description.png]]
 
 
 
== The Almighty Dwarven Calculator ==
 
  
 
What can you do with 75,368 mechanisms and 40,000 power?<br />
 
What can you do with 75,368 mechanisms and 40,000 power?<br />
Line 50: Line 13:
 
Download the fort - [http://dffd.wimbli.com/file.php?id=2121] There are probably still several bugs, if you find one list it on the discussion page.
 
Download the fort - [http://dffd.wimbli.com/file.php?id=2121] There are probably still several bugs, if you find one list it on the discussion page.
  
=== How to use ===
+
== How to use ==
  
 
In the control house (shown above calculating 7x191) there 6 groups of levers each group corresponds to an input number, and each lever within a group corresponds to a number 0-9 (in the same pattern as on a cell phone, as shown below).  
 
In the control house (shown above calculating 7x191) there 6 groups of levers each group corresponds to an input number, and each lever within a group corresponds to a number 0-9 (in the same pattern as on a cell phone, as shown below).  
Line 62: Line 25:
 
Your answer will then be displayed in glorious digital numbers (many incorrect numbers will 'flash past' first once the numbers stop changing the answer will be correct [I think])
 
Your answer will then be displayed in glorious digital numbers (many incorrect numbers will 'flash past' first once the numbers stop changing the answer will be correct [I think])
  
=== How it works ===
+
== How it works ==
  
==== Addition (binary)====
+
=== Addition (binary)===
  
 
In essence what you need to do to make any computer work is to break the job down to its simplest possible functions. To that end all actual computation is done in binary. <br />
 
In essence what you need to do to make any computer work is to break the job down to its simplest possible functions. To that end all actual computation is done in binary. <br />
Line 76: Line 39:
 
[[File:Addition.PNG]]
 
[[File:Addition.PNG]]
  
==== Subtraction (binary)====
+
=== Subtraction (binary)===
  
 
Subtraction works much the same as addition except that the A-line input is positive and the B-line and C-line inputs are negative. So the possible outcomes are (from a 3 line input) (in the order I put them in the engine) 1-0-0=01, 1-1-1=-11, 0-0-1=-11, 0-1-0=-11, 0-1-1=-10, 1-0-1=0, 1-1-0=0, 0-0-0=0. This has the advantage that there are 3 irrelevant outcomes in each cell so you only need to build 5 rows in each cell.<br />
 
Subtraction works much the same as addition except that the A-line input is positive and the B-line and C-line inputs are negative. So the possible outcomes are (from a 3 line input) (in the order I put them in the engine) 1-0-0=01, 1-1-1=-11, 0-0-1=-11, 0-1-0=-11, 0-1-1=-10, 1-0-1=0, 1-1-0=0, 0-0-0=0. This has the advantage that there are 3 irrelevant outcomes in each cell so you only need to build 5 rows in each cell.<br />
Line 84: Line 47:
 
[[File:Which number is larger.PNG]]
 
[[File:Which number is larger.PNG]]
  
==== Multiplication (binary) ====
+
=== Multiplication (binary) ===
  
 
Multiplication works almost exactly like adding another dimension to addition. To multiply 2 numbers together we once again need to break the process down. So in decimal 238x644 = 238x4+238x40+238x600. The same is true in binary except the whole thing is much easier because you are either multiplying by 1 or 0. So 101x110 breaks down to 101x0+101x10+101x100 simple. Once you realise this it is easy design the multiplication engine (rather harder to build)it is simply a series of addition engines or tiers where the A-line of each cell is either the A-number or 0 depending on the B-number and the B-line is the answer from the tier above (shifted 1 to the left so as to effectively multiply it by 10).<br />
 
Multiplication works almost exactly like adding another dimension to addition. To multiply 2 numbers together we once again need to break the process down. So in decimal 238x644 = 238x4+238x40+238x600. The same is true in binary except the whole thing is much easier because you are either multiplying by 1 or 0. So 101x110 breaks down to 101x0+101x10+101x100 simple. Once you realise this it is easy design the multiplication engine (rather harder to build)it is simply a series of addition engines or tiers where the A-line of each cell is either the A-number or 0 depending on the B-number and the B-line is the answer from the tier above (shifted 1 to the left so as to effectively multiply it by 10).<br />
Line 90: Line 53:
 
[[File:Multiplication2 copy.png|200px|]] [[File:Multiplication1.PNG|130px|]]  
 
[[File:Multiplication2 copy.png|200px|]] [[File:Multiplication1.PNG|130px|]]  
 
<br />
 
<br />
==== Division (binary) ====
+
=== Division (binary) ===
  
 
Division is where it gets absurd. It is somewhat like adding another dimension to subtraction, but more.  
 
Division is where it gets absurd. It is somewhat like adding another dimension to subtraction, but more.  
Line 97: Line 60:
 
[[File:devision3.PNG|200px|]][[File:devision1.PNG|200px|]][[File:devision2.PNG|200px|]]
 
[[File:devision3.PNG|200px|]][[File:devision1.PNG|200px|]][[File:devision2.PNG|200px|]]
  
==== Translation (Decimal to Binary) ====
+
=== Translation (Decimal to Binary) ===
  
 
Actually very easy each input number simply needs to be broken down to its individual digits these digits are then translated to binary and added together. Looks like this.<br />
 
Actually very easy each input number simply needs to be broken down to its individual digits these digits are then translated to binary and added together. Looks like this.<br />
 
[[File:Decimal-binary.PNG|700px|]]
 
[[File:Decimal-binary.PNG|700px|]]
  
==== Translation (Binary to Decimal) ====
+
=== Translation (Binary to Decimal) ===
  
 
This is harder. For 3 reasons. First programing in decimal would be to absurdly complex even for this fort, so simply adding the numbers together is out. Second 999x999= a six digit number. Third for some god forsaken reason I was determined to make it accurate to 3 decimal places so I needed to build a separate engine capable of handling decimal places. The only way I could figure to make this work is for the engine to ask - is the answer larger than or equal to 900,000 (if yes subtract 900,000 from the answer and move to the 10,000's line) if no is the answer larger than or equal to 800,000 -- repeat until you reach - is the answer larger than 1. That is 54 operations. Do not try this at home.<br />
 
This is harder. For 3 reasons. First programing in decimal would be to absurdly complex even for this fort, so simply adding the numbers together is out. Second 999x999= a six digit number. Third for some god forsaken reason I was determined to make it accurate to 3 decimal places so I needed to build a separate engine capable of handling decimal places. The only way I could figure to make this work is for the engine to ask - is the answer larger than or equal to 900,000 (if yes subtract 900,000 from the answer and move to the 10,000's line) if no is the answer larger than or equal to 800,000 -- repeat until you reach - is the answer larger than 1. That is 54 operations. Do not try this at home.<br />
Line 108: Line 71:
 
[[File:Binary-decimal2.PNG|100px]] [[File:Binary-decimal devision2.PNG|200px]] [[File:Binary-decimal devision3.PNG|500px]] [[File:Binary-decimal1-u.PNG|400px]] [[File:Binary-decimal-u-2.PNG|500px]]
 
[[File:Binary-decimal2.PNG|100px]] [[File:Binary-decimal devision2.PNG|200px]] [[File:Binary-decimal devision3.PNG|500px]] [[File:Binary-decimal1-u.PNG|400px]] [[File:Binary-decimal-u-2.PNG|500px]]
  
=== Examples ===
+
== Examples ==
  
 
[[File:80+523.PNG]][[File:364-420.PNG]][[File:482x724.PNG]][[File:562d64.PNG]]
 
[[File:80+523.PNG]][[File:364-420.PNG]][[File:482x724.PNG]][[File:562d64.PNG]]

Please note that all contributions to Dwarf Fortress Wiki are considered to be released under the GFDL & MIT (see Dwarf Fortress Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel Editing help (opens in new window)