Jump to content
Sign in to follow this  
  • entries
    156
  • comments
    253
  • views
    85776

Parrot is Fun!

Sign in to follow this  
ildave1

229 views

Design Document
This morning I started up on the design document for Spherion and so far its coming out well. I can't stress how much it has helped to write a story out on digital paper. Even if you are not an excellent writer, writing a story out before you start writing up the design document can help you ten-fold. Not only that, but, by the time you have finished writing the story, you will have a very solid grasp of exactly what is going to take place in your concept world.

I started writing August 20th and finished it yesterday, September 5th. I gave the story a good hour a day, missing a couple of days doing homework/random things.

So, this morning, like I said, I began on the design document. Well, I have a general idea of what goes into the document, but, I really wanted a template to go off of. So, I did some searching and I ran across a template that the mind behind Dungeon Seige, Chris Taylor, used when he put the imagionation in motion.

For Simplicity, you can Download it Here, and it will be linked on top of the journal soon.

Parrot Assembly Language is Fun!
So, tonight I finally got my hands on a low level language and it was fun! Ha-ha. No, seriously. ;) You can check out parrot by visiting http://www.parrotcode.org/

Here is the program I whipped together in less than an hour. It is well commented, so you can get an idea of what is going on. This is written in PIR (Parrot Intermediate Representation), which is basically between a high level language and assembly. The ASM version of this wouldn't be too incredibly different. I'll probably convert it tomorrow just for kicks. In fact, now that I think about it, ASM would be a bit less combersome.


#-------------------------------------------
# This program will take input from the user to
# find the number of combinations that can be
# selected from 'n' items chosen 'k' at a time
#
# FORMULA: C(n,k)= n! / ((n-k)! * k!)
#-------------------------------------------


#--------------------------------------------
# Computes the factorial of a given number
#--------------------------------------------
.sub factorial
.param int n
.local int result

if n > 1 goto recurse
result = 1
goto return

recurse:
$I0 = n - 1
result = factorial($I0)
result *= n

return:
.return(result)
.end

#------------------------------------------
# Computes the number of combinations that
# can be selected from n items chosen k at a
# time
#------------------------------------------
.sub C
.param int n # Param 1
.param int k # Param 2

set $I3, n # Set register I3 to n
set $I4, k # Set register I4 to k
sub $I5, n, k # Subtract n from k store in register I5
$I5 = factorial($I5) # Find Factorial of I5
$I3 = factorial($I3) # Find Factorial of I3
$I4 = factorial($I4) # Find Factorial of I4
mul $I5, $I5, $I4 # Multiply register I5 against I5 and store in I5
div $I5, $I3, $I5 # Divide register I3 against I5 and store in I5

.return($I5) # Return register I5 value (solution)

.end

#-----------------------------------------
# Main entry point
#-----------------------------------------
.sub 'proj1' :main
read $S1, 10 # Read Input for 'n'
read $S2, 10 # Read Input for 'k'
$I0 = $S1 # Store input for 'n' in register I0
$I1 = $S2 # Store input for 'k' in register I1

$I2 = C($I0, $I1) # Compute Combinations and store in register I2

print $I2 # Print Result
print "\n"
.end

Sample Run:
INPUT: 5
INPUT: 2
OUTPUT: 10



Anyway. If you have any questions, feel free to sling them on over.

Regards,
-Dave
Sign in to follow this  


1 Comment


Recommended Comments

I was never brave enough to go lower level than C[grin]

BTW, how did that whole mandatory recall thing work out for you? Have they called you up, or are you off the hook?

Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!