999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

用C語言實現21點游戲

2020-07-27 14:10:34紀輝進
現代信息科技 2020年6期
關鍵詞:案例游戲

摘? 要:C語言是實踐性很強的一門課程,要學好C語言,就得多編寫代碼多練習;C語言課程不僅在計算機類專業的開設,很多高校連非計算機專業也在學習設;“填鴨式”“驗證式”教學已經讓學生苦不堪言,對學習提不起興趣,將21點撲克牌游戲案例引入C語言的教學,借此激發學生的學習熱情,積累項目經驗,達到提升學生實踐動手能力的目的。

關鍵詞:C語言;情境教學;任務驅動;項目案例;21點撲克牌游戲

中圖分類號:TP311.1 ? ? ?文獻標識碼:A 文章編號:2096-4706(2020)06-0099-03

Abstract:C language is a very practical course. To learn C language well,you have to write more code and practice more;C language courses are not only offered in computer majors,but also in non computer majors in many colleges and universities;“cramming method” and “verification” teaching have made students miserable and have no interest in learning. This paper introduces the case of BlackJack card game into the teaching of C language,hoping to stimulate studentsenthusiasm for learning,accumulate project experience and improve studentspractical ability.

Keywords:C language;situational teaching;task driven;project cases;blackjack game

0? 引? 言

C語言是一門面向過程的程序設計語言,學完本門課程后要能熟練地編寫順序結構、選擇結構和循環結構的程序;按教材案例進行“驗證式”的學習,不會舉一反三、發散思維,對知識不會綜合運用,就如同“死讀書”。

越來越多的行業、崗位運用計算機和軟件來處理問題,是因為軟件的靈活,能按照特定的語法,在規則范圍內靈動地組合,能解決日常生活中無窮無盡的需求;書本上的知識,我們要活學活用;將生活化的案例引入“C語言程序設計”課程,對提升學生的邏輯思維素質、實踐動手能力都大有好處,特別是游戲情境案例,能提高學生學習興趣,激發主動學習的動力,幫助學生探索新知,構建知識體系;本文將探討21點撲克牌游戲的實現算法。

1? 項目背景

1.1? 開發環境

開發語言:C語言。

開發工具:Visual Studio 2012/Visual C++ 6.0。

1.2? 項目需求

21點撲克牌游戲規則如下:一副撲克牌有“黑桃A”到“黑桃K”“紅桃A”到“紅桃K”“梅花A”到“梅花K”“方塊A”到“方塊K”,共52張,“A”算1點,“2”算2點,以此類推,“10”算10點,“J”“Q”“K”都按10點計算點數;另外“A”既可計算為1點,也可計算為11點,當成11點的前提條件是總點數不超出21點的范圍,否則只能當成1點,這意味著對莊家和玩家怎么有利怎么算;游戲開始先給莊家發兩張牌,其中一張作為底牌不展示牌面,另一張顯示牌面;后給玩家發兩張牌,牌面都展示出來;然后重復詢問玩家是否要牌,如果玩家要牌,再次展示莊家和玩家的所有牌面(莊家底牌不顯示),直到玩家不要牌或玩家牌面超過21點為止;每給玩家發一張牌就重新展示莊家和玩家牌面,并詢問玩家是否要牌;玩家不要牌后莊家根據牌面點數決定是否要牌,直到莊家牌面贏或超出21點的范圍為止;誰的牌面越趨近21點且不超過21點誰贏,同為21時莊家贏,決出勝負后游戲進入下一輪。游戲程序執行效果如圖1所示。

2? 項目設計

2.1? 數據模型

C語言中常用的數據類型有int、float、double、char;屏幕上要輸出如“黑桃A”的字符串,需要用到一維字符數組;一副撲克牌有52張,需要用到二維字符數組;char pk[52][7]={"黑桃A",…,"黑桃K",…,"方塊K"};用一維整型數組表示點數intpoint[52]={1,2,…,10,10,10,10,…,1,2,…,10,10,10,10};每張牌每局只能發一次,用一維整型數組記錄牌是否發出過,未發為0,發出為1,int already[52]={0}。

記錄莊家和玩家拿到的牌是撲克牌數組的第幾張,我們只用保存數組下標,莊家極限概率可得到4個A、4個2、3個3,共11張牌,玩家極限可得到4個A、4個2、3個3,共11張牌,玩家可能計算失誤多要一張共12張牌;int boss[11],player[12];A可當11點計算的前提是莊家或玩家有A牌,要記錄莊家玩家A牌個數:int bossA、int playerA;要記錄牌的張數和點數:int bossi、playeri、bossPoint、playerPoint;模塊化可降低程序復雜度,為方便在各函數中訪問以上數據,必須將數據設置為全局變量,還要做好隨機種子的初始化,為取隨機數做好準備。

2.2? 程序流程圖

21點游戲程序設計流程圖如圖2所示。

3? 核心代碼

3.1? 發牌實現代碼

int getpk()//發一張有效牌,牌數組下標0-51隨機,buf為0牌未發過為1發過,發過得重發

{int r, buf;do{ r=rand()%52; buf=0;if (already[r]= =1)buf=1;else already[r]=1;}while(buf);

return r;}

3.2? 計算玩家牌面點數和代碼

void playerSum()//莊家牌面點數和代碼與此類似,本文略

