2016-05-28 2 views
0

最初に、私の悪い英語のために申し訳ありません。 私は私に彼女が実行されNoneTypeエラーを返した、私の機能を問題を抱えている以上2時間機能のあるなしタイプエラー

この関数は、私が使用して、テストのために
def random(k, position, impossible): 
    """Permet de générer des case où il n'y a pas encore de navires placé 
    et qui soit possible (éviter que le bateau soit sur deux lignes), 
    l'argument k correspond au navire en cours de placement 
    """ 
    global cases_occupées_bot 
    case = randint(0,99) 
    print("Salut !", k, position, case, impossible) 
    if k == 0: #porte-avion (5 cases) 
     if (position == 0 and 
       len(set((case, case)).intersection(set(impossible))) == 0 and 
       len(set((case, case+1, case+2, case+3, case+4)).intersection(
        set(cases_occupées_bot))) == 0): 
      cases_occupées_bot.extend([case, case+1, case+2, case+3, case+4]) 
      return case 
     elif (position == 1 and 
       len(set((case, case)).intersection(set(impossible))) == 0 and 
       len(set((case, case+10, case+20, case+30,case+40)).intersection(
        set(cases_occupées_bot))) == 0): 
      cases_occupées_bot.extend([case, case+10, case+20, case+30, case+40]) 
      return case 
     else: 
      random(k, position, impossible) 

random(0,0,[9,19,29,39,49,59,69,79,89,99,8,18,28,38,48,58,68,78,88,98,7,17,27,37,47,57,67,77,87,97,6,16,26,36,46,56,66,76,86,96]) 

私はどこのことを知りたいのですがあなたの助けをあらかじめありがとう!

答えて

1

最後の行で再帰呼び出しの結果を返す必要があります。

return random(k,position,impossible) 
+0

しかし、これまで、これは(スタックが満杯であるか、少なくともまで)無限再帰を引き起こすので、私は彼がこの行の前に 'K '、' position'と 'impossible'を変更していない見ることができるとして、あるいは私がここで紛失しているものがありますか? – Keiwan

+0

あなたの答えをありがとう、どのように私はx.xを逃すことができた – MisterSanglad

関連する問題