前言
????????????猜單詞游戲是Python課程設(shè)計(jì)中對(duì)于序列數(shù)據(jù)結(jié)構(gòu)和random模塊的綜合應(yīng)用,本文對(duì)于該章節(jié)將以以下內(nèi)容,從功能介紹、設(shè)計(jì)思路、關(guān)鍵技術(shù)和設(shè)計(jì)步驟進(jìn)行講解:

Ⅰ猜單詞游戲功能介紹
猜單詞游戲是計(jì)算機(jī)隨機(jī)產(chǎn)生一個(gè)單詞,打亂字母順序,供玩家去猜。該游戲采用控制字符界面,運(yùn)行界面如圖所示:

Ⅱ程序設(shè)計(jì)的思路
游戲中需要隨機(jī)產(chǎn)生單詞和隨機(jī)數(shù)字,所以引入random模塊的產(chǎn)生隨機(jī)數(shù)函數(shù),其中random.choice()可以從中隨機(jī)選取元素。例如:

? ? ? word就是從單詞序列中隨機(jī)挑出的一個(gè)單詞。
????? 游戲中隨機(jī)挑出一個(gè)單詞word后,如何把單詞word的字母順序打亂?方法是隨機(jī)從單詞字符串中選擇一個(gè)位置position,把position位置的字母加入亂序后單詞jumble,同時(shí)將原單詞word中的position位置的字母去掉(通過連接position位置前字符串和其后字符串實(shí)現(xiàn))。通過多次循環(huán)就可以產(chǎn)生新的亂序后單詞jumble。

Ⅲ關(guān)鍵技術(shù)
1.序列數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)存儲(chǔ)、組織數(shù)據(jù)的方式。序列是Python中最基本的數(shù)據(jù)結(jié)構(gòu)。序列中的每個(gè)元素都分配一個(gè)數(shù)字,即它的位置或索引,第一個(gè)索引是0,第二個(gè)索引是1,以此類推。序列都可以進(jìn)行的操作包括索引、切片、加、乘、成員檢查。此外,Python已經(jīng)內(nèi)置確定序列的長度以及最大和最小元素的方法
①列表
列表是最常用的Python數(shù)據(jù)類型,列表的數(shù)據(jù)項(xiàng)不需要有相同的類型。列表類似于其他語言的數(shù)組,但功能比數(shù)組強(qiáng)大的多。
????? 創(chuàng)建一個(gè)列表,只要把逗號(hào)分隔的不同的數(shù)據(jù)項(xiàng)使用方括號(hào)[]括起來即可。例如:

? ? ? 列表索引從0開始。列表可以進(jìn)行切片、組合等。
????? 可以使用下索引來訪問列表里的值,同樣也可以使用方括號(hào)的形式截取字符。例如:

????? 以上實(shí)例的輸出結(jié)果:

②元組
????? 元組(tuple)與列表類似,不同之處在于元組的元素不能修改。元組使用小括號(hào)(),列表使用方括號(hào)。元組中的元素類型也可以不相同。
????? 元組創(chuàng)建很簡單,只需要在括號(hào)中添加元素,并使用逗號(hào)隔開即可,例如:

如果創(chuàng)建空元組,只需寫個(gè)括號(hào)即可。

????? 元組只包含一個(gè)元素時(shí),需要在第一個(gè)元素后面添加逗號(hào)。

? ? ? 元組和字符串類似,下索引從0開始,可以進(jìn)行截取、組合等。
③字典
字典是另一種可變?nèi)萜髂P?,且可存?chǔ)任意類型對(duì)象,如字符串、數(shù)字、元組等其他容器模型。字典也被稱為關(guān)聯(lián)數(shù)組或哈希表。
字典的每個(gè)鍵值?key=>value?對(duì)用冒號(hào)?:?分割,每個(gè)鍵值對(duì)之間用逗號(hào)?,?分割,整個(gè)字典包括在花括號(hào)?{}?中 ,格式如下所示:

Ps:鍵必須是唯一的,但值則不必。值可以取任何數(shù)據(jù)類型,但鍵必須是不可變的,如字符串、數(shù)字或元組。
????? 一個(gè)簡單的字典實(shí)例:

2.random模塊
? ? ? ? ? ? ? random模塊可以產(chǎn)生一個(gè)隨機(jī)數(shù)或者從序列中獲取一個(gè)隨機(jī)元素。它的常用方法和使用例子如下:
①random.random()
????? ????????random.random()用于生成一個(gè)0-1的隨機(jī)小數(shù)。

????執(zhí)行以上代碼,輸出結(jié)果如下:

②random.uniform(a,b)
????????????函數(shù)生成一個(gè)[a,b]之間的隨機(jī)小數(shù)(包含a,b)。

????????結(jié)果為:

③random.randint(a,b)
????????????????函數(shù)生成一個(gè)[a,b]之間的隨機(jī)整數(shù)(包含a,b)。

????????????結(jié)果為:

④random.choice(seq)
????????????函數(shù)可以從序列類型中隨機(jī)返回一個(gè)元素。

????????結(jié)果為:


????????結(jié)果為:

⑤random.shuffle(seq)
????????????函數(shù)可以將一個(gè)列表中的元素打亂,隨即排列。

????????????結(jié)果為:

⑥r(nóng)andom.sample(pop,k)
????????????函數(shù)從pop序列類型中隨機(jī)選取k個(gè)元素,以列表類型返回。

????????????結(jié)果為:

⑦random.randrange(start,stop[,step])
????????????函數(shù)可以生成一個(gè)[start,end)之間以step為步長的隨機(jī)整數(shù)。

????????????結(jié)果為:

⑧random.seed(a=None)
????????????初始化隨機(jī)數(shù)種子,默認(rèn)為當(dāng)前系統(tǒng)時(shí)間。
????????????生成隨即數(shù)之前可以通過seed()函數(shù)指定隨即數(shù)種子,隨機(jī)數(shù)種子一般是一個(gè)整數(shù),只要種子相同,每次生成的隨機(jī)數(shù)序列也相同。

????????????結(jié)果為:

Ⅳ程序設(shè)計(jì)的步驟
①猜單詞游戲程序?qū)胂嚓P(guān)模塊:

②創(chuàng)建所有待猜測的單詞序列元組WORDS。

③顯示游戲界面。

④以下實(shí)現(xiàn)游戲的邏輯。
????????????從序列中隨機(jī)跳出一個(gè)單詞,例如“easy”。然后使用1,2節(jié)介紹的方法打亂這個(gè)單詞的字母順序;通過多次循環(huán)產(chǎn)生新的亂序后的單詞jumble。例如“easy”單詞亂序后,產(chǎn)生“yaes”顯示給玩家。

????????????玩家輸入猜測的單詞,程序判斷出對(duì)錯(cuò)。若猜錯(cuò)則用戶可以繼續(xù)猜。

????????????運(yùn)行結(jié)果:

總結(jié)
????????????通過對(duì)于序列應(yīng)用的學(xué)習(xí)可以看出,其實(shí)我們可以通過Python寫出很多有意思的程序,在提升技術(shù)的同時(shí)也豐富了我們的日常生活,所以不要畏懼現(xiàn)在遇到的苦難,披星戴月走過的路,最終將會(huì)繁花遍地。