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语言实现的猜拳游戏代码分享