-1

私は絞首刑執行人ゲームを作成しており、次のことを行う関数を作成しようとしています。

calculate_points(current_score,num_of_letter,letter_type):

現在のスコア = 持っているポイント数。あなたは正しい子音を推測することでポイントを獲得します.むしろ、文字ごとに-1ポイントを失います。

CONSONANTS = 'bcdfghjklmnpqrstvwxyz'
VOWELS = 'aeiou'

文字タイプは、子音の場合は 'C' または 'c'、母音の場合は 'V' または 'v' のいずれかです。現在のスコアは 0 から始まるため、current_score = 0 であり、ユーザーは自分のスコアを 0 から入力します。

次に例を示します。

calculate_points(2,3,'C') (had 2 points, guessed 3 correct letters that are consonants so + 1 point per correct guess) 2+ 3=5
5
calculate_points(3,2,'V') (had 3 points, guessed 2 correct letters that are vowels so that is (-1) points per correct guess, so 3-2 =1 
1

現在の試み:

def calculate_score(current_score,num_of_letter,letter_type):

    new_score = 0

    for i in range(0,len(CONSONTANTS)):
       if CONSONANTS[i] == letter_type:
           new_score = current_score + (num_of_letter*1)
    for i in range(0,len(VOWELS)):
       if VOWELS[i] == letter_type:
           new_score = current_score + (num_of_letter*(-1))
    return new_score
4

1 に答える 1

1

必要な機能があれば、子音と母音を調べる必要はありません。簡単な例を次に示します。

>>> def calculate_score(current_score, num_of_letter, letter_type):
    sign = 1 if letter_type == 'C' else -1
    return current_score + sign * num_of_letter

>>> calculate_score(2,3,'C')
5
>>> calculate_score(3,2,'V')
1
于 2012-10-19T10:34:39.183 に答える