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 40d Talk:Computing

Jump to navigation Jump to search

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

You are editing a page for an older version of Dwarf Fortress ("Main" is the current version, not "40d"). Please make sure you intend to do this. If you are here by mistake, see the current page instead.

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 108: Line 108:
 
::I'm not too keen on attempting to read your diagram, so here's what I would do to create a door which closes when a dwarf steps near it but stays constantly open when a lever is set.
 
::I'm not too keen on attempting to read your diagram, so here's what I would do to create a door which closes when a dwarf steps near it but stays constantly open when a lever is set.
 
::[[Image:Onewaydoor.PNG]]
 
::[[Image:Onewaydoor.PNG]]
::Do tell me if you build it or need more details, optionally through #bay12games! --[[User:Zort|Zort]] 20:51, 12 May 2009 (UTC)
+
::Basically, the pressure plate is linked to the door through a NOT gate, and the lever is linked to the door through a repeater.  I believe this is necessary, because the [[lever]] page implies that the KEEPITOPEN lever will have to keep asserting itself if you want to keep the door open.  Do tell me if you build it, optionally through #bay12games!
 
+
::Er, sorry, made a mistake: The cyan pressure plate in the repeater should be set to '''0-0''', not 1-7 or 2-7 or 4-7. --[[User:Zort|Zort]] 21:24, 11 May 2009 (UTC)
::'''Animal Logic'''
 
:::I think that a simpler method of one-way door could be used in an animal logic system:
 
---------------------------
 
  #<#
 
##D##
 
+DPD+
 
#####
 
---------------------------
 
Two of the doors are connected to other parts of the machine; the third is is directly linked to the pressure plate in the middle so that it closes when the animal is in the center, and leads to outside.  When the entry door opens, the animal walks in seeking the exit, which closes before it get there.  The animal then has nowhere to go but out the next door, but only after that door is opened. [[Special:Contributions/71.194.101.232|71.194.101.232]] 02:37, 9 March 2010 (UTC)
 
  
 
== Base 8? ==
 
== Base 8? ==
 
It says in '''Fluid Logic''', "Fluid logic allows for computing in up to base 8."  How does this work? Pressure plates cannot be made to distinguish between the 8 different water levels...  Of course, you could use many counters in such a way as to simulate base 8, but base 2 would be more natural. --[[User:Zort|Zort]] 20:04, 11 May 2009 (UTC)
 
It says in '''Fluid Logic''', "Fluid logic allows for computing in up to base 8."  How does this work? Pressure plates cannot be made to distinguish between the 8 different water levels...  Of course, you could use many counters in such a way as to simulate base 8, but base 2 would be more natural. --[[User:Zort|Zort]] 20:04, 11 May 2009 (UTC)
:Pressure plates can distinguish between different levels, and can be set to go off at a range between any two numbers. They can also determine the difference between water and magma. It is at the bottom of the trigger menu. i2amroy 22:48, 11 May 2009
 
::Exactly. They can detect a range between two given numbers, but, if a plate is set to 0-4, it cannot distinguish between 5, 6, or 7, levels of water. --[[User:Zort|Zort]] 12:20, 12 May 2009 (UTC)
 
:::One way that computing in base eight could be possible would be to have a pressure plate that triggered at 7-7 water and whenever you were going to 'add' something, you add a certain number of water 1/7's to that pressure plate. Then, whenever the pressure plate had 7/7 water, it would trigger the pump once, drawing out one 7/7 block of water. This could then activate another pressure plate that would add one 1/7 block of water to another pressure plate. This then means that each 1/7 of water in the second pressure area equals seven 1/7 blocks of water in the first. This allows adding in base eight. Highly complicated, but it still works.  i2amroy 7:56 (MST), May 12 2009
 
::::Er, do you mean this:
 
::::[[Image:Prototypememory.PNG]]
 
::::Or do you mean a row of 8 pressure plates, each set to 1-1 (or some other level if I haven't thought about it enough)?  This row of plates I would personally consider to be binary, I suppose it doesn't matter.  Complexity is no obstacle for Dwarfputing. [[User:Zort|Zort]] 22:00, 12 May 2009 (UTC)
 
::::Even with the adding-1/7-water example you'll stay binary. While it's an interesting way to create an special counter, you'll be unable to read numbers other than 8,8^2,8^3,... You'll stick to the binary information 8/NOT 8. Additionally evaporation and the fact that you can't move 1/7 water away will make it somehow impossible, like everything else that works with ammounts of water somehow. --[[User:Kami|Kami]] 09:28, 2 December 2009 (UTC)
 
 
== A practical use for borg logic ==
 
 
*I think that you could easily use borg logic in a (living) fortress to make a randomly changing labyrinth.  Have dozens of plates strewed across the floor of your main feast hall; each is connected to a 'memory' switch that does something random in the labyrinth, and/or clears a different switch.  Memory switches are very easily constructed should you have a chasm, where you can use gravity instead of a pump; said chasm is also often useful in populating said chasm with dangerous creatures. If you're clever enough to be able to build a 'clear all' switch, you can eventually make it so that the labyrinth inhabitants themselves are doing the computations for you! (something that's necessary if you want it to work in adventurer mode!)
 
