I've setup a page for the project, I'll try to provide the source code, and actually figure more things out once I get a change. At the time of editing it's around 6am, and I haven't slept at all. Here's the topic. <--- THIS WILL LET YOU DO IT YOURSELF WITHOUT HAVING TO PROGRAM ANYTHING!
Alright, so, I love strongholds. Not that I've explored any, I just love the concept of them... However, I'm not exactly a patient person, so when I heard that they were few and far between, I set out to decompile the minecraft pre-release and find out how they calculated their position!
This actually proved to be WAY more difficult than I thought it would be. I honestly had no idea that obfuscated code was so..... obfuscated..... And after hours of looking through endless lines of code, I only had only made marginal progress. So, I took what I had, and decided to test it-- The numbers I was getting LOOKED like coordinates, so why not try, right? I inputted a seed I knew the stronghold for and was surprised to find that my numbers were really... close.... So, I started making new maps, putting in the seed and setting my character's position to the numbers I got. Each time I was within 100 blocks of a stronghold....
For all I know this is just dumb luck, or perhaps they greatly increased the number of strongholds generated per world, and I just don't know it. But if people would like to provide me with some sample seeds, I'd love to see if I can find the stronghold in them.
Sorry if this has already been done/covered, I just found it interesting.
Just thought I should put the java code in the first post!
Random c = new Random();
c.setSeed(199513412870065660L); //Or whatever your seed is.
double d1 = c.nextDouble() * 3.141592653589793D * 2.0D;
double d2 = (1.25D + c.nextDouble()) * 32.0D;
int k = (int)Math.round(Math.cos(d1) * d2);
int m = (int)Math.round(Math.sin(d1) * d2);
int kt = (k << 4) + 8;
int mt = (m << 4) + 8;
System.out.println(kt + " " + mt);