纸牌游戏Python,保存打乱的牌堆

-1 投票
1 回答
1066 浏览
提问于 2025-04-17 23:10

我正在用Python写一个程序,用户需要猜测下一张牌是比上一张大还是小。

这个程序基本上都能正常运行,除了一个功能。

我有两种玩法。一种是洗牌,另一种是用未洗过的牌(我在制作文本文件时随意排列的顺序)。我想要的是,当用户选择用洗过的牌玩的时候,洗过的牌会被保存,并覆盖未洗牌的文本文件。

文本文件中的牌是以两位或三位数字保存的。

每种花色的编号如下:

  • 1 - 梅花
  • 2 - 方块
  • 3 - 红心
  • 4 - 黑桃

至于牌的数字:

  • 1 - A(王牌)
  • 2 - 2
  • ...
  • 11 - J(杰克)
  • 12 - Q(女王)
  • 13 - K(国王)

所以红心5会保存为35,而梅花J会保存为110

这是我目前的代码。

这是我尝试保存的部分:

def SaveShuffledDeck(Deck):
    CurrentFile = open('deck.txt', 'w')
    Count = 1

    for Count in range(1,52+1):
        CardtoaddtoFile = str(Deck[Count].Suit) + str(Deck[Count].Rank) + '\n'
        CurrentFile.write(CardtoaddtoFile)

    CurrentFile.close()

如果你想查看剩下的牌组代码,可以访问这个pastebin链接

1 个回答

1

你可能想好好看看这个链接: http://docs.python.org/2.7/library/functions.html#open

open('deck.txt', 'w') # will overwrite it

然后可以像这样做...

import random
f = open('deck.txt', 'w') # op
l = [i for i in range(1,111)] # list from 1 to 110
random.shuffle(l) # shuffle that list
for i in l:
    f.write(str(i))
    f.write('\n')

编辑:抱歉,我没有用到你的函数。不过你可以对此进行修改。

撰写回答