2016-05-21 14 views
-3

私はPythonの新機能ですので、コンピュータの相手に対してTexas Hold Em Pokerをシミュレートするプログラムを作成しようとしています学ぶ。私は関数 'Turn'を作成しようとしています。これは、フロップ+新しいリストを1つのカードで 'turn'と呼びます。これは変数 'Board'にあります。しかし、私はタイトルのエラーを取得し、それを修正する方法がわからない。これはこれまでの私のコードです。TypeError:+: 'function'と 'str'のためのサポートされていないオペランドタイプ

import random 


def Deal(): 
    RANKS = ['2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K', 'A'] 
    SUITS = ['Diamond', 'Club', 'Spade', 'Heart'] 

    DECK = [] 
    your_HAND = [] 
    for j in RANKS: 
     for i in SUITS: 
      card = [j]+[(i[0:1])] 
      DECK.append(card) 

    random.shuffle(DECK) 
    your_HAND.append(DECK.pop(1)) 
    your_HAND.append(DECK.pop(2)) 


    your_new_HAND = your_HAND[0][0]+your_HAND[0][1].lower()+your_HAND[1][0]+your_HAND[1][1].lower() 
    print('You have been dealt {}'.format(your_new_HAND)) 
    Flop(DECK) 

def Flop(DECK): 
    FLOP = [] 
    random.shuffle(DECK) 
    FLOP.append(DECK.pop(1)) 
    FLOP.append(DECK.pop(2)) 
    FLOP.append(DECK.pop(3)) 
    Flop = FLOP[0][0]+FLOP[0][1].lower()+FLOP[1][0]+FLOP[1][1].lower()+FLOP[2][0]+FLOP[2][1].lower() 
    print('Board reads: {}'.format(Flop)) 
    Turn(DECK, FLOP) 

def Turn(DECK, FLOP): 
    TURN = [] 
    random.shuffle(DECK) 
    TURN.append(DECK.pop(1)) 
    Turn = TURN[0][0]+TURN[0][1].lower() 
    Board = Flop + Turn 
    print('Board reads: {}'.format(Board)) 

エラーはあなたが文字列で機能を追加しようとしている電源を入れ

答えて

1

から始まり、メッセージは非常に明確である:

Turn = TURN[0][0]+TURN[0][1].lower() 
# Turn is a string 

Board = Flop + Turn 
# Flop is a function 

あなたが変数を得た可能FlopFLOPが混乱しています。しかし、変数に関数よりも同じ名前を付けるべきではありません。それは悪い習慣です。関数名と変数名をミキシング

0

は良いアイデアことはありません、あなたはpythonで文字列にオブジェクトオブジェクトを機能を追加することはできません。 Flop + Turnは実行できません。

関連する問題