{ int i; playerPoint=0; playerA=0; for(i =0;i

3.3? 玩家要牌代碼

while(playerPoint<=21){//玩家沒超出21點的范圍就會問你要不要牌//清空緩沖區

printf("要牌嗎(y/n)?");fflush(stdin); yorn=getchar();if(yorn =='n')break;

player[playeri]=getpk();playeri++;playerSum();

if(playerPoint<=21){printf("莊家牌面:底牌\t");

for(i=1;i

printf("玩家牌面:");for(i=0;i

3.4? 判斷輸贏代碼

if(playerPoint>21)printf("莊家贏\n"); else{if(bossPoint>21)printf("玩家贏\n");

else{if(playerPoint>bossPoint)printf("玩家贏\n"); else printf("莊家贏\n");}}

4? 結? 論

本案例用到了分支和循環流程控制語句、整型和字符型等基本數據類型、數組和函數等C程序設計中的核心知識點,囊括了教學大綱中百分之九十的知識點,本案例的實現過程,也是學生對所學知識的一次回顧、精練與提升的過程,寓教于樂,激發學習學習興趣,提升學習動力,建立學習的成就感和信心。

本案例邏輯思維嚴謹又不太復雜,實現的代碼規模適中;其情境與多數人喜愛的網絡游戲情境類似,讓學生產生一種想親自編碼實現的想法;結合本文思路,運用所學的零碎知識點按圖索驥,大部分學生都有能力將之實現;本案例引導學生溫習了C程序設計的基礎知識,對學生理解C語言的基本語法、提高動手能力、提升邏輯思維能力大有幫助。

參考文獻:

[1] 王亮.《C語言程序設計》循環結構教學案例研究 [J].科技視界,2018(1):60-61.

[2] 譚浩強.C程序設計(第五版) [M].北京:清華大學出版社,2017.

[3] 李敏.以培養計算思維為主的C程序設計課程教學改革 [J].電腦知識與技術,2019,15(12):111-112.

[4] 本·克萊蒙.C程序設計新思維(第2版) [M].趙巖,譯.北京:人民郵電出版社,2018.

[5] 高歡.自主學習模式下微課在高校教學中的實踐研究 [D].河北:河北師范大學,2019.

[6] 竇祥國.面向計算思維培養的高職C程序設計案例教學研究 [J].中國職業技術教育,2019(32):93-96.

作者簡介:紀輝進(1977-),男,漢族,湖北黃陂人,講師,本科,主要研究方向:軟件技術教學。

猜你喜歡
案例游戲
案例4 奔跑吧,少年!
少先隊活動(2021年2期)2021-03-29 05:40:48
隨機變量分布及統計案例拔高卷
發生在你我身邊的那些治超案例
中國公路(2017年7期)2017-07-24 13:56:38
游戲
數獨游戲
瘋狂的游戲
飛碟探索(2016年11期)2016-11-14 19:34:47
爆笑游戲
隨機變量分布及統計案例拔高卷
一個模擬案例引發的多重思考
中國衛生(2015年4期)2015-11-08 11:16:06
第八章直接逃出游戲
小學科學(2015年7期)2015-07-29 22:29:00
主站蜘蛛池模板: 国产午夜无码片在线观看网站| 午夜国产精品视频黄| 54pao国产成人免费视频| 国产午夜福利在线小视频| 免费AV在线播放观看18禁强制| 极品av一区二区| 久久中文字幕av不卡一区二区| 国产Av无码精品色午夜| 日韩国产一区二区三区无码| 亚洲国产理论片在线播放| 国产国产人免费视频成18| 亚洲日韩高清在线亚洲专区| 丰满人妻中出白浆| 日本一本正道综合久久dvd| 欧美不卡视频在线观看| 久久福利网| 国产一区二区三区免费观看 | 亚洲日产2021三区在线| 婷婷午夜天| 精品国产免费观看| 亚洲爱婷婷色69堂| 欧美国产在线精品17p| 国产毛片不卡| 欧美啪啪网| 久久伊人操| 亚洲天堂网2014| 视频国产精品丝袜第一页| 国产噜噜噜| 国产在线专区| 欧洲免费精品视频在线| 亚洲三级a| 久久伊人久久亚洲综合| 亚洲热线99精品视频| 国产午夜福利在线小视频| 国产精品专区第1页| 亚洲精品无码AV电影在线播放| 久久狠狠色噜噜狠狠狠狠97视色| 成人午夜视频免费看欧美| 亚洲一区网站| 亚洲色图欧美在线| 中文字幕亚洲综久久2021| 亚洲欧美国产视频| 在线综合亚洲欧美网站| 蜜臀av性久久久久蜜臀aⅴ麻豆| 久久精品国产999大香线焦| 一区二区在线视频免费观看| 午夜福利在线观看入口| 女人18一级毛片免费观看| 亚洲精品另类| 丰满人妻被猛烈进入无码| 久久国产V一级毛多内射| 亚洲AV永久无码精品古装片| 亚洲熟女中文字幕男人总站| a级毛片免费看| 高清色本在线www| 国产高清在线观看| 国产免费精彩视频| 精品福利视频导航| 成人无码一区二区三区视频在线观看 | 自慰高潮喷白浆在线观看| 国产视频欧美| 欧美一级99在线观看国产| 亚洲天堂777| 欧美性爱精品一区二区三区 | 国产自在线播放| 欧美v在线| 久久久久青草大香线综合精品 | 91精品在线视频观看| 精品国产美女福到在线不卡f| 天堂中文在线资源| 粉嫩国产白浆在线观看| 色婷婷天天综合在线| 成人欧美日韩| 亚洲国产无码有码| 中文字幕不卡免费高清视频| 亚洲精品日产精品乱码不卡| 国产网友愉拍精品| 久久精品只有这里有| 亚洲精品无码日韩国产不卡| 波多野结衣的av一区二区三区| 国产成人一级| 一区二区日韩国产精久久|