程式设计实习第十次上课.pptVIP

  • 0
  • 0
  • 约1.03千字
  • 约 8页
  • 2018-12-13 发布于天津
  • 举报
程式设计实习第十次上课

程式設計實習第十次上課 傅榮勝 Jung-Sheng Fu, DEE, NUU, ROC * 亂數產生器 (stdlib.h) 函數名稱 srand(seed) rand() void srand(unsigned seed); 設定虛擬亂數產生器的種子值。 功能說明 int rand(void); 產生一個虛擬隨機亂數,傳回介於0到RAND_MAX之間。 註:一般而言,我們會先呼叫srand()以重新起始亂數產生器,而後才會呼叫rand()取得一個亂數. Jung-Sheng Fu, DEE, NUU, ROC * 產生亂數 亂數產生器的用途常用於模擬和取機率值,例如:電腦遊戲中的射擊目標物、角色扮演遊戲中的攻擊命中率與否的決定,皆是隨機的,否則遊戲就會變得不好玩,不確定性的遊戲才會好玩。 以下為使用不同的 亂數種子所產生的不同亂數序列數值的參考值 Jung-Sheng Fu, DEE, NUU, ROC * 亂數不是亂數,怎麼辦 由於亂數係系統使用一亂數表所產生,所以同樣的seed便會產生一定次序的亂數,若是使用某固定的seed,則亂數還是可以被猜出,那亂數就不是亂數了,怎麼辦? 解法:使用time()函數 (time.h) 用法:srand(time(NULL)); Jung-Sheng Fu, DEE, NUU, ROC * 程式範例:亂數函數的運用 寫一個猜數字的遊戲,方法: (a)電腦用rand()函數產生一個介於0~32767的數值n (b)要求player猜一個數字a (c)若an,則傳回Guess a little smaller number! 若an,則傳回Guess a little large number! 若a=n,則傳回You get! (d)程式一直執行玩家(player)到猜中為止,並顯示player總共猜了幾次! Jung-Sheng Fu, DEE, NUU, ROC * 程式範例:亂數函數的運用 如何產生0~2的亂數?提示用%運算 Jung-Sheng Fu, DEE, NUU, ROC * 習題: 請寫一個猜拳遊戲,讓user輸入0,1,2 分別代表石頭、布、剪刀,然後電腦用亂數產生一個0到2的值,並且印出輸贏的結果: 例如:「你出石頭,電腦出布,你輸」… Jung-Sheng Fu, DEE, NUU, ROC * * * * * * *

文档评论(0)

1亿VIP精品文档

相关文档