::::::::::::::::::::::::::::::::::::::::::::::::--[[User:Arkenstone|Arkenstone]] 12:50, 9 August 2009 (EST)
 
 
== Water Clock Questions ==
 
 
I was thinking about creating a water clock for my fort so that I would not get surprised by the seasons every time.  However, there are a few items that might pose a bit of a problem for me here (not the least of which is the fact that this would be my first attempt at water logic) so I thought I would ask around and see if anyone knew some answers that might help me out.
 
 
First, is the rate of water evaporation constant, or random?  If it’s random, I’m not sure this would work. I’m pretty sure I would need a constant value for the rate at which my various reservoirs would fill up.
 
 
Second, does anyone know the number of steps in a season, how many steps it takes for a 6/7 tile of water to spread into two 3/7 tiles, and if steps are the right unit of measurement here?
 
 
Thirdly, there is no thirdly.  That’s it.  Thanks for any input in advance.  [[User:Frewfrux|Frewfrux]] 19:26, 17 November 2009 (UTC)
 
:The rate of water evaporation is random.  This is easy to test by filling a large area with 1/7 water and watching it evaporate - it doesn't evaporate nicely in the order it filled.  I'm not sure about the answer to the second question.  --[[User:LaVacaMorada|LaVacaMorada]] 00:57, 18 November 2009 (UTC)
 
::There's another article about creating a system of pumps that basically pumps one level of water (or maybe two?) constantly creating a never ending waterfall.  It's apparently "neverending" because the pumps will pump the water faster then it can evaporate.  This means, from my perspective, that the rate of water evaporation must have, at least, a minimum timeframe for it to exist before the code tests to see if it might evaporate (otherwise that neverending waterfall wouldn't work). And *that* means that it should be possible to fill at least small areas with water quickly enough that you don't need to worry about any evaporation rates.  If that's true, then perhaps I can do this water clock thing after all.  All I really need to figure out is the rate at which all this will happen.  If there is anyone who's figured this out (I haven't seen the info I need anywhere in the wiki) then please let me know.  Otherwise it will be a little while before I can do the needed tests. --[[User:Frewfrux|Frewfrux]] 01:27, 1 December 2009 (UTC)
 
 
::ROFLOL.  I didn’t even see the calendar on the inventory screen until just this morning.  Well, I guess I can still try for a water clock, but I will need to somehow make it useful.  I think I could have it dump a tile worth of water over top of my magma vent at the start of spring each year.  This will freeze the game due to a “cave in” (the produced obsidian floor falling to the bottom of the vent) and alert me that it’s time to get my winter-working dwarves inside before the start of the first season’s goblin ambushes. So I guess there is still a point to creating a water clock.
 
 
::In case anyone was wondering I tested out the length of days in steps, and comparing my tests to what is mentioned on the article under “calendar”, I am fairly certain that the length of a day is 1200 steps.
 
 
::Also, I think I’ve figured out how to not have to worry about evaporation; make use of water pressure. If I build all the logic gates for my clock on a low enough level, and have them be filled from a multi-level cistern fairly high up, then the water pressure should cause the water to spread fast enough that evaporation won’t be an issue.  If it works the way I’m thinking it will, then there definitely is a way to build all these logic gates in a way that is dependable from a timing standpoint. --[[User:Frewfrux|Frewfrux]] 17:16, 1 December 2009 (UTC)
 
 
:::Hmmmm.  I think all this talk might be better handled on my user page.  I will attempt to sort through it and figure out what to leave here and move the rest over at a later point.  --[[User:Frewfrux|Frewfrux]] 17:24, 1 December 2009 (UTC)
 
 
== This is either a very good or a very bad idea. ==
 
 
Is Dwarf Fortress Turing complete? If so, some very interesting ideas are in order.
 
 
:Starcraft is Turing complete - i'm guessing that makes DF so.  (Admittedly, one can program Tetris in Starcraft, and that seems hard in DF... no wait, i think i could make something that was logically equivalent, but it would *suck* to play it).  --[[User:Squirrelloid|Squirrelloid]] 22:24, 1 December 2009 (UTC)
 
:: I'd say it is turing complete, but it's hard to proof. (Btw, I like the tetris idea...) --[[User:Kami|Kami]] 09:05, 2 December 2009 (UTC)
 
:This Wikipedia article on the subject [http://en.wikipedia.org/wiki/Turing_completeness Turing Completeness] says that a machine must have the capability of conditional branching (if/goto) and the ability to write to memory. I believe that in the realm of Dwarf Fortress Computing a lot of serious work needs to be done in designing efficient, cheap, and reliable components before we can approach a Turing Machine. The Computing articles are still in the proof-of-concept stage as I read them and do not have much to say about building more complex assemblages of components with specific purposes. Some ingenious players have designed complex machines, but not documented them. A calculator does not a computer make, it must have the ability to logically branch based on programming.--[[User:Carlthuringer|Carlthuringer]] 10:07, 9 March 2010 (UTC)
 

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!

Please sign comments with ~~~~

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

Cancel Editing help (opens in new window)

Template used on this page: