最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言詳細(xì)實(shí)現(xiàn)猜拳游戲流程

 更新時(shí)間:2022年05月23日 11:31:38   作者:這個(gè)需求做不了.  
在學(xué)習(xí)了循環(huán)、分支、和函數(shù)之后,可以寫一些簡(jiǎn)單的小游戲來給自己的編程之路增添一份樂趣。不僅提升了編碼能力,還可以邊學(xué)邊玩,簡(jiǎn)直妙哉妙哉

一、游戲邏輯

1.打印選擇菜單(1.play,0.exit)

2.提示玩家0、1、2 分別代表石頭、剪刀、布

3.設(shè)置與計(jì)算機(jī)博弈次數(shù)

4.為計(jì)算機(jī)設(shè)置出拳(調(diào)用rand()函數(shù)生成0、1、2其中一個(gè)隨機(jī)數(shù))

5.玩家出拳

6.判斷輸贏

7.展示玩家和計(jì)算機(jī)出的拳

8.若退出游戲展示玩家勝負(fù)與平局信息

二、思維導(dǎo)圖

三、游戲過程

四、代碼分析

1.設(shè)置隨機(jī)數(shù)的方法

僅僅使用rand()函數(shù)來生成隨機(jī)數(shù)是不行的,因?yàn)樗客嬉淮紊傻碾S機(jī)數(shù)都是相同的,即隨機(jī)數(shù)不隨機(jī),所以要通過srand()函數(shù),種下一個(gè)隨機(jī)種子,來產(chǎn)生隨機(jī)數(shù)。根據(jù)時(shí)間每時(shí)每刻都是變化的,可以用time()時(shí)間函數(shù)來產(chǎn)生種子。

這里 time_t 的類型就是在C語言中被定義為長整型,而srand()函數(shù)的參數(shù)類型unsignedint(無符號(hào)整形),所以使用時(shí)要強(qiáng)制類型轉(zhuǎn)換,而且**time()**函數(shù),不需要設(shè)置參數(shù),故用NULL代替。

2.設(shè)置計(jì)算機(jī)出拳的方法

comp = rand() % 3;

調(diào)用 rand() 函數(shù) %3 就可以得到有個(gè)0~2之間的數(shù)值

3.判斷輸贏的方法

據(jù)圖可以看出只需要判斷 (human - comp + 3) % 3 的值是 0、1 還是 2 就可以判斷是平局、計(jì)算機(jī)贏還是電腦贏。

代碼示例:

void disp_result(is_winer)
{
	switch (is_winer)
	{
	case 0:
		printf("平局\n");
		draw++;//平局次數(shù)加1
		break;
	case 1:
		printf("計(jì)算機(jī)贏\n");
		lose++;//失敗次數(shù)加1
		break;
	case 2:
		printf("玩家贏\n");
		win++;//獲勝次數(shù)加1
		break;
	}
}

is_winer 中存放的是 (human - comp + 3) % 3 的值,利用 switch 語句判斷其結(jié)果,再輸出對(duì)應(yīng)的語句。變量draw、lose、win是用來統(tǒng)計(jì)玩家戰(zhàn)績信息。

4.玩家猜拳

控制玩家輸入的范圍是0~2之間的數(shù)值

倘若玩家輸入的數(shù)值不是0~2之間的,程序就無法正常運(yùn)行了,所以要控制范圍。

可以利用do while循環(huán)來達(dá)到此目的。

代碼示例:

do
{
	scanf("%d", &human);//玩家出拳
	printf("\n");
	if (human < 0 || human > 2)
	{
		printf("輸入錯(cuò)誤,重新輸入\n");
	}
	is_winer = (human - comp + 3) % 3;
	disp_result(is_winer);//判斷輸贏的函數(shù)
 
    Dishumanplayer(human);//展示玩家出的拳
	Discomplayer(comp);//展示計(jì)算機(jī)出拳
} while (human < 0 || human > 2);//控制玩家輸出范圍是0~2	

