C语言实现简单猜拳小游戏

时间:2021-05-20

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;}

实现逻辑函数的返回值

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章