[Tutor] results not quite 100 percent yet

Tiger12506 keridee at jayco.net
Thu Feb 21 00:39:26 CET 2008


> As far as I can see, these routines give me the results
> I'm looking for. I get a distribution of four negative numbers,
> four positive integers in the range 10 to 110, and nothing
> is placed in room 6 or room 11:

I'll throw a couple of thoughts out there since I know that you appreciate 
to see many points of view.

> #!/usr/bin/python
>
> import random
>
> #print "\n"*30
>
> table= [[ 0, 2, 0, 0, 0, 0, 0],    # 1
>        [ 1, 3, 3, 0, 0, 0, 0],    # 2
>        [ 2, 0, 5, 2, 0, 0, 0],    # 3
>        [ 0, 5, 0, 0, 0, 0, 0],    # 4
>        [ 4, 0, 0, 3,15,13, 0],    # 5
>        [ 0, 0, 1, 0, 0, 0, 0],    # 6
>        [ 0, 8, 0, 0, 0, 0, 0],    # 7
>        [ 7,10, 0, 0, 0, 0, 0],    # 8
>        [ 0,19, 0, 0, 0, 8, 0],    # 9
>        [ 8, 0,11, 0, 0, 0, 0],   # 10
>        [ 0, 0,10, 0, 0, 0, 0],   # 11
>        [ 0, 0, 0,13, 0, 0, 0],   # 12
>        [ 0, 0,12, 0, 5, 0, 0],   # 13
>        [ 0,15,17, 0, 0, 0, 0],   # 14
>        [14, 0, 0, 0, 0, 5, 0],   # 15
>        [17, 0,19, 0, 0, 0, 0],   # 16
>        [18,16, 0,14, 0, 0, 0],   # 17
>        [ 0,17, 0, 0, 0, 0, 0],   # 18
>        [ 9, 0, 0,16, 0, 0, 0]]   # 19

Hard-coded. That means you have to change the program to change the game. It 
would not be difficult to store this/read it in from a file, making the same 
program suddenly handle an infinite number of games. (well not infinite, but 
at least 19*7*2147483647)

> # Distribute the treasure
> J = 0
> while J <= 3:
>        T = int(random.random()*19)+1
>        if T == 6:
>            continue
>        if T == 11:
>            continue
>        if T == 13:
>            continue
>        if table[T-1][6] != 0:
>            continue
>        b = range(10,110)
>        treasure = random.choice(b)
>        table[T-1][6] = treasure
>        J += 1
>
> # Place androids/aliens in rooms
> J = 4
> while J > 0:
>        T = int(random.random()*19)+1
>        if T == 6:
>            continue
>        if T == 11:
>            continue
>        if T == 13:
>            continue
>        if table[T-1][6] != 0:
>            continue
>        table[T-1][6] = -J
>        J -= 1

Those two block of code above are SO similar that sure they can be combined 
into one, or at least the first parts of them.



More information about the Tutor mailing list