-1

好的,这是我第一次在这里提问,所以如果这不是一个好问题,请不要生气。我有 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()
4

1 回答 1

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)

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

于 2013-03-20T21:01:01.800 回答