真的是好~~久沒發新文章了,期末考和成大資訊營讓我在最近忙得不知跟甚麼似的。不過在所有的事情告一段落之後,總算可以好好放鬆一下了

之前在營隊的時候,同樣身為進修組的小富和勇祥在javascript驗課時,有展示他們用javascript寫出來的小遊戲:終極密碼。當時就產生了用C寫寫看的想法,沒想到一個晚上下來還真的給我寫出來了

想法其實很簡單:

先產生出終極密碼 --> 人先猜 --> 換電腦猜 --> 一直循環,猜中者自爆。

要產生一個1~100的終極密碼應該不難,不過要注意實際的值在2~99之間,我是用do-while去寫的(個人覺得do-while很好用,常常用他寫程式),方法就是先產生1~99的亂數,如果小於2的話就重新產生一個新的亂數,直到符合數字在2~99之間的條件為止,應該不難寫。

終極密碼產生後,就進入遊戲。我設了3個while迴圈,一個是整個遊戲的while迴圈,也就是當密碼還沒猜出來時整個遊戲就一直持續下去的while迴圈。另外兩個包在第一個while迴圈裡面。

一個是人猜數字時用的while迴圈,一個是電腦猜數字時用的while迴圈。一開始先進入人猜的while迴圈,猜完之後如果符合條件就跳出迴圈,此時會進入電腦猜的while迴圈。電腦猜的while迴圈裡面有一個do-while,是用來產生符合條件的數字用的。當電腦猜完數字,則跳出迴圈,此時會再進入人猜的while迴圈,就這樣一直循環,直到其中一方自爆為止。

程式架構看起來就像這樣

 

 

想知道詳細的寫法的話就再來問我吧,不過我個人認為終極密碼算是相當好寫的了,大家可以自己先想一下,應該不難。

小弟我寫的算是簡略版,連"是否再玩一次"都沒有,執行起來大概是像下面這樣:

 擷取.JPG       

附上程式載點,有興趣的就下載玩玩吧~

bit.ly/2hNF68R

(exe檔, 沒有病毒請放心)

有啥問題歡迎討論~

 

 

 

 

 

 

 

 

 

 

文章標籤
創作者介紹

Tube's World

Tube 發表在 痞客邦 PIXNET 留言(2) 人氣()


留言列表 (2)

發表留言
  • lionking
  • rand()%97 + 2 => 2~99 的亂數
  • 經獅子大這麼一提,我想了一下,好像是要rand()%98+2才會產生出2~99的亂數欸。因為rand()%97會產生出0~96的亂數,加上2會變成2~98的亂數,所以如果要產生2~99的話應該是先rand()%98產生出0~97的亂數,在加上2變成2~99的亂數。不過還是謝謝獅子大提供更快速的寫法,如果有講錯的話請指正(是說這樣電腦猜數字的do-while好像也可以改掉了@_@)

    Tube 於 2011/07/20 01:56 回覆

  • lionking
  • 啊! 不小心算錯XD
找更多相關文章與討論