激情六月丁香婷婷|亚洲色图AV二区|丝袜AV日韩AV|久草视频在线分类|伊人九九精品视频|国产精品一级电影|久草视频在线99|在线看的av网址|伊人99精品无码|午夜无码视频在线

高校合作1:010-59833514 ?咨詢電話:400-810-1418 服務(wù)與監(jiān)督電話:400-810-1418轉(zhuǎn)接2

開發(fā)c語言游戲(通過編寫一個(gè)簡(jiǎn)單的游戲?qū)W習(xí) C 語言)

發(fā)布時(shí)間:2023-11-27 20:04:41 瀏覽量:104次

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

開發(fā)c語言游戲(通過編寫一個(gè)簡(jiǎn)單的游戲?qū)W習(xí) C 語言)

? 來源:linux.cn ? 作者:Jim Hall ? 譯者:qfzy1233 ?

(本文字?jǐn)?shù):2576,閱讀時(shí)長(zhǎng)大約:3 分鐘)

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

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

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

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

從寫一個(gè)函數(shù)來選擇一個(gè)隨機(jī)數(shù)字來開始“猜數(shù)字”游戲。在編寫函數(shù)時(shí),優(yōu)秀的程序員會(huì)盡量使它們具有靈活性,這樣他們就可以重用它們來解決略有不同的問題。因此,與其硬編碼函數(shù)來選擇 1 到 100 之間的一個(gè)隨機(jī)數(shù),不如編寫函數(shù)來選擇 1 到某個(gè)整數(shù) maxval 之間的一個(gè)隨機(jī)數(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 來生成一系列隨機(jī)數(shù)。你可以在手冊(cè)頁中了解關(guān)于這個(gè)系統(tǒng)調(diào)用的更多信息,但請(qǐng)注意,getrandom 將用隨機(jī)的 0 和 1 填充變量。這意味著最終值可以是正的,也可以是負(fù)的,因此你需要在之后進(jìn)行測(cè)試,以確保 randnum 函數(shù)的結(jié)果是正值。

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

開發(fā)c語言游戲(通過編寫一個(gè)簡(jiǎn)單的游戲?qū)W習(xí) C 語言)

#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 之間選擇一個(gè)隨機(jī)數(shù)。在向用戶輸出一個(gè)提示后,程序進(jìn)入一個(gè) do-while 循環(huán),以便用戶可以猜測(cè)數(shù)字。

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

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

$ gcc -o guess -Wall guess.c

$ http://www.toutiao.com/a6917264430015742475/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!

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

你有最喜歡的編程語言嗎?你會(huì)如何用它來編寫“猜數(shù)字”游戲呢?關(guān)注本系列文章,查看你可能感興趣的其他編程語言的示例。


via: opensource.com

作者: Jim Hall 選題: lujun9972 譯者: qfzy1233 校對(duì): wxy

本文由 LCTT 原創(chuàng)編譯, Linux中國(guó) 榮譽(yù)推出

開發(fā)c語言游戲(通過編寫一個(gè)簡(jiǎn)單的游戲?qū)W習(xí) C 語言)

熱門課程推薦

熱門資訊

請(qǐng)綁定手機(jī)號(hào)

x

同學(xué)您好!

您已成功報(bào)名0元試學(xué)活動(dòng),老師會(huì)在第一時(shí)間與您取得聯(lián)系,請(qǐng)保持電話暢通!
確定