Python

Moderators: None (Apply to moderate this forum)
Number of threads: 400
Number of posts: 1055

This Forum Only
Post New Thread
Single Post View       Linear View       Threaded View      f

Report
Well, I'm a programming n00b... Posted by Owski on 3 Mar 2010 at 6:14 PM
I'm taking an Intro to Comp Sci course and Python is the main topic. Right now we were asked to complete this assignment:

Goal: Apply function top down design to a Python slot machine game.
The slot machines have between 2 and 6 reels and each reel will display one of 10 digits (0, ..., 9). So each spin will return a number with n digits (as many as reels selected). For each spin, the user determines the number of reels and spin = random.randint(0,10**(r-1)).

First, the user is prompted to enter the number of reels, which will not change throughout the game. The user is also prompted to enter the number of tokens and each spin will cost the player 1 token. The game ends when the user opts not to continue or when the user runs out of tokens.

The user hits the jackpot if the weight is equal to the number of reels. The weight is defined as the largest number of the same digits in one number (Ex. 234458 has weight 2 because 4 appears twice). Based on the number of reels and the weight, the user is awarded tokens (given in project but can be arbitrary for now except when weight = 1, award = 0).

For each spin, the user is shown the generated number, the weight, the award, their balance of tokens and are asked if they would like to continue the game.

It has to be a top down design and we must define our own functions. I'm really confused about defining functions in general, especially when it comes to arguments and the return line. Also, a particular aspect of the program that I'm confused about is how to tally the weight. Someone suggested to make an empty list but I'm not sure how to read the spin digit by digit to keep tally of the digits in the empty list. Here is what I have so far(and I don't believe any of it is correct):

from random import randint

def ask(r, tokens):
"""
Asks user for reel and token inputs
"""
r = input ('How many reels? (2, 3, 4, 5, or 6): ')
tokens = input ('Give the number of tokens: ')
return (r, tokens)

def spin(r, tokens):
"""
Calculates and displays spin
"""
while respond == 'y':
spin = randint (0,10**((r)-1))
tokens -=1
print 'spin '+str('%04d' % spin)+' has weight _ with award _'
if tokens <= 0:
print ('ending balance: ' + tokens)
else:
respond = raw_input('your current balance: ' + str(tokens) + ', conintue? (y/n)')

def weight(spin):
"""
Notes each digit in a spin
Determines weight based on greatest amount of same number in each spin
"""
L = [0,0,0,0,0,0,0,0,0,0]
m = '-> spin %0d' % (spin)
if weight == 1:
print m + ', has weight 1 with award 0'
elif weight == 2:
total += weight
respond = raw_input('your current balance: ' + str(total) + ', conintue? (y/n)')
return (total,spin)





 

Recent Jobs

Official Programmer's Heaven Blogs
Web Hosting | Browser and Social Games | Gadgets

Popular resources on Programmersheaven.com
Assembly | Basic | C | C# | C++ | Delphi | Flash | Java | JavaScript | Pascal | Perl | PHP | Python | Ruby | Visual Basic
© Copyright 2011 Programmersheaven.com - All rights reserved.
Reproduction in whole or in part, in any form or medium without express written permission is prohibited.
Violators of this policy may be subject to legal action. Please read our Terms Of Use and Privacy Statement for more information.
Operated by CommunityHeaven, a BootstrapLabs company.