C語言實現(xiàn)簡單猜拳小游戲
更新時間:2021年03月01日 15:49:38 作者:ℳ๓夢ζ殤
這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)簡單猜拳小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
C語言實現(xiàn)簡單的一個猜拳小游戲,供大家參考,具體內(nèi)容如下
全部代碼
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<Windows.h>
int pcinput; //電腦輸入
int userinput; //用戶輸入
#define echo ">_ " //俺覺得好看
char case_win(int left, int right);//判斷哪邊贏了;left是玩家,right是電腦
int echoinput(int inputnum);//根據(jù)兩個全局變量輸出對應(yīng)進(jìn)行的操作
int main() {
printf("規(guī)則\n\n");
puts("1.石頭\n");
puts("2.剪刀\n");
puts("3.布 \n");
printf("%s你的輸入:", echo);
scanf_s("%d", &userinput);
printf("\n");
if (echoinput(userinput) == 1) {
Sleep(1000);
system("cls");
main();
}
else {
printf("\n");
printf("\n");
printf("%s等待電腦結(jié)果.\0", echo);
Sleep(500);
printf(".");
Sleep(500);
printf(".\n");
srand(time(NULL));
pcinput = rand() % 3 + 1;
printf("\n");
echoinput(pcinput);
printf("\n");
printf("\n");
if (case_win(userinput,pcinput) == 'L') {
printf("玩家勝利");
}
else if(case_win(userinput,pcinput)=='R'){
printf("電腦勝利");
}
else {
printf("雙方平局");
}
printf("\n");
printf("\n");
printf("--------------------");
printf("\n");
printf("\n");
printf("三秒后繼續(xù)...");
Sleep(1000);
printf("二秒后繼續(xù)...");
Sleep(1000);
printf("一秒后繼續(xù)...");
Sleep(1000);
system("cls");
main();
}
return 0;
}
char case_win(int left, int right) {
char reslut;
/*
*聲明
*石頭->1
*剪刀->2
* _布->3
*/
/*
* 規(guī)則:
* 石頭->剪刀
* 剪刀->布
* 布->石頭
*/
/*判斷,左邊是玩家*/
if (left == right) {
reslut = 'P';
}
else {
if (left == 1) {
if (right == 2) {
reslut = 'L';
}
else if (right == 3) {
reslut = 'R';
}
}
else if (left == 2) {
if (right == 1) {
reslut = 'R';
}
else if (right == 3) {
reslut = 'L';
}
}
else if (left == 3) {
if (right == 1) {
reslut = 'L';
}
else if (right == 2) {
reslut = 'R';
}
}
}
return reslut;
}
int echoinput(int inputnum) {
int reslut = 0;
switch (inputnum) {
case 1:
printf("(石頭)");
break;
case 2:
printf("(剪刀)");
break;
case 3:
printf("(布)");
break;
default:
printf("(輸入有誤)");
reslut = 1;
break;
}
return reslut;
}
全局變量
int pcinput; //電腦輸入 int userinput; //用戶輸入
函數(shù)定義
char case_win(int left, int right);//判斷哪邊贏了;left是玩家,right是電腦 int echoinput(int inputnum);//根據(jù)兩個全局變量輸出對應(yīng)進(jìn)行的操作
打印 規(guī)則和輸入提示
printf("規(guī)則\n\n");
puts("1.石頭\n");
puts("2.剪刀\n");
puts("3.布 \n");
printf("%s你的輸入:", echo);
scanf_s("%d", &userinput);
printf("\n");
Main方法中的主要邏輯
int main() {
printf("規(guī)則\n\n");
puts("1.石頭\n");
puts("2.剪刀\n");
puts("3.布 \n");
printf("%s你的輸入:", echo);
scanf_s("%d", &userinput);
printf("\n");
if (echoinput(userinput) == 1) {
Sleep(1000);
system("cls");
main();
}
else {
printf("\n");
printf("\n");
printf("%s等待電腦結(jié)果.\0", echo);
Sleep(500);
printf(".");
Sleep(500);
printf(".\n");
srand(time(NULL));
pcinput = rand() % 3 + 1;
printf("\n");
echoinput(pcinput);
printf("\n");
printf("\n");
if (case_win(userinput,pcinput) == 'L') {
printf("玩家勝利");
}
else if(case_win(userinput,pcinput)=='R'){
printf("電腦勝利");
}
else {
printf("雙方平局");
}
printf("\n");
printf("\n");
printf("--------------------");
printf("\n");
printf("\n");
printf("三秒后繼續(xù)...");
Sleep(1000);
printf("二秒后繼續(xù)...");
Sleep(1000);
printf("一秒后繼續(xù)...");
Sleep(1000);
system("cls");
main();
}
return 0;
}
函數(shù)實現(xiàn)-判斷輸入
當(dāng)參數(shù)inputnum為1,2,3時,進(jìn)行對應(yīng)的打印操作,如果有誤在Main方法中清屏遞歸
int echoinput(int inputnum) {
int reslut = 0;
switch (inputnum) {
case 1:
printf("(石頭)");
break;
case 2:
printf("(剪刀)");
break;
case 3:
printf("(布)");
break;
default:
printf("(輸入有誤)");
reslut = 1;
break;
}
return reslut;
}
邏輯函數(shù)-判斷輸贏
char case_win(int left, int right) {
char reslut;
/*
*聲明
*石頭->1
*剪刀->2
* _布->3
*/
/*
* 規(guī)則:
* 石頭->剪刀
* 剪刀->布
* 布->石頭
*/
/*判斷,左邊是玩家*/
if (left == right) {
reslut = 'P';
}
else {
if (left == 1) {
if (right == 2) {
reslut = 'L';
}
else if (right == 3) {
reslut = 'R';
}
}
else if (left == 2) {
if (right == 1) {
reslut = 'R';
}
else if (right == 3) {
reslut = 'L';
}
}
else if (left == 3) {
if (right == 1) {
reslut = 'L';
}
else if (right == 2) {
reslut = 'R';
}
}
}
return reslut;
}
實現(xiàn)邏輯函數(shù)的返回值
/* 當(dāng)返回值reslut為'L'時,玩家勝利 當(dāng)返回值reslut為'R'時,電腦勝利 否則雙方平局 */
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解C語言中的char數(shù)據(jù)類型及其與int類型的轉(zhuǎn)換
這篇文章主要介紹了詳解C語言中的char數(shù)據(jù)類型及其與int類型的轉(zhuǎn)換,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-08-08
C語言 如何求兩整數(shù)的最大公約數(shù)與最小公倍數(shù)
這篇文章主要介紹了C語言中如何求兩整數(shù)的最大公約數(shù)與最小公倍數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11

