C語言實現簡單猜拳小遊戲

C語言實現簡單的一個猜拳小遊戲,供大傢參考,具體內容如下

全部代碼

#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);//根據兩個全局變量輸出對應進行的操作
int main() {
 printf("規則\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等待電腦結果.\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("三秒後繼續...");
 Sleep(1000);
 printf("二秒後繼續...");
 Sleep(1000);
 printf("一秒後繼續...");
 Sleep(1000);
 system("cls");
 main();
 }
 return 0;
}
char case_win(int left, int right) {
 char reslut;
 /*
 *聲明
 *石頭->1
 *剪刀->2
 * _佈->3
 */
 /*
 * 規則:
 * 石頭->剪刀
 * 剪刀->佈
 * 佈->石頭
 */
 /*判斷,左邊是玩傢*/
 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; //用戶輸入

函數定義

char case_win(int left, int right);//判斷哪邊贏瞭;left是玩傢,right是電腦
int echoinput(int inputnum);//根據兩個全局變量輸出對應進行的操作

打印 規則和輸入提示

printf("規則\n\n");
puts("1.石頭\n");
puts("2.剪刀\n");
puts("3.佈 \n");
printf("%s你的輸入:", echo);
scanf_s("%d", &userinput);
printf("\n");

Main方法中的主要邏輯

int main() {
 printf("規則\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等待電腦結果.\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("三秒後繼續...");
 Sleep(1000);
 printf("二秒後繼續...");
 Sleep(1000);
 printf("一秒後繼續...");
 Sleep(1000);
 system("cls");
 main();
 }
 return 0;
}

函數實現-判斷輸入

當參數inputnum為1,2,3時,進行對應的打印操作,如果有誤在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;
}

邏輯函數-判斷輸贏

char case_win(int left, int right) {
 char reslut;
 /*
 *聲明
 *石頭->1
 *剪刀->2
 * _佈->3
 */
 /*
 * 規則:
 * 石頭->剪刀
 * 剪刀->佈
 * 佈->石頭
 */
 /*判斷,左邊是玩傢*/
 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;
}

實現邏輯函數的返回值

/*
當返回值reslut為'L'時,玩傢勝利
當返回值reslut為'R'時,電腦勝利
否則雙方平局
*/

以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: