服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - 基于C语言编写一个简单的抽卡小游戏

基于C语言编写一个简单的抽卡小游戏

2022-11-20 16:40每天都要学一点哦 C/C++

这篇文章主要为大家介绍了如何利用C语言实现原神抽卡的小游戏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

小奔最近学了C语言不少的东西,但是想用学到的东西来搞一个小游戏。

不过小奔就不做那些猜数字等小游戏了,虽然很经典,但是可以尝试一下其他比较好玩的。

小奔喜欢玩原神,但它抽卡系统的中奖概率太低了,所以就类似做一个它的抽卡系统吧,不过没有保底功能哦(小奔还不想搞,还要学习新的知识,不过以后熟练了就可能会搞一个),是全角色抽卡,只有角色没有武器的,可以十连抽,没有保底功能,抽中的概率只有1/100

效果图展示

开始的界面

基于C语言编写一个简单的抽卡小游戏

输入1

没中

基于C语言编写一个简单的抽卡小游戏

中了

基于C语言编写一个简单的抽卡小游戏

输入10

基于C语言编写一个简单的抽卡小游戏

输入0

基于C语言编写一个简单的抽卡小游戏

实现代码

我创建了两个.c源文件,一个.h头文件

test4.26.c

#define _CRT_SECURE_NO_WARNINGS
#include"game.h"

