2013-02-02 28 views
1

我已經編寫了一個工作遊戲,給用戶一個隨機的7個字母的字符串,用戶只能使用這些字母來組合單詞和非單詞,每個字母都使用只有一次。這已經差不多完善了,偶爾也會有bug。搜索一個給定字符串的用戶的文本文件

我的主要問題是,當試圖確定字符串的點值時,我需要三個因素:長度,每個字母的值(基於拼字值)以及是否是真實的單詞。我下載了發現的字典here。 該文件在我的Ubuntu計算機上保存爲.txt文件,我使用了幾種不同的方法在文件中搜索輸入(因爲文件包含大寫字母的所有字,我將變量'capital'設置爲input.upper().點採取(length+lettervalues) * realword相加。如果realword == 2,得分加倍

dictionary = open('wordlist.txt', 'r') 
for line in dictionary: 
    if capitals in line: 
     realword = 2 
    else: 
     realword = 1 
dictionary.close() 

我也曾嘗試解決方案在stackoverflow。 這並沒有給我任何工作的解決方案無論是。隨着每一次的嘗試,它不死機有任何錯誤 - 它只是每次都會去看else語句,如果這個問題得到解決,我會非常感激,我一直在嘲笑我鍵盤兩天。

在此先感謝

+0

你能提供其餘的代碼嗎?特別是在你得到輸入的地方,轉換它,並分配給變量'capitals'。 –

+0

對不起,我是該網站的新手。是否有一種簡單的方法來上傳源代碼,因爲我覺得將它全寫在評論中並不方便 – erdekhayser

+0

編輯您的主帖以包含它。或者至少是相關的部分。 –

回答

1

您不需要else語句。將實詞初始化爲1,並且只有在詞典中找到該實例時才更改爲2並中斷。另外,大多數字典在同一行上都有詞彙和意義,因此請嘗試將其分開,即在空格鍵之前選擇第一個詞。

capitals= input('enter word').upper() 

realword = 1 
dictionary = open('wordlist.txt', 'r') 
for line in dictionary: 
    if capitals == line.split()[0]: 
     realword = 2 
     break 

print (realword) 
dictionary.close() 
+0

同樣,我得到的錯誤是行是一個元組,因此不能被剝離 – erdekhayser

+0

此代碼運行得更好,但只有當[0]被排除時。當我把它放入時,我得到一個索引錯誤,說該字符串超出範圍。如果沒有[0],幾乎每個單詞都會被計數,因爲每個字符串都可以在文檔中找到(例如,ytho在Python中) – erdekhayser

+0

我不知道你做了什麼。但它必須奏效。它在我的電腦中正常工作。嘗試複製並粘貼代碼並查看。獲取第一個字符串需要[0]。 –

相關問題