用C語言創作睿智小遊戲 猜拳篇

2021-09-28 23:21:52 字數 4539 閱讀 1481

突發奇想,打算用c語言編寫乙個猜拳遊戲,深知網上有很多教程,未看教程,自己開始盲編,

首先需要定義猜拳遊戲的精髓「石頭,剪刀,布」,這裡我們用數字定義:

//賦予1=石頭,2=剪刀,3=布
我們平時在玩猜拳遊戲的時候是玩家vs玩家,有很多心理戰術(察言觀色),但是我們電腦是個面無表情的玩家!我們跟電腦對戰只有三分之一的機率獲勝

好了,知道這個遊戲是玩家vs電腦,接下來就是電腦的出拳機制,它的隨機性,這時候我們使用「隨機數生成」

//產生隨機數 

int a =

rand()

%3+1

;

但是這種隨機數產生是一次性的,我們需要加入隨機數種子

srand((

unsigned

int)time)

;

而且還需要引入標頭檔案

#include

我們來用printf()來檢驗每次產生的隨機數是否正確(在正式執行時我們需要隱藏列印出來的隨機數,以確保遊戲的公平性。看著電腦出拳並沒有遊戲體驗吶!!)

//printf("%d\n", a);

//查驗隨機數

在隨機數中我們已經賦予電腦值為:

int a
我們要給玩家賦予:

unsigned

int num =0;

printf

("請輸入你要出的數字:");

scanf

("%d"

,&num)

;

接下來就是判斷我們遊戲的勝負關係,大家都知道「石頭,剪刀,布」是相互克制關係,我們賦予的值,「1,2,3」也是克制關係可以理解為「1贏2,2贏3,3贏1」,

這時候我們就開始確定玩家勝利的條件:

當電腦輸入1(石頭)時,玩家輸入3(布)為勝利。

當電腦輸入2(剪刀)時,玩家輸入1(石頭)為勝利。

當電腦輸入3(布)時,玩家輸入3(剪刀)為勝利。

a ==

1&& num ==

3|| a ==

2&& num ==

1|| a ==

3&& num ==

2

程式用與(&&)或(||)相連。

同理玩家失敗的條件:

當電腦輸入1(石頭)時,玩家輸入2(剪刀)為失敗。

當電腦輸入2(剪刀)時,玩家輸入3(布)為失敗。

當電腦輸入3(布)時,玩家輸入1(石頭)為失敗。

a ==

1&& num ==

2|| a ==

2&& num ==

3|| a ==

3&& num ==

1

其他情況則為平局:

玩家與電腦顯示數值相同

a == num
用 if…else if…else…函式來判斷結果:

if()

elseif(

)else

注:(當分析這一段時,我犯了乙個錯誤,導致整個分析方法過於複雜

當時忘記輸入「= =」兩個等於,只輸入乙個導致報錯,當時分析出了這種方法:

a>num&&a!=

2&&num!=

2

假設電腦出手,數值a=3,電腦獲勝條件只能是玩家num=1,所以必須要電腦數值大於玩家,且電腦與玩家都不能等於2)

到這裡,我們猜拳程式就差不多完成了80%,接下來要開始完善**與程式。

加入睿智的開場白:

printf

("******************************************\n");

printf

("* 歡迎來到睿智遊戲之家 *\n");

printf

("* 本次您要玩的遊戲是「剪刀,石頭,布」 *\n");

printf

("* 請按照規定輸入: *\n");

printf

("* 輸入數字「1」進入遊戲 *\n");

printf

("* 輸入其他,進行退出 *\n");

printf

("******************************************\n"

);

與睿智的遊戲介紹:

printf

("************************************\n");

printf

("* 遊戲介紹: *\n");

printf

("* 您需要跟電腦進行博弈。 *\n");

printf

("* 輸入數字「1」====「石頭」 *\n");

printf

("* 輸入數字「2」====「剪刀」 *\n");

printf

("* 輸入數字「3」====「布」 *\n");

printf

("* 輸入其他,進行退出 *\n");

printf

("************************************\n"

);

printf

("************************************\n");

printf

("* 恭喜你,你贏啦! *\n");

printf

("************************************\n"

);

睿智的結束語:

system

("cls");

printf

("************************************\n");

printf()

;printf

("************************************\n");

printf

("正在退出,倒計時...\n");

int f =4;

for(

int i =

0; i <

4; i++

)exit(0

);

這裡結束,我先做了乙個清屏,並且用for()迴圈做了乙個簡易的倒計時,這裡引入了計數時間函式sleep(),sleep的單位是毫秒,為了變成1秒,我在這裡面單位加了(1000),!!呼叫sleep函式,還需要引入標頭檔案

#include

最後為了保證遊戲的多次參與度,這裡用while(1)

while(1

);

加入了乙個無限迴圈。

最後將隨機數(即電腦出拳)顯示結果顯示在玩家出拳後。

printf

("電腦已出拳,該您了。\n");

printf

("請輸入你要出的數字:");

scanf

("%d"

,&num)

;printf

("\n");

printf

("電腦出拳結果是:%d\n"

,a);

下面是完整程式:

#define _crt_secure_no_warnings

#include

#include

#include

#include

#include

#include

void

test()

else

if(a ==

1&& num ==

3|| a ==

2&& num ==

1|| a ==

3&& num ==2)

else

if(a == num)

else

exit(0

);}}

}void

test01()

void

test02()

exit(0

);printf

("\n");

}int

main

(void

)else

printf

("\n");

system

("pause");

return0;

}

C 實現猜拳小遊戲

1.使用guid實現真正的隨機數 2.重複遊戲 3.計算分數 using system using system.diagnostics namespace 猜拳小遊戲 console.writeline 開始玩猜拳小遊戲 while true else if yourdesc 剪刀 else if...

C語言 猜拳遊戲

c語言實現猜拳小遊戲 srand unsigned time null 隨機數種子 computer rand 3 產生隨機數並取餘,得到電腦出拳 result int gamer computer gamer 為 char 型別,數 算時要強制轉換型別 printf 電腦出了 switch com...

C語言之猜拳遊戲

描述 石頭剪子布,是一種猜拳遊戲。起源於中國,然後傳到日本 朝鮮等地,隨著亞歐 的不斷發展它傳到了歐洲,到了近現代逐漸風靡世界。簡單明瞭的規則,使得石頭剪子布沒有任何規則漏洞可鑽,單次玩法比拼運氣,多回合玩法比拼心理博弈,使得石頭剪子布這個古老的遊戲同時用於 意外 與 技術 兩種特性,深受世界人民喜...