自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

通過編寫一個簡單的游戲?qū)W習(xí) C 語言

開發(fā) 后端
當(dāng)你學(xué)習(xí)一門新的編程語言時,這個“猜數(shù)字”游戲是一個很好的入門程序。下面是如何用 C 語言來編寫它。

我在小學(xué)時就開始 自學(xué)編程 。我的第一個程序是在 Apple II 上編寫的,但最終,我還是通過看書和編程練習(xí)學(xué)會了 C 語言。練習(xí)編程的最佳方法是編寫示例程序,它能幫助你練習(xí)新知識。

[[375797]]

在我學(xué)習(xí)一種新的編程語言時,我喜歡編寫一個簡單的“猜數(shù)字”游戲來練習(xí)。電腦從 1 到 100 中隨機(jī)挑選一個數(shù)字,你必須通過猜測來算出來。在另一篇文章中,我展示了如何用 Bash 語言編寫這個 “猜數(shù)字”游戲 ,我的同事也寫了一些文章,介紹如何用 JavaJulia 和其他計算機(jī)語言編寫它。

“猜數(shù)字”游戲的偉大之處在于它踐行了幾個編程概念:如何使用變量、如何比較值、如何打印輸出以及如何讀取輸入。

整個夏天,我錄制了 一個系列視頻 ,教人們?nèi)绾斡?C 語言 編寫程序。從那以后,我聽到了很多人都在跟著它學(xué)習(xí) C 語言編程的消息。所以,我想接著用 C 語言寫一個“猜數(shù)字”的游戲。

去取一個隨機(jī)數(shù)

從寫一個函數(shù)來選擇一個隨機(jī)數(shù)字來開始“猜數(shù)字”游戲。在編寫函數(shù)時,優(yōu)秀的程序員會盡量使它們具有靈活性,這樣他們就可以重用它們來解決略有不同的問題。因此,與其硬編碼函數(shù)來選擇 1 到 100 之間的一個隨機(jī)數(shù),不如編寫函數(shù)來選擇 1 到某個整數(shù) maxval 之間的一個隨機(jī)數(shù):

  1. #include <stdio.h> 
  2. #include <sys/random.h> 
  3. int 
  4. randnum(int maxval) 
  5.   /* pick a random number from 1 to maxval */ 
  6.   int randval; 
  7.   getrandom(&randval, sizeof(int), GRND_NONBLOCK); 
  8.   /* could be negative, so ensure it's positive */ 
  9.   if (randval < 0) { 
  10.     return (-1 * randval % maxval + 1); 
  11.   } 
  12.   else { 
  13.     return (randval % maxval + 1); 
  14.   } 

該函數(shù)使用 Linux 的系統(tǒng)調(diào)用 getrandom 來生成一系列隨機(jī)數(shù)。你可以在手冊頁中了解關(guān)于這個系統(tǒng)調(diào)用的更多信息,但請注意,getrandom 將用隨機(jī)的 0 和 1 填充變量。這意味著最終值可以是正的,也可以是負(fù)的,因此你需要在之后進(jìn)行測試,以確保 randnum 函數(shù)的結(jié)果是正值。

編寫程序

你可以用這個函數(shù)來寫你的“猜數(shù)字”程序:

  1. #include <stdio.h> 
  2. #include <sys/random.h> 
  3.   
  4. int 
  5. randnum(int maxval) 
  6.   ... 
  7. int 
  8. main(void) 
  9.   int number; 
  10.   int guess; 
  11.   number = randnum(100); 
  12.   puts("Guess a number between 1 and 100"); 
  13.   do { 
  14.     scanf("%d", &guess); 
  15.     if (guess < number) { 
  16.       puts("Too low"); 
  17.     } 
  18.     else if (guess > number) { 
  19.       puts("Too high"); 
  20.     } 
  21.   } while (guess != number); 
  22.   puts("That's right!"); 
  23.   return 0; 

程序首先使用 randnum 函數(shù)從 1 到 100 之間選擇一個隨機(jī)數(shù)。在向用戶輸出一個提示后,程序進(jìn)入一個 do-while 循環(huán),以便用戶可以猜測數(shù)字。

在循環(huán)的每次迭代中,程序測試用戶的猜測的數(shù)值。如果用戶的猜測小于隨機(jī)數(shù),程序?qū)⑤敵?ldquo;Too low”,如果猜測大于隨機(jī)數(shù),程序?qū)⑤敵?ldquo;Too high”。循環(huán)繼續(xù),直到用戶的猜測與隨機(jī)數(shù)相同。

當(dāng)循環(huán)退出時,程序輸出 “That's right!”,然后立即結(jié)束:

  1. $ gcc -o guess -Wall guess.c 
  2. $ ./guess 
  3. Guess a number between 1 and 100 
  4. 50 
  5. Too high 
  6. 30 
  7. Too low 
  8. 40 
  9. Too low 
  10. 45 
  11. Too high 
  12. 42 
  13. Too low 
  14. 43 
  15. Too low 
  16. 44 
  17. That's right! 

嘗試動手

在學(xué)習(xí)一門新的編程語言時,這個“猜數(shù)字”游戲是一個很好的入門程序,因?yàn)樗砸环N非常直接的方式練習(xí)了幾個常見的編程概念。通過用不同的編程語言實(shí)現(xiàn)這個簡單的游戲,你可以演示一些核心概念,并比較每種語言的細(xì)節(jié)。

 

責(zé)任編輯:趙寧寧 來源: Linux中國
相關(guān)推薦

2021-01-03 16:30:34

Rust編程語言

2021-01-01 19:30:21

Python編程語言

2021-02-05 16:03:48

JavaScript游戲?qū)W習(xí)前端

2021-01-05 12:38:53

C++編程語言軟件開發(fā)

2021-04-13 06:35:13

Elixir語言編程語言軟件開發(fā)

2009-09-11 09:11:09

2023-01-13 18:55:09

游戲Ada編程語言

2017-11-23 08:30:26

編程Python擲骰子游戲

2020-11-30 13:16:29

Python編程語言

2020-12-28 06:29:31

Bash互動游戲Linux

2009-09-11 09:10:30

C#編寫游戲

2021-01-12 06:42:50

Lua腳本語言編程語言

2021-12-30 11:26:31

語言編譯器腳本

2022-06-03 16:59:13

編程語言Awk

2013-12-13 08:59:15

C++游戲

2019-09-23 09:11:02

Python文本編輯器操作系統(tǒng)

2015-03-24 19:48:24

2023-09-08 10:50:24

Tcl/TkWish

2009-08-25 01:46:00

C# WINDOWS服

2021-09-08 08:36:50

ncursesLinux猜謎游戲
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號