Hello PYTHON~ puzzlemaker的答案整理


動機:
翻了兩天的python教科書,想說需要一些練習,剛好複習英文課單字時用了Discovery
上的puzzlemaker做填字遊戲, 但分享給英文課同學時發現網頁沒有產生答案卡,所以如果需要答案卡,就只能用自己出題時填的文字內容,基本上當然是能用,但有以下不方便的地方
1.出題時的文字內容沒有題號
2.出題的順序和和遊戲畫面上問題的順序沒有直接關係
3.遊戲畫面上問題的順序還會依照"Across"和"Down"分類

基於以上三個問題,對答案是很辛苦事,特別是題目多的時候

http://puzzlemaker.discoveryeducation.com/CrissCrossSetupForm.asp


概要:
所以我想製作一個小程式,讓使用者可以填入出題時的文字(含答案)遊戲時的問題文字,然後自動按照遊戲中的題號排序並加上答案.

  tkinter
object type
description
questionInput_text text 輸入遊戲時的問題文字
descripInput_text text 輸入出題時的描述文字
ansSheetOutput_text text 顯示排序過的答案
anssheetGEN_btn button 按下後ansSheetOutput_text
會顯示排序過的答案


實做時的問題:

1.使用text.get()方法擷取文字時,所有的字元都變成單獨的元素

   此時可加上"splitlines()",這樣就可以一次將一行的文字視為一組元素(物件)
 
    listget1=quesInput_text.get("1.0", "end-1c").splitlines()

2. text.get()方法中的參數"1.0", "end-1c"是什麼?

    這兩個參數分別為text中要被讀取的起始字元和中止字元,"1.0"代表"第1行第0個字元", 而 "end-1c"則表示"最後一個字元但往回扣掉空白行一行", 這邊要注意的是行數是從1算起,但字元是從0算起


3.text.insert( )填進text的文字內容都會出現不明的"{"或"}"
 
   將希望完整顯示成一行的所有文字訊息先封裝成單一的字串再放入"insert()"中
 
   listString=" ".join([number,desc,":",title,'\n'])
   ansSheetOutput_text.insert("end",listString)



完整程式碼 github
https://github.com/firmamentone/ANS-maker-for-cross-puzzle


參考資料
https://www.itread01.com/content/1545830285.html
Python技術者們練功   旗標出版









留言

這個網誌中的熱門文章

Arduino ANN溫度控制實驗計畫

[馬尼拉]菲律賓職籃PBA!!

Arduino使用EEPROM練習(1)