if 語句的作用是用來當(dāng)玩家輸入的數(shù)值超過了范圍時(shí),對(duì)其進(jìn)行提示輸入錯(cuò)誤。

五、完整代碼

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int draw = 0;//統(tǒng)計(jì)平局?jǐn)?shù)
int lose = 0;//統(tǒng)計(jì)失敗數(shù)
int win = 0;//統(tǒng)計(jì)獲勝數(shù)
int human = 0;//玩家手勢(shì)
int comp = 0;//計(jì)算機(jī)手勢(shì)
int is_winer = 0;//判斷勝負(fù)
void menu()
{
	printf("****************************************\n");
	printf("*************** 猜拳游戲 ***************\n");
	printf("****************************************\n");
	printf("***************  1.play ****************\n");
	printf("***************  0.exit ****************\n");
	printf("****************************************\n");
}
void Displayer(int comp, int human)//展示計(jì)算機(jī)和玩家出拳的函數(shù)
{
	printf("計(jì)算機(jī)出的是:");
	switch (comp)
	{
	case 0:
		printf("石頭\n");
		break;
	case 1:
		printf("剪刀\n");
		break;
	case 2:
		printf("布\n");
		break;
	}
	printf("玩家出的是:");
	switch (human)
	{
	case 0:
		printf("石頭\n");
		break;
	case 1:
		printf("剪刀\n");
		break;
	case 2:
		printf("布\n");
		break;
	}
}
//判斷輸贏
void disp_result(is_winer)
{
	switch (is_winer)
	{
	case 0:
		printf("平局\n");
		draw++;//平局次數(shù)加1
		break;
	case 1:
		printf("計(jì)算機(jī)贏\n");
		lose++;//失敗次數(shù)加1
		break;
	case 2:
		printf("玩家贏\n");
		win++;//獲勝次數(shù)加1
		break;
	}
}
void game()
{
	printf("(0)-石頭,(1)-剪刀,(2)-布\n");
	printf("猜拳游戲開始!!!\n");
	int number = 0;//猜拳次數(shù)
	printf("請(qǐng)選擇猜拳次數(shù):");
	scanf("%d", &number);
	while (number)
	{
		comp = rand() % 3;//計(jì)算機(jī)出拳
		printf("玩家出拳:");
		do
		{
			scanf("%d", &human);//玩家出拳
			printf("-----------猜拳游戲-------------\n");
			if (human < 0 || human > 2)
			{
				printf("輸入錯(cuò)誤,重新輸入\n");
			}
			is_winer = (human - comp + 3) % 3;
			disp_result(is_winer);//判斷輸贏的函數(shù)
			Displayer(comp, human);//展示出拳
		} while (human < 0 || human > 2);//控制玩家輸出范圍是0~2	
		number--;
	}
}
int main()
{
	srand((int)time(NULL));
	int input = 0;
	do
	{
		menu();
		printf("選擇玩游戲還是退出游戲!!!\n");
		printf("請(qǐng)選擇:");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			printf("退出游戲\n");
			break;
		default:
			printf("選擇錯(cuò)誤,重新選擇\n");
			break;
		}
	} while (input);
	//展示玩家成績	
	printf("\a\n%d平 %d敗 %d勝\n", draw, lose, win);
	return 0;
}

