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
主站蜘蛛池模板: 9丨情侣偷在线精品国产| 亚洲国产成人精品青青草原| 亚洲精品麻豆| 国产SUV精品一区二区6| 国产福利在线免费观看| 国产又色又刺激高潮免费看| AV熟女乱| 日韩 欧美 国产 精品 综合| 久久精品无码中文字幕| 特级aaaaaaaaa毛片免费视频| 国产午夜不卡| 久久免费视频播放| 久久久久夜色精品波多野结衣| 色综合天天综合| 成人午夜视频在线| 尤物精品国产福利网站| 日韩高清无码免费| 亚洲最大福利网站| 精品成人免费自拍视频| 国产精品自在线天天看片| 欧美日本激情| 伊人五月丁香综合AⅤ| 91久久天天躁狠狠躁夜夜| 香蕉久久永久视频| 凹凸国产分类在线观看| 国产综合在线观看视频| 国产青榴视频| 中文字幕精品一区二区三区视频 | 五月天在线网站| 欧美日韩国产在线播放| 亚洲乱码在线播放| 国产成人综合久久精品下载| 欧美自慰一级看片免费| 午夜限制老子影院888| 99热这里只有精品5| 精品久久久久久成人AV| 日韩小视频网站hq| 熟妇人妻无乱码中文字幕真矢织江 | 免费国产好深啊好涨好硬视频| 亚洲妓女综合网995久久| 欧美人与动牲交a欧美精品| 国产主播在线观看| 中国国产高清免费AV片| 欧美色99| 国产成人欧美| 一区二区理伦视频| 国产成人av大片在线播放| 色偷偷综合网| 欧美成a人片在线观看| 黄色在线网| 狠狠综合久久| 国产激情无码一区二区三区免费| 视频一本大道香蕉久在线播放| 蜜桃视频一区二区三区| 无码专区第一页| www.youjizz.com久久| 9啪在线视频| 久久久久人妻精品一区三寸蜜桃| 久久香蕉欧美精品| AV不卡国产在线观看| 熟妇丰满人妻| 激情综合五月网| 国产91高跟丝袜| 视频国产精品丝袜第一页| 亚洲第一国产综合| 制服丝袜国产精品| 国产成人精品男人的天堂| 亚洲第一国产综合| 99久久国产综合精品女同| 亚洲成人精品| 免费高清a毛片| 经典三级久久| 久久综合结合久久狠狠狠97色| 小13箩利洗澡无码视频免费网站| 欧美成人国产| 在线人成精品免费视频| 日本欧美视频在线观看| 国产精品成人久久| 欲色天天综合网| 亚洲精品在线91| 国产在线视频自拍| 免费人成黄页在线观看国产|