好的,这是我第一次在这里问一个问题所以请不要生气,如果这不是一个好问题。我有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()
答案 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)
当然有更多优雅/优化的解决方案,但这个很简单,可能会指向您可接受的方向