姜陽
在實際教學中,如何通過計算思維解決問題呢?下面,通過對“石頭剪子布”游戲的思維解讀,讓學生依次經歷“探究問題,總結規(guī)則—抽象問題特征—建立結構模型—編程解決部分問題—遷移解決全部問題”的完整過程,體驗程序設計中運用計算思維解決問題的方法。
運用計算機解決問題的第一步是將現實世界中的事物進行抽象和設計,“石頭剪子布”游戲的完成,首先要做好游戲思維的抽象,構建游戲的屬性、規(guī)則和方法。
1.“石頭剪子布”游戲的起源
“石頭剪子布”游戲是一款猜拳游戲,又稱為“猜丁殼”,起源于中國,最早記載于《全唐詩》中的《招手令》,詩中用比喻的手法生動地描述了類似的游戲。明朝李日華《六研齋筆記》載云:“俗飲,以手指屈伸相搏,謂之豁拳,又名豁指頭?!彪S著世界貿易的發(fā)展,這款游戲傳播到世界各地,在很多比賽中,由于該游戲簡單快速且不需要任何道具,被選擇用來決定比賽的先發(fā)戰(zhàn)隊。
2.“石頭剪子布”游戲的規(guī)則
游戲規(guī)則:石頭打剪刀,布包石頭,剪刀剪布。
根據游戲規(guī)則,會產生如下頁表所示的結果。
題目要求:編寫一個程序,讓計算機同我們一起玩“石頭剪子布”游戲。人輸了,則輸出“輸了”;人贏了,則輸出“贏了”;人與計算機平了,則輸出“平局”。
困惑:①計算機如何能夠像人類一樣用手來顯示“石頭”“剪子”“布”?②人類用手顯示“石頭”“剪子”“布”,計算機如何能看懂?③如何讓計算機隨機選擇“石頭”“剪子”“布”模擬人類游戲的過程?
解決方法:
第一個問題:計算機如何能夠像人類一樣用手來顯示“石頭”“剪子”“布”?
計算機沒有人類一樣的手和腳,不能夠像人一樣用肢體直接進行游戲,因此,我們只能站在計算機的角度思考問題。計算機只能處理數字化的信息,首先要考慮如何將游戲數字化,也就是將游戲的主體“石頭”“剪子”“布”數字化。解決這個問題非常簡單:根據人為規(guī)定的數字,通過一系列計算能夠實現就可以。例如,為游戲做了如下規(guī)定:用數字0代表“石頭”,數字1代表“布”,數字2代表“剪刀”。為什么選用這三個數字呢?一是便于記憶。三個數字簡單、連續(xù),編寫程序人員可以快速記錄下來。二是形象。用手實現“石頭”時,同時也是數字“0”的表達手勢,用手實現“剪刀”時,也是數字“2”的表達手勢,根據數字的連續(xù)性,規(guī)定“1”來表達“布”。三是容易程序實現。因為0、1、2三個數字簡單、連續(xù),運用一系列運算可以很容易實現?!笆^”“剪子”“布”可以運用任何一個數字來代表,不是必須用0、1、2三個數字。
第二個問題:人類用手顯示“石頭”“剪子”“布”,計算機如何能看懂?
計算機沒有眼睛和思維,看不見人類的動作,也思考不出來代表的意義,所以,需要我們站在計算機的角度分析這個問題。既然人類的表示計算機看不懂,就選擇計算機和人類都能讀懂的方式,運用文字、圖片或者圖案等創(chuàng)設游戲畫面,運用鼠標單擊等進行動作的選擇,代替了人類肢體語言的表達,如圖1所示。
第三個問題:如何讓計算機隨機選擇“石頭”“剪子”“布”模擬人類游戲的過程?
在計算機語言中有一種函數是隨機函數,可以輕松解決問題。隨機數:①真正的隨機數是運用物理現象產生的,如擲錢幣、骰子、轉輪、核裂變等。②隨機產生的數據特點是后面的數據與前面產生的數據沒有任何聯(lián)系。③計算機產生隨機數的方法有二,一是產生[0,1]區(qū)間上均勻分布的隨機數的方法,二是離散型均勻分布的隨機數的方法。兩種方法都是運用數學的相關理論和公式進行推導,我們就不再深入地研究和探討了。本例中運用VB語言的隨機數(rnd和randomize),隨機產生0、1、2三個數字,模擬實現計算機進行“石頭”“剪子”“布”的選擇。
運用計算機實現“石頭剪子布”游戲的思維框圖如下頁圖2所示。
界面設計如下頁圖3所示。
程序實現(具體代碼省略)。
1.直接提供程序界面
學生剛剛進入程序設計的初級學習,只會簡單的順序結構和選擇結構,因此,程序的界面可以由教師直接提供給學生,這樣有利于后續(xù)問題的分析和理解。
2.提供部分程序框架
為了節(jié)省課堂教學時間,高效率地解決問題,教師可以提供程序的框架,如選擇“石頭”程序,提供部分框架內容:
Private Sub Picture1_Click()
Dim x As Integer
Label4.Caption = "石頭" (人顯示“石頭”)
隨機產生0,1,2三個數字
程序核心部分:如果是0(石頭對石頭),結果是平;如果是1(石頭對布),結果是輸;如果是2(石頭對剪子),結果是贏。
3.引導學生完成程序代碼編寫
根據程序框架中的提示,運用學習過的程序語言知識,填寫完整的代碼。程序核心部分是典型的選擇結構,運用三個If語句或者If語句的嵌套,完成選擇和判斷。
4.方法遷移,完成游戲程序其他部分
借鑒選擇“石頭”程序分析和代碼實現,完成選擇“布”和選擇“剪子”兩部分代碼程序。
“石頭剪子布”游戲的實現,運用計算思維方法,從計算機的角度分析問題、解決問題,引導學生運用數字化抽象和推理,建立結構模型,利用數字化工具自動解決問題,培養(yǎng)了學生處理數字環(huán)境中的問題的重要思維方式。