欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-05 10:20:27
c语言实现简单的一个猜拳小游戏,供大家参考,具体内容如下全部代码#include#include#include

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语言 猜拳