c語言課程設(shè)計(jì)--- 21點(diǎn)游戲設(shè)計(jì)_第1頁
已閱讀1頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  《C語言課程設(shè)計(jì)》</b></p><p>  題 目:程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)</p><p><b>  班 級(jí):</b></p><p><b>  姓 名:</b></p><p><b>  指導(dǎo)教師:</b

2、></p><p><b>  所屬系部: </b></p><p>  2009年 6 月24 日</p><p><b>  21點(diǎn)游戲設(shè)計(jì)</b></p><p><b>  1 游戲規(guī)則</b></p><p>  此游戲,原則上是

3、可以由不限定的人數(shù)來玩,但是隨著參與人數(shù)的增加,在最后成績的比較方面會(huì)比較的繁瑣,不像兩個(gè)人之間的比賽結(jié)果那么明顯,所以也應(yīng)該將參與人數(shù)控制在一定的范圍之內(nèi)。確定參與人數(shù)后,系統(tǒng)會(huì)隨機(jī)為每個(gè)人發(fā)三張牌,然后計(jì)算這三張牌的和進(jìn)行比較。如果這三張牌的和大于21,則此人將會(huì)輸?shù)舯荣?,除非其他人的和也大?1(即假若每個(gè)人的三張牌的和都大于21時(shí),該局為平局,打成平手)。如果有的和大于21,有的和小于21,則大于21的人輸?shù)舯荣悾俦容^小于21

4、的部分,誰的三張牌的和最接近21,則誰是該局的贏家。一局玩完后,玩者可以根據(jù)自己情況進(jìn)行選擇是否要再玩一局。若選擇再玩時(shí),系統(tǒng)會(huì)再進(jìn)行下一次的循環(huán)。</p><p><b>  2 程序算法</b></p><p>  由系統(tǒng)隨機(jī)產(chǎn)生幾組隨機(jī)數(shù),每組3個(gè)隨機(jī)數(shù)。</p><p>  計(jì)算每一組的三個(gè)隨機(jī)數(shù)的和。</p><p

5、><b>  比較每組和的大小。</b></p><p><b>  得出比賽結(jié)果</b></p><p><b>  3 關(guān)鍵算法流程圖</b></p><p><b>  總體框架</b></p><p><b>  開始</b&

6、gt;</p><p><b>  4 程序代碼</b></p><p>  /* Note:Your choice is C IDE */</p><p>  #include <stdlib.h></p><p>  #include <stdio.h></p><p&g

7、t;  #include <time.h></p><p>  #define N 5</p><p><b>  main( )</b></p><p><b>  {</b></p><p>  int i,t,flag, j,m;</p><p>  int

8、 b[8],a[3*N];</p><p><b>  char c;</b></p><p>  b[1]=0;flag=1;</p><p>  while (flag) //控制循環(huán)</p><p><b>  {</b></p><p>  

9、srand(time(NULL)); /</p><p>  scanf("%d",&j); //用j控制組數(shù)</p><p>  for(t=0;t<3*j;t++) //產(chǎn)生幾組隨機(jī)數(shù)</p><p>  {if (t%3==0)</p><p>  printf(

10、"\n");</p><p>  a[t]=rand()%13+1;</p><p>  printf("%5d",a[t]);</p><p><b>  }</b></p><p>  printf("\n");</p><p>  

11、for(i=1;i<=j;i++) //求每組隨機(jī)數(shù)的和</p><p><b>  {</b></p><p>  for(t=3*(i-1);t<3*i;t++)</p><p>  b[i]=b[i]+a[t];</p><p>  printf("b[%d]=%d\n&quo

12、t;,i,b[i]);</p><p>  b[i+1]=0; </p><p><b>  } </b></p><p>  printf("\n");</p><p><b>  {</b></p><p>  for(t=1;t<j;t++)

13、 //對(duì)和的大小進(jìn)行排序</p><p>  for(i=1;i<=j-t;i++)</p><p>  if(b[i]>b[i+1])</p><p><b>  {</b></p><p><b>  m=b[i+1];</b></p><p>  b

14、[i+1]=b[i];</p><p><b>  b[i]=m;</b></p><p><b>  }</b></p><p>  for (i=1;i<=j;i++)</p><p>  printf("%5d",b[i]);</p><p>

15、<b>  }</b></p><p>  printf("\n");</p><p>  for (i=1;i<=j;i++) //得出結(jié)論</p><p>  if(b[i]>21)</p><p><b>  {</b></p><p&

16、gt;  printf("這一局為第%d個(gè)人贏\n是否再玩一局,若輸入'Y'則繼續(xù)游戲,輸入'N'結(jié)束游戲\n",i-1);</p><p>  getchar(); //與while語句是一個(gè)系統(tǒng)</p><p>  c=getchar();</p><p>  if(c=='Y

17、9;)</p><p><b>  flag=1;</b></p><p><b>  else </b></p><p><b>  flag=0;</b></p><p><b>  }</b></p><p><b>

18、;  }</b></p><p><b>  }</b></p><p>  在程序設(shè)計(jì)中,出現(xiàn)的問題和解決方案:</p><p>  由于是多組數(shù)據(jù)之間的比較,首先在同時(shí)產(chǎn)生幾組隨機(jī)數(shù)時(shí)遇到障礙,產(chǎn)生隨機(jī)數(shù)的代碼是從網(wǎng)上搜索得到的,再加上一些修改,達(dá)到所需的要求,同時(shí)有一些小的細(xì)節(jié)是在老師幫助下完成的。對(duì)于多組數(shù)據(jù)的處理有些麻煩,

19、首先要依次求和,在求和過程中要注意細(xì)節(jié)問題。對(duì)于多組數(shù)據(jù)的比較,最終只能先排序,然后得出結(jié)論,這一個(gè)程序是比較繁雜的。本程序的不足在于最終結(jié)果表達(dá)不直接,應(yīng)再加一些程序讓玩者更加清晰明了。</p><p><b>  6 體會(huì):</b></p><p>  本次程序是一個(gè)繁瑣的過程,是在多次修改加上老師的指導(dǎo)的基礎(chǔ)上才完成的。通過本次實(shí)驗(yàn),我認(rèn)識(shí)到要想完成一件事需要

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論