2并排执行的功能

时间:2013-03-20 20:43:24

标签: function dice

好的,这是我第一次在这里问一个问题所以请不要生气,如果这不是一个好问题。我有6个函数代表正在滚动的骰子的图像。我必须制作一个用于编程的掷骰子游戏。游戏本身正在完美地执行,但我必须将骰子并排显示而不是彼此重叠。 例如:

I have this:
+------+
|  *   |
|  *   |
+======+
+------+
|  *   |
|  *   |
+------+

I need this:
+------+  +------+
|  *   |  |  *   |
|  *   |  |  *   |
+------+  +------+

Here is my program so far:

import random

def roll_dice1():
    print "+-------+"
    print "|       |"
    print "|   *   |"
    print "|       |"
    print "+-------+"
def roll_dice2():
    print "+-------+"
    print "| *     |"
    print "|       |"
    print "|     * |"
    print "+-------+"    

def roll_dice3():
    print "+-------+"
    print "| *     |"
    print "|   *   |"
    print "|     * |"
    print "+-------+"    

def roll_dice4():
    print "+-------+"
    print "| *   * |"
    print "|       |"
    print "| *   * |"
    print "+-------+"    

def roll_dice5():
    print "+-------+"
    print "| *   * |"
    print "|   *   |"
    print "| *   * |"
    print "+-------+"

def roll_dice6():
    print "+-------+"
    print "| * * * |"
    print "|       |"
    print "| * * * |"
    print "+-------+"    

def dice_roll():
    counter = 0
    dice = []
    while counter < int(2):
        dice += [random.randint(1,6)]
        counter += 1    
    i = 0 
    while i < 2:
        if dice[i] == 1:
            roll_dice1()
        elif dice [i] == 2:
            roll_dice2()
        elif dice [i] == 3:
            roll_dice3()
        elif dice [i] == 4:
            roll_dice4()
        elif dice [i] == 5:
            roll_dice5()
        elif dice [i] == 6:
            roll_dice6()     
        i += 1    
    roll = dice
    return roll

def point_cycle():
    raw_input( "Press <Enter> to roll the dice")
    roll = dice_roll()
    total1 = int(roll[0]) + int (roll[1])  
    if total1 == 7:
        print "You rolled a 7."
        print "You lose!"
    elif total1 == total:
        print "You rolled a " + str(total1)
        print "You win!"
    else:
        print "You rolled a " + str(total1)
        point_cycle()


def main():
    print "Craps: A Popular Dice Game"
    raw_input( "Press <Enter> to roll the dice")
    roll = dice_roll()
    total = int(roll[0]) + int (roll[1])
    if total == 7 or total == 11:
        print "You rolled a " + str(total) + " on your first roll."
        print "You win!"
    elif total == 2 or total == 3 or total == 12:
        print "You rolled a " + str(total) + " on your first roll."
        print "You lose!"
    else:
        print "You rolled a " + str(total) + " on your first roll."
        print " "
        print "Thats your point. Roll it again before you roll a 7 and lose!"
        point_cycle()
    global total    

main()

1 个答案:

答案 0 :(得分:0)

假设你正在使用python,一个快速而肮脏的解决方案可以让你开始:

# Save the dices in a way that allows you to access each line separatedly
DICES = (None, 
         ("+-------+", "|       |", "|   *   |", "|       |", "+-------+"),  # dice 1
         ("+-------+", "| *     |", "|       |", "|     * |", "+-------+"),  # dice 2
         <put here the tuples with the other lines of each dice>)

并使用类似这样的函数:

def print_dices(diceslist):
    for i in range(5):
        for dicenum in dicelist:
            print DICES[dice][i] + " ",
        print 

打印您想要的骰子,其中骰子列表是结果列表,如:(1,3,4)

当然有更多优雅/优化的解决方案,但这个很简单,可能会指向您可接受的方向