2013-03-20 47 views
-1

好的,这是我第一次在这里提出问题,所以如果这不是一个好问题,请不要生气。我有6个函数代表正在滚动的骰子的图像。我必须为编程做一个胡扯游戏。游戏本身是完美的执行,但我必须把骰子并排显示,而不是在彼此顶部。 例如:2功能并排执行

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() 

回答

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 

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

当然还有更优雅/优化的解决方案,但是这个方法很简单,可能会让您接受一个可接受的方向