首页 > 其他分享 >C语言制作一个简易的猜拳小游戏

C语言制作一个简易的猜拳小游戏

时间:2024-08-10 15:53:19浏览次数:12  
标签:computer 猜拳 int winner C语言 小游戏 user printf return

用c语言制作一个简易的猜拳小游戏 ,如果跳出错误在getch()上可以改成_getch()试试即可,新版本vs可能认为getch()是不安全的所以不让用。

如果需要有图像的小游戏的话导入easyx,把输出语句修改成画图即可编程画图,记得修改图片位置哦

 

以下是完整代码,直接CV即可

main.c 

#include <stdio.h>
#include <time.h>
#include <windows.h>
#include <conio.h>

void FinalResult(int i,int j)
{
	if (i > j)
	{
		system("cls");
		printf("You are the ultimate winner");
	}
	else if (i < j)
	{
		system("cls");
		printf("The computer is the ultimate winner");
	}
	else if (i == j)
	{
		system("cls");
		printf("The final result of this game is the same");
	}
}

//出拳展示
void show(int i)
{
	switch (i)
	{
	case 1:
		printf("石头\n");
		break;
	case 2:
		printf("剪刀\n");
		break;
	case 3:
		printf("布\n");
		break;
	}
}

//当前回合胜负情况
int VS(int a, int b)
{
	if (a == b)
	{
		printf("This round is the same!!!\n");
		return 0;
	}
	switch (a)
	{

	case 1:
		if (b == 2)
		{
			printf("石头VS剪刀\n");
			printf("You are winner\n");
			return 1;
		}
		else if (b == 3)
		{
			printf("石头VS布\n");
			printf("Computer is winner!\n");
			return 2;
		}
		break;

	case 2:
		if (b == 1)
		{
			printf("剪刀VS石头\n");
			printf("Computer is winner!\n");
			return 2;
		}
		else if (b == 3)
		{
			printf("剪刀VS布\n");
			printf("You are winner\n");
			return 1;
		}
		break;

	case 3:
		if (b == 1)
		{
			printf("布VS石头\n");
			printf("You are winner\n");
			return 1;
		}
		else if (b == 2)
		{
			printf("布VS剪刀\n");
			printf("Computer is winner!\n");
			return 2;
		}
		break;

	}
}

//电脑出拳
int Computer()
{
	int computer = 0;
	srand((unsigned)time(NULL));
	computer = rand() % 3+1;
	return computer;
}

//用户出拳
int User()
{
	int user = 0;
	printf("输入1为石头——输入2为剪刀——输入3为布\n");
	printf("请出拳\n");
	user = getch();
	user -= 48;
	if (user < 1 || user > 3)
	{
		system("cls");
		printf("输入非法!!!\n请重新输入\n");
		printf("输入1为石头——输入2为剪刀——输入3为布\n");
		user = getch();
		user -= 48;
	}
	return user;
}

int main()
{
	int user_number = 0;
	int computer_number = 0;
	int user_sum = 0;
	int computer_sum = 0;
	printf("本游戏进行五局\n");
	for (int i = 0; i < 5 ; i++)
	{
		printf("--------------------------------------------------------------------------------------------------------\n");
		printf("第%d回合,", i+1);
		printf("目前比分%d	 :	%d\n\n", user_sum, computer_sum);
		user_number = User();
		computer_number = Computer();
		printf("\n用户:");
		show(user_number);
		printf("电脑:");
		show(computer_number);
		printf("\n");
		switch(VS(user_number, computer_number))
		{
		case 1:
			user_sum++;
			break;

		case 2:
			computer_sum++;
			break;
		}
	}
	FinalResult(user_sum, computer_sum);

	return 0;
}

运行错误,也可评论,有空会看尽力解答

标签:computer,猜拳,int,winner,C语言,小游戏,user,printf,return
From: https://blog.csdn.net/2301_80657297/article/details/141091964