到此這篇關(guān)于C語言詳細(xì)實(shí)現(xiàn)猜拳游戲流程的文章就介紹到這了,更多相關(guān)C語言猜拳游戲內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一篇文章帶你入門C語言:數(shù)組

    一篇文章帶你入門C語言:數(shù)組

    這篇文章主要介紹了C語言中數(shù)組的一些基本知識(shí)小結(jié),其中重點(diǎn)是對(duì)于數(shù)組的內(nèi)存分配相關(guān)方面的知識(shí)整理,需要的朋友可以參考下
    2021-08-08
  • 使用Matlab繪制七夕咕呱小青蛙

    使用Matlab繪制七夕咕呱小青蛙

    七夕節(jié)到了還不快給你的朋友安排上這只咕呱小青蛙?本文將用Matlab繪制一個(gè)可愛的咕呱小青蛙,感興趣的小伙伴可以動(dòng)手嘗試一下
    2022-08-08
  • QT開發(fā)應(yīng)用程序的歡迎界面實(shí)例

    QT開發(fā)應(yīng)用程序的歡迎界面實(shí)例

    下面小編就為大家?guī)硪黄猀T開發(fā)應(yīng)用程序的歡迎界面實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • C++引用和指針的區(qū)別你知道嗎

    C++引用和指針的區(qū)別你知道嗎

    這篇文章主要為大家介紹了C++引用和指針的區(qū)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助<BR>
    2022-01-01
  • C++程序中使用Windows系統(tǒng)Native Wifi API的基本教程

    C++程序中使用Windows系統(tǒng)Native Wifi API的基本教程

    這篇文章主要介紹了C++程序中使用Windows系統(tǒng)Native Wifi API的基本教程,包括在程序中控制無線網(wǎng)卡開關(guān)的方法,需要的朋友可以參考下
    2016-03-03
  • C/C++運(yùn)用WMI接口實(shí)現(xiàn)查詢系統(tǒng)信息

    C/C++運(yùn)用WMI接口實(shí)現(xiàn)查詢系統(tǒng)信息

    Windows?Management?Instrumentation(WMI)是一種用于管理和監(jiān)視Windows操作系統(tǒng)的框架,本文主要介紹了如何運(yùn)用WMI接口實(shí)現(xiàn)查詢系統(tǒng)信息,感興趣的可以了解下
    2023-11-11
  • VisualStudio?制作Dynamic?Link?Library動(dòng)態(tài)鏈接庫文件的詳細(xì)過程

    VisualStudio?制作Dynamic?Link?Library動(dòng)態(tài)鏈接庫文件的詳細(xì)過程

    這篇文章主要介紹了VisualStudio?制作Dynamic?Link?Library動(dòng)態(tài)鏈接庫文件的詳細(xì)過程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • C語言詳細(xì)講解while語句的用法

    C語言詳細(xì)講解while語句的用法

    c語言while語句的使用語法如“while(condition)?{statement(s);}”,該語句可以是單個(gè)語句,也可以是一個(gè)語句塊,其條件可以是任意表達(dá)式,true是任意非零值,當(dāng)條件為真時(shí),循環(huán)進(jìn)行迭代
    2022-05-05
  • c++和python實(shí)現(xiàn)順序查找實(shí)例

    c++和python實(shí)現(xiàn)順序查找實(shí)例

    這篇文章主要介紹了c++和python實(shí)現(xiàn)順序查找實(shí)例,流程即將目標(biāo)數(shù)值和數(shù)據(jù)庫中的每個(gè)數(shù)值進(jìn)行比較,如果相同則搜索完成,如果不同則繼續(xù)比較下一處,下面來看看具體的實(shí)例操作吧,需要的朋友可以參考一下
    2022-03-03
  • C語言關(guān)鍵字之a(chǎn)uto register詳解

    C語言關(guān)鍵字之a(chǎn)uto register詳解

    這篇文章主要為大家介紹了C語言關(guān)鍵字之a(chǎn)uto register,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01

最新評(píng)論

邯郸县| 许昌市| 佛冈县| 监利县| 彰化市| 丹棱县| 元朗区| 江达县| 巴南区| 遵义县| 伊通| 富平县| 虹口区| 文成县| 长顺县| 绵竹市| 高陵县| 仁怀市| 康乐县| 阜阳市| 巢湖市| 临沧市| 新泰市| 永寿县| 保山市| SHOW| 从江县| 扬州市| 云南省| 黄大仙区| 靖州| 多伦县| 揭西县| 明光市| 崇阳县| 剑阁县| 白玉县| 星座| 莎车县| 荃湾区| 枣强县|