欢迎来到代码驿站!

C代码

当前位置:首页 > 软件编程 > C代码

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

时间:2021-08-25 08:01:54|栏目: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'时,电脑胜利
否则双方平局
*/

上一篇:C语言中的隐式函数声明

栏    目:C代码

下一篇:C++实现LeetCode(72.编辑距离)

本文标题:C语言实现简单猜拳小游戏

本文地址:http://www.codeinn.net/misctech/169758.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有