相关文章

  • C语言问答进阶--2、C语言简介及基本的输入输出函数
    C语言简介Q:您好,能大体介绍下C语言吗?A:当然可以。C语言是一种计算机语言,它主要被用在系统编程里,可以说,C语言的产生就和操作系统的编写密不可分。【C语言简要历史】1978年由美国电话电报公司(AT&T)的贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchie合著了著......
  • C语言编程题:“非常男女”计划(C语言版)
    1.题目描述展开近来,初一年的xxx小朋友致力于研究班上同学的配对问题(别想太多,仅是舞伴),通过各种推理和实!验,他掌握了大量的实战经验。例如,据他观察,身高相近的人似乎比较合得来。万圣节来临之际,xxx准备在学校策划一次大型的“非常男女”配对活动。对于这次活动的参与者,xx......
  • 嵌入式初学-C语言-十九
    指针的引入为函数修改实参提供支持为动态内存管理提供支持为动态数据及结构提供支持为内存访问提供另一种途径指针的概述内存地址:系统为了内存管理的方便将内存划分为一个个内存单元(一个内存单元占一个字节),并为每一个内存单元进行了编号,内存单元的编号称为该内存单元的地址......
  • 贪吃蛇小游戏(c语言实现,巨细详解,附完整代码)
    文章目录c语言简单实现贪吃蛇(巨细详解,附完整代码)==前言==一、游戏效果及功能实现:1、规则:2、基本功能实现:3、技术要点4、实现思路5、游戏效果呈现二、Win32API介绍1、简单介绍2、控制台程序(Console)cmd命令窗口打开方式:控制cmd控制台长宽度命令title命令(命名)3、vs中的控......
  • C语言(五)-结构体
    C语言(五)-结构体1.结构体定义在编程的时候需要将不同的类型的数据组合成为一个整体,以便于引用。例如,一名学生有学号、姓名、性别、年龄、地址等属性,如果针对学生的学号、姓名、年龄等都单独定义一个变量,那么在有多名学生时,变量就难以分清。为此,C语言提供结构体来管理不同类......
  • Java【案例2-5】 剪刀石头布小游戏
    案例介绍:“剪刀石头布”的游戏相信大家都不陌生,本案例要求编写一个剪刀石头布游戏的程序。程序启动后会随机生成1~3的随机数,分别代表剪刀、石头和布,玩家通过键盘输入剪刀、石头和布与电脑进行5轮的游戏,赢的次数多的一方为赢家。若五局皆为平局,则最终结果判为平局。案例思路: ......
  • C语言入门零基础:6、运算符
    一、运算符分类:        1、赋值运算符:=         2、算术运算符:+-*/%(取余取模)        3、关系运算符:> >= < <= ==!=        4、逻辑运算符:&& ||!        5、其他运算符:++--?: 复合 += -= ......
  • C++入门:C语言到C++的过渡
    前言:C++——为弥补C缺陷而生的语言        C++起源于1979年,当时BjarneStroustrup在贝尔实验室工作,面对复杂软件开发任务,他感到C语言在表达能力、可维护性和可扩展性方面存在不足。        1983年,BjarneStroustrup在C语言基础上添加面向对象编程......
  • C语言动态内存管理超详解
    文章目录1.为什么要有动态内存分配2.malloc和free2.1malloc2.2free3.calloc和realloc3.1calloc3.2realloc4.常见动态内存错误4.1对NULL指针的解引用操作4.2对动态开辟空间的越界访问4.3对非动态开辟内存使用free释放4.4使用free释放一块动......
  • C语言---指针的运算和各种类型的指针
    指针的运算1.指针+1或者指针-1是什么意思?把指针中记录的内存地址,往后或者往前移动一个步长2.什么是步长?跟什么有关?跟数据类型有关Windows64位操作系统:char:移动一个字节short:移动两个字节int:移动四个字节long:移动四个字节longlong:移动八个字节有意义的操作......