int main()
{
	srand((unsigned)time(NULL));//随机赋值
	while (1)
	{
		int choose = 0;
		choose = Cho();
		
		switch (choose)
		{
		   case 1:
		   {
			   num1:
			   //许愿进行
			   wish();
			   break;
		   }
		   case 0:
		   {
			   num2:
			   goto over;//结束程序
		   }
		   case 10:
		   {
			   num3:
			   int i = 0;
			   for (i = 0; i < 10; i++)
			   {
				   wish();
			   }
			   break;

		   }
		   default:
		   {
		   swi:
			   //未能识别选项,请重新输入
			   printf("未能识别选项,请重新输入

");
			   int again = 0;
			   again = Cho();

			 if (again == 1)
				goto num1;//返回case 1
			 else if (again == 0)
				goto num2;//返回case 0
			 else if (again == 10)
				 goto num3;//返回case 10
			 else
			    goto swi;//重复default
		   }
		}
	}
	over:
	return 0;
}

许愿.c

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

void wish()
{
	int random_num = rand() % 440 ;
	//修改它可以改变概率,当前概率是1/100
	if (1 == random_num)
	{
		printf("★☆★☆★刻晴
");
	}
	else if (2 == random_num)
	{
		printf("★☆★☆★胡桃
");
	}
	else if (3 == random_num)
	{
		printf("★☆★☆★七七
");
	}
	else if (4 == random_num)
	{
		printf("★☆★☆★钟离
");
	}
	else if (5 == random_num)
	{
		printf("★☆★☆★卢老爷
");
	}
	else if (6 == random_num)
	{
		printf("★☆★☆★宵宫
");
	}
	else if (7 == random_num)
	{
		printf("★☆★☆猫猫
");
	}
	else if (8 == random_num)
	{
		printf("★☆★☆★琴
");
	}
	else if (9 == random_num)
	{
		printf("★☆★☆安柏
");
	}
	else if (10 == random_num)
	{
		printf("★☆★☆丽莎
");
	}
	else if (11 == random_num)
	{
		printf("★☆★☆凯亚
");
	}
	else if (12 == random_num)
	{
		printf("★☆★☆芭芭拉
");
	}
	else if (13 == random_num)
	{
		printf("★☆★☆班尼特
");
	}
	else if (14 == random_num)
	{
		printf("★☆★☆★不干正事的巴巴托斯
");
	}
	else if (15 == random_num)
	{
		printf("★☆★☆★小可莉
");
	}
	else if (16 == random_num)
	{
		printf("★☆★☆雷泽
");
	}
	else if (17 == random_num)
	{
		printf("★☆★☆★莫娜
");
	}
	else if (18 == random_num)
	{
		printf("★☆★☆砂糖
");
	}
	else if (19 == random_num)
	{
		printf("★☆★☆菲谢尔
");
	}
	else if (20 == random_num)
	{
		printf("★☆★☆诺艾尔
");
	}
	else if (21 == random_num)
	{
		printf("★☆★☆★阿贝多
");
	}
	else if (22 == random_num)
	{
		printf("★☆★☆★优菈
");
	}
	else if (23 == random_num)
	{
		printf("★☆★☆罗莎莉亚
");
	}
	else if (24 == random_num)
	{
		printf("★☆★☆★魈
");
	}
	else if (25 == random_num)
	{
		printf("★☆★☆北斗
");
	}
	else if (26 == random_num)
	{
		printf("★☆★☆凝光
");
	}
	else if (27 == random_num)
	{
	     printf("★☆★☆香菱
");
	}
	else if (28 == random_num)
	{
	printf("★☆★☆重云
");
	}
	else if (29 == random_num)
	{
	printf("★☆★☆行秋
");
	}
	else if (30 == random_num)
	{
	printf("★☆★☆★达达利亚
");
	}
	else if (31 == random_num)
	{
	printf("★☆★☆辛焱
");
	}
	else if (32 == random_num)
	{
	printf("★☆★☆★雷电将军
");
	}
	else if (33 == random_num)
	{
	printf("★☆★☆★神里绫华
");
	}
	else if (34 == random_num)
	{
	printf("★☆★☆★枫原万叶
");
	}
	else if (35 == random_num)
	{
	printf("★☆★☆早柚
");
	}
	else if (36 == random_num)
	{
	printf("★☆★☆九条裟罗
");
	}
	else if (37 == random_num)
	{
	printf("★☆★☆★心海
");
	}
	else if (38 == random_num)
	{
	printf("★☆★☆托马
");
	}
	else if (39 == random_num)
	{
	printf("★☆★☆五郎
");
	}
	else if (40 == random_num)
	{
	printf("★☆★☆★荒泷一斗
");
	}
	else if (41 == random_num)
	{
	printf("★☆★☆★八重神子
");
	}
	else if (42 == random_num)
	{
	printf("★☆★☆★神里绫人
");
	}
	else if (43 == random_num)
	{
	printf("★☆★☆久岐忍
");
	}
	else if (44 == random_num)
	{
	printf("★☆★☆夜兰
");
	}
	else
		printf("非酋
");

}

int Cho()
{
	int a = 0;
	printf("
|-----------------|
");
	printf("|输入1开始单抽    |
");
	printf("|输入10开始十连抽 |
");
	printf("|输入0结束游戏    |
");
	printf("|-----------------|
");
	printf("是否开始许愿:>");
	scanf("%d", &a);
	return a;
}

game.h

#pragma once

#include<stdio.h>
#include <time.h>
#include <stdlib.h>

void wish();
//许愿运行

int Cho();
//输入是否进行游戏

我写的这个小游戏还很粗糙,goto用的太多了,显得有点乱,可读性不太好,不过才开始学,进步空间还是很大的,我们继续加油,未来可期

以上就是基于C语言编写一个简单的抽卡小游戏的详细内容,更多关于C语言抽卡游戏的资料请关注服务器之家其它相关文章!

原文地址:https://blog.csdn.net/iqrmshrt/article/details/124439825

延伸 · 阅读

精彩推荐
  • C/C++C++的命名空间详解

    C++的命名空间详解

    这篇文章主要介绍了C++编程中的命名空间基本知识讲解,包括对C++中内联命名空间新特性的介绍,需要的朋友可以参考下...

    透明水晶4142022-01-07
  • C/C++C++ 二叉树的实现超详细解析

    C++ 二叉树的实现超详细解析

    二叉树可以简单理解为对于一个节点来说,最多拥有一个上级节点,同时最多具备左右两个下级节点的数据结构。本文将详细介绍一下C++中二叉树的实现和...

    程序猿教你打篮球11732022-10-27
  • C/C++举例讲解C语言对归并排序算法的基础使用

    举例讲解C语言对归并排序算法的基础使用

    这篇文章主要介绍了C语言对归并排序算法的使用,归并排序算法的平均事件复杂度为(n\log n),需要的朋友可以参考下...

    飞翔的猫咪5192021-04-01
  • C/C++浅谈C++内存分配及变长数组的动态分配

    浅谈C++内存分配及变长数组的动态分配

    下面小编就为大家带来一篇浅谈C++内存分配及变长数组的动态分配。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    C++教程网3642021-04-15
  • C/C++c++ 指针与引用的区别介绍及使用说明

    c++ 指针与引用的区别介绍及使用说明

    指针与引用看上去完全不同(指针用操作符*和->,引用使用操作符.),但是它们似乎有相同的功能,感兴趣的朋友可以了解下啊,或许本文对你有所帮助,...

    C++教程网1672020-11-17
  • C/C++C语言中的参数传递机制详解

    C语言中的参数传递机制详解

    这篇文章主要介绍了C语言中的参数传递机制,C语言中函数参数的传递有:值传递、地址传递、引用传递这三种形式。下面我们详细探讨下...

    zhiheng11102021-05-07
  • C/C++深入浅析C语言与C++的区别与联系

    深入浅析C语言与C++的区别与联系

    这篇文章主要为大家介绍了深入的分析了C语言与C++的区别与联系,文中通过详细的示例进行了对比,以便大家更容易的看懂理解,有需要的朋友可以借鉴参...

    程序媛张小妍5342022-02-25
  • C/C++VSCode (Visual Studio Code) V1.43.0下载并设置成中文语言的方法

    VSCode (Visual Studio Code) V1.43.0下载并设置成中文语言的方法

    Visual Studio Code是一款免费开源的现代化轻量级代码编辑器,支持语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,...

    ruisi_lucky7992021-08-30