在Python中将变量从一个函数传递到另一个函数

问题描述

Flow chart

import random

def p_deal(pd,pc,ps):
  pc.append(random.choice(pd))
  ps = sum(pc)
  print(pc,ps)
  if ps < 22:
    main(deck,p_cards,p_sum,d_cards,d_sum)
  else:
    print('busted,you lose')

def d_deal(dd,dc,ds):
  if ds > 21:
    print('Computer bust. You win.')
  else:
    if ds > ps:
      print(pc,ps)

def main(deck0,pcards,psum,dcards,dsum):
  inp = input('hit or stay: ')
  if inp == 'hit':
    p_deal(deck0,psum)
  elif inp == 'stay':
    d_deal(deck0,dsum)


deck = [1,2,3,4,5,6,7,8,9,10,11]
d_cards = []
p_cards = []

p_cards.append(random.choice(deck))
p_cards.append(random.choice(deck))

d_cards.append(random.choice(deck))
d_cards.append(random.choice(deck))

p_sum = sum(p_cards)
print("You have:","\nTotal:",p_sum)

d_sum = sum(d_cards)
print("Dealer has:",d_sum)

main(deck,d_sum)

嗨,几周前刚开始将Python作为我的第一语言。 我正在构建BlackJack / 21的简化版本。

我设法获得了流程图的大部分内容,但是当我选择“停留”时问题就开始了。

我很难将pc和ps的“更新变量”从p_deal()传递到d_deal()。 我试过使用'return',但是使用return时,当ps低于22时,它将不允许函数循环并提供'hit'选项。

任何帮助将不胜感激。谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...