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