溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何通過C語言編寫一個簡單的游戲

發(fā)布時間:2021-10-20 11:52:46 來源:億速云 閱讀:409 作者:iii 欄目:編程語言

本篇內(nèi)容主要講解“如何通過C語言編寫一個簡單的游戲”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“如何通過C語言編寫一個簡單的游戲”吧!

去取一個隨機數(shù)

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

#include <stdio.h> #include <sys/random.h> int randnum(int maxval) {   /* pick a random number from 1 to maxval */   int randval;   getrandom(&randval, sizeof(int), GRND_NONBLOCK);   /* could be negative, so ensure it's positive */   if (randval < 0) {     return (-1 * randval % maxval + 1);   }   else {     return (randval % maxval + 1);   } }

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

編寫程序

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

#include <stdio.h> #include <sys/random.h>   int randnum(int maxval) {   ... } int main(void) {   int number;   int guess;   number = randnum(100);   puts("Guess a number between 1 and 100");   do {     scanf("%d", &guess);     if (guess < number) {       puts("Too low");     }     else if (guess > number) {       puts("Too high");     }   } while (guess != number);   puts("That's right!");   return 0; }

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

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

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

$ gcc -o guess -Wall guess.c $ ./guess Guess a number between 1 and 100 50 Too high 30 Too low 40 Too low 45 Too high 42 Too low 43 Too low 44 That's right!

到此,相信大家對“如何通過C語言編寫一個簡單的游戲”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI