《C語言課程設計 21點游戲設計》由會員分享,可在線閱讀,更多相關《C語言課程設計 21點游戲設計(5頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 C語言課程設計題 目:程序設計基礎課程設計班 級:姓 名:指導教師:所屬系部:電子科學與技術系2009年 6 月24 日 21點游戲設計1 游戲規(guī)則此游戲,原則上是可以由不限定的人數(shù)來玩,但是隨著參與人數(shù)的增加,在最后成績的比較方面會比較的繁瑣,不像兩個人之間的比賽結果那么明顯,所以也應該將參與人數(shù)控制在一定的范圍之內。確定參與人數(shù)后,系統(tǒng)會隨機為每個人發(fā)三張牌,然后計算這三張牌的和進行比較。如果這三張牌的和大于21,則此人將會輸?shù)舯荣?,除非其他人的和也大?1(即假若每個人的三張牌的和都大于21時,該局為平局,打成平手)。如果有的和大于21,有的和小于21,則大于21的人輸?shù)舯荣悾俦容^小
2、于21的部分,誰的三張牌的和最接近21,則誰是該局的贏家。一局玩完后,玩者可以根據(jù)自己情況進行選擇是否要再玩一局。若選擇再玩時,系統(tǒng)會再進行下一次的循環(huán)。2 程序算法由系統(tǒng)隨機產生幾組隨機數(shù),每組3個隨機數(shù)。計算每一組的三個隨機數(shù)的和。 比較每組和的大小。得出比賽結果3 關鍵算法流程圖總體框架開始開始Flag=1Y產生隨機數(shù),求和,比較,得結果C =Y輸入字符 CY結束N4 程序代碼/* Note:Your choice is C IDE */#include #include #include #define N 5main( )int i,t,flag, j,m;int b8,a3*N;
3、char c;b1=0;flag=1;while (flag) /控制循環(huán)srand(time(NULL); /scanf(%d,&j); /用j控制組數(shù)for(t=0;t3*j;t+) /產生幾組隨機數(shù)if (t%3=0)printf(n);at=rand()%13+1;printf(%5d,at); printf(n);for(i=1;i=j;i+) /求每組隨機數(shù)的和 for(t=3*(i-1);t3*i;t+) bi=bi+at; printf(b%d=%dn,i,bi); bi+1=0; printf(n); for(t=1;tj;t+) /對和的大小進行排序 for(i=1;ibi
4、+1) m=bi+1; bi+1=bi; bi=m; for (i=1;i=j;i+) printf(%5d,bi); printf(n); for (i=1;i21) printf(這一局為第%d個人贏n是否再玩一局,若輸入Y則繼續(xù)游戲,輸入N結束游戲n,i-1); getchar(); /與while語句是一個系統(tǒng) c=getchar(); if(c=Y) flag=1; else flag=0; 5 在程序設計中,出現(xiàn)的問題和解決方案: 由于是多組數(shù)據(jù)之間的比較,首先在同時產生幾組隨機數(shù)時遇到障礙,產生隨機數(shù)的代碼是從網(wǎng)上搜索得到的,再加上一些修改,達到所需的要求,同時有一些小的細節(jié)是在
5、老師幫助下完成的。對于多組數(shù)據(jù)的處理有些麻煩,首先要依次求和,在求和過程中要注意細節(jié)問題。對于多組數(shù)據(jù)的比較,最終只能先排序,然后得出結論,這一個程序是比較繁雜的。本程序的不足在于最終結果表達不直接,應再加一些程序讓玩者更加清晰明了。6 體會:本次程序是一個繁瑣的過程,是在多次修改加上老師的指導的基礎上才完成的。通過本次實驗,我認識到要想完成一件事需要一次次地嘗試,一次次地修改,然后再進行試驗。在修改的工程中,要反復思考問題出在何處,要慢慢的找尋,一點點的排除,在老師為我講解時我也感受到老師做事的毅力。做任何事都要一點點的,腳踏實地的去做。本次程序設計雖然不算完滿,但都是自己一點點做出來的,還是有很大收獲的。