用c語言實(shí)現(xiàn)《狼人殺》游戲發(fā)牌系統(tǒng)
1.前言
新年將至,親戚朋友在家中免不了玩一下桌游,狼人殺確實(shí)是一個不錯選擇。那么針對正常的狼人殺玩法(8人局和12人局),博主利用一上午時間做了一個《狼人殺自動發(fā)牌系統(tǒng)》(可查看游戲教程和人物屬性)。接下來就直接看程序效果和完整代碼吧!
2.程序效果
3.完整代碼
#include<stdio.h> #include<stdlib.h> #include<time.h> #include<windows.h> void charability(); void gamerule8(); void gamerule12(); void sortplayer(int x); void giveplayer8(); void giveplayer12(); int main() { while(1) { int number; printf("-----------------------------------輸入“1”選擇發(fā)牌模式(8人局 or 12人局)--------------------------------------------\n"); printf("------------------------------------------輸入“2”查看游戲規(guī)則--------------------------------------------------------\n"); printf("------------------------------------------輸入“3”查看角色技能-------------------------------------------------------\n"); printf("------------------------------------------輸入“4”退出游戲------------------------------------------------------------\n"); printf("請輸入:\n"); scanf("%d",&number); if(number==1) { int number2; system("cls"); printf("------------------------------------------輸入“1”為8人局模式發(fā)牌-----------------------------------------------------\n"); printf("------------------------------------------輸入“2”為12人局模式發(fā)牌----------------------------------------------------\n"); printf("請輸入:\n"); scanf("%d",&number2); system("cls"); if(number2==1) { giveplayer8(); }else if(number2==2) { giveplayer12(); }else{ goto start; } }else if(number==2) { system("cls"); int number4; printf("----------------------------------------輸入“1”查看8人局規(guī)則-----------------------------------------------------\n"); printf("----------------------------------------輸入“2”查看12人局規(guī)則-----------------------------------------------------\n"); printf("請輸入:\n"); scanf("%d",&number4); system("cls"); if(number4==1) { gamerule8(); }else if(number4==2){ gamerule12(); }else{ goto start; } }else if(number==3){ charability(); }else if(number==4) { break; }else{ start: printf("----------------------------------------請重新輸入正確的指令--------------------------------------------------\n\n"); } } system("cls"); printf("-------------------------------------------游戲結(jié)束--------------------------------------------------------------------\n"); printf("-------------------------------------------游戲結(jié)束--------------------------------------------------------------------\n"); printf("-------------------------------------------游戲結(jié)束--------------------------------------------------------------------\n"); printf("--------------------------------------MADE BY CSDN: Wccyy883-----------------------------------------------------------\n"); system("pause"); return 0; } void charability() { system("cls"); printf("1.普通村民:\n本身沒有任何能力,一覺睡到天亮卻要考慮很多事情。平民會接收到真假混雜的信息,需要從中分辨和判斷出正確的信息。\n"); printf("2.狼人:\n每天晚上會殘忍地殺害一個村民,到了白天,狼人要假扮村民隱藏自己的身份,故意誤導(dǎo)或陷害其他村民。\n") ; printf("3.預(yù)言家:\n每晚預(yù)言家可以窺視一個玩家的真實(shí)身份,是村莊里的靈魂人物,帶領(lǐng)好人走向勝利。\n"); printf("4.女巫:\n女巫擁有兩瓶藥,解藥可以救活一名當(dāng)晚被狼人殺害的玩家,毒藥可以毒殺一名玩家,女巫在每天晚上最多使用一瓶藥,女巫不可自救.\n"); printf("5.獵人:\n當(dāng)獵人被狼人殺害或被村民處決時,他可以射殺任意一個玩家。但當(dāng)獵人由于意外死亡(如女巫的毒藥或者被殉情而死)他不可在死前射出子彈\n"); printf("6.警長:\n附加身份牌,游戲開始后第一天從所有玩家中通過投票選舉出一名玩家授予警長。警長在白天最后發(fā)言并且投票時有1.5 票。\n"); printf("7.白癡:\n好人陣營,隱神牌,白癡平時與普通村民無異,但當(dāng)他被村民票死的時候,他可以翻牌亮出身份,若如此做就能免死。在所有玩家發(fā)言結(jié)束后,多一次發(fā)言機(jī)會,但是翻牌以后的白癡不能投票。\n"); } void gamerule8() { printf("8人狼人殺的配置一般為:3個狼、2個平民、1個預(yù)言家、1個獵人和1個女巫,這也是能湊成一局狼人殺最基本的搭配\n"); printf("因?yàn)檎G闆r下一局狼人殺無論人數(shù)多少都需要3個狼人和3個神職人員,否則游戲很難進(jìn)行下去,平民人數(shù)則根據(jù)你們現(xiàn)實(shí)的人數(shù)進(jìn)行調(diào)整\n"); } void gamerule12() { printf("(標(biāo)準(zhǔn)12人局包括:4個平民,4個狼人,1個預(yù)言家,1個女巫,1個獵人,1個白癡) 法官:天黑請閉眼,狼人請睜眼。 假如你手牌是狼人(即12號玩家):\n"); printf("法官:天黑請閉眼,狼人請睜眼。 假如你手牌是狼人(即12號玩家): 你需要睜開眼睛,此時會看見另外3個睜眼玩家,沒錯,他們就是你的狼同伴了,你的任務(wù)就是和他們一起,攜手把好人殺掉。\n"); printf("你無需比劃任何手勢,也不需要努力去參透伙伴中所謂的高玩在比劃的任何手勢,靜靜的看著他們即可,僅僅只需要記住伙伴們最終向法官出示的選擇殺掉的那個號碼。 然后閉眼,等待。 法官:狼人請閉眼,女巫請睜眼。\n"); printf("假如你手牌是女巫(即11號玩家): 整局游戲女巫手上有 一瓶救藥 和 一瓶毒藥,分別用來 救一個人 和 毒死一個人。 每一個晚上最多使用一瓶。\n"); } void sortplayer(int x) { if(x==1)printf("普通平民\n"); else if(x==2)printf("普通平民\n"); else if(x==3)printf("狼\n"); else if(x==4)printf("狼\n"); else if(x==5)printf("狼\n"); else if(x==6)printf("女巫\n"); else if(x==7)printf("預(yù)言家\n"); else if(x==8)printf("獵人\n"); else if(x==9)printf("普通平民\n"); else if(x==10)printf("普通平民\n"); else if(x==11)printf("狼\n"); else if(x==12)printf("白癡\n"); } void giveplayer8() { srand(time(NULL)); int a[8]={0}; int i; int all; for(i=0;i<8;i++) { while(1){ all=rand()%8+1; int j,t; t=0; for(j=0;j<8;j++) { if(a[j]==all) { t=1; } } if(t==0) { break; } } a[i]=all; } printf("\n"); for(i=0;i<8;i++) { printf("%d號玩家身份:\n",i+1); sortplayer(a[i]); } } void giveplayer12() { srand(time(NULL)); int a[12]={0}; int i; int all; for(i=0;i<12;i++) { while(1){ all=rand()%12+1; int j,t; t=0; for(j=0;j<12;j++) { if(a[j]==all) { t=1; } } if(t==0) { break; } } a[i]=all; } printf("\n"); for(i=0;i<12;i++) { printf("%d號玩家身份:\n",i+1); sortplayer(a[i]); } }
總結(jié)
到此這篇關(guān)于用c語言實(shí)現(xiàn)《狼人殺》游戲發(fā)牌系統(tǒng)的文章就介紹到這了,更多相關(guān)c語言狼人殺內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言實(shí)現(xiàn)求最大公約數(shù)的三種方法
最大公因數(shù),也稱最大公約數(shù)、最大公因子,指兩個或多個整數(shù)共有約數(shù)中最大的一個。本文將為大家介紹三種方法來實(shí)現(xiàn)求解兩個正整數(shù)的最大公約數(shù),需要的可以參考一下2021-12-12Visual Studio Code運(yùn)行C++代碼時顯示CLOCKS_PER_SEC未定義的問題及解決方法
這篇文章主要介紹了解決Visual Studio Code運(yùn)行C++代碼時顯示CLOCKS_PER_SEC未定義的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04VC++實(shí)現(xiàn)輸出GIF到窗體并顯示GIF動畫的方法
這篇文章主要介紹了VC++實(shí)現(xiàn)輸出GIF到窗體并顯示GIF動畫的方法,需要的朋友可以參考下2014-07-07基于C語言實(shí)現(xiàn)隨機(jī)點(diǎn)名器(附源碼)
這篇文章主要為大家詳細(xì)介紹如何基于C語言實(shí)現(xiàn)一個簡單的隨機(jī)點(diǎn)名器,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起動手嘗試一下2022-07-07C++實(shí)現(xiàn)LeetCode(82.移除有序鏈表中的重復(fù)項(xiàng)之二)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(82.移除有序鏈表中的重復(fù)項(xiàng)之二),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07Linux下C語言的fork()子進(jìn)程函數(shù)用法及相關(guān)問題解析
fork()函數(shù)在Linux下可以用于產(chǎn)生一個子進(jìn)程,這里我們挑選了兩個fork相關(guān)的面試題,來看一下Linux下C語言的fork()子進(jìn)程函數(shù)用法及相關(guān)問題解析2016-06-06C語言中操作sqlserver數(shù)據(jù)庫案例教程
這篇文章主要介紹了C語言中操作sqlserver數(shù)據(jù)庫案例教程,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07