金铲铲记牌器(待优化版本)

2024-03-25 05:59
文章标签 优化 版本 金铲 记牌器

本文主要是介绍金铲铲记牌器(待优化版本),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        由于在玩金铲铲的时候每次升到9级或者10级开始d五费卡的时候,我的大脑没法帮我计算d哪个5费卡比较好,所以写了一个5费卡记牌器。(本程序c语言小白所写)

        主要由4个函数组成

1.菜单函数

void menu()
{printf("*****************************************\n");printf("*******  1.使用记牌器    0.exit  ********\n");printf("*****************************************\n");printf("please input a number >:");
}

2.开始函数

void start()
{int input = 0;do{menu();scanf("%d", &input);switch (input){case 1:game();break;case 0:printf("退出程序");break;default:printf("选择错误,请重新选择!\n");}} while (input);
}

3.game函数(内部主要程序)

void game()
{int piece_sub, piece_add, hero_identifier, piece_add_sub;char sign;struct piece hero[10] = { {"1.斯维因",10},{" 2.永恩 ",10},{" 3.瞎子 ",10},{"4.莎弥拉",10},{" 5.鸡哥 ",10},{" 6.奥恩 ",10},{" 7.老头 ",10},{"8.复制器",0}};printf("请输入英雄序号\n请输入符号增加>:'+',减少>:'-'\n请输入增加或者减少数量\n用空格隔开\n\n");display(hero);while (1){scanf("%d %c %d", &hero_identifier, &sign, &piece_add_sub);if (sign == '-')piece_add_sub = -piece_add_sub;else if (sign == '+')piece_add_sub = piece_add_sub;elseprintf("input error,please reenter!\n");hero[hero_identifier - 1].num += piece_add_sub;if (hero[hero_identifier - 1].num > 10|| hero[hero_identifier - 1].num < 0){printf("input error,please reenter!\n");hero[hero_identifier - 1].num -= piece_add_sub;display(hero);continue;}display(hero);}
}

4.显示函数

void display(struct piece hero[])
{printf("Hero name         :  ");for (int i = 0; i < fee_5; i++)//显示名字{printf(" %s  ", hero[i].name);printf("|");}printf("\n");printf("Remaining quantity:  ");for (int i = 0; i < fee_5; i++)//显示数量{if (hero[i].num < 10)printf("    %d个    ", hero[i].num);elseprintf("   %d个    ", hero[i].num);printf("|");}printf("\n");for (int i = 0; i < fee_5-1; i++){if (hero[i].num + hero[7].num >= 9){printf("%s ", hero[i].name);}}printf("可追三星");printf("\n\n");
}

5.最后附上完整代码(有待优化)

#define  _CRT_SECURE_NO_WARNINGS 1 
#include<stdio.h>
#define fee_5 8
struct piece
{char name[20];int num;
};
void display(struct piece hero[])
{printf("Hero name         :  ");for (int i = 0; i < fee_5; i++)//显示名字{printf(" %s  ", hero[i].name);printf("|");}printf("\n");printf("Remaining quantity:  ");for (int i = 0; i < fee_5; i++)//显示数量{if (hero[i].num < 10)printf("    %d个    ", hero[i].num);elseprintf("   %d个    ", hero[i].num);printf("|");}printf("\n");for (int i = 0; i < fee_5-1; i++){if (hero[i].num + hero[7].num >= 9){printf("%s ", hero[i].name);}}printf("可追三星");printf("\n\n");
}
void menu()
{printf("*****************************************\n");printf("*******  1.使用记牌器    0.exit  ********\n");printf("*****************************************\n");printf("please input a number >:");
}
void game()
{int piece_sub, piece_add, hero_identifier, piece_add_sub;char sign;struct piece hero[10] = { {"1.斯维因",10},{" 2.永恩 ",10},{" 3.瞎子 ",10},{"4.莎弥拉",10},{" 5.鸡哥 ",10},{" 6.奥恩 ",10},{" 7.老头 ",10},{"8.复制器",0}};printf("请输入英雄序号\n请输入符号增加>:'+',减少>:'-'\n请输入增加或者减少数量\n用空格隔开\n\n");display(hero);while (1){scanf("%d %c %d", &hero_identifier, &sign, &piece_add_sub);if (sign == '-')piece_add_sub = -piece_add_sub;else if (sign == '+')piece_add_sub = piece_add_sub;elseprintf("input error,please reenter!\n");hero[hero_identifier - 1].num += piece_add_sub;if (hero[hero_identifier - 1].num > 10|| hero[hero_identifier - 1].num < 0){printf("input error,please reenter!\n");hero[hero_identifier - 1].num -= piece_add_sub;display(hero);continue;}display(hero);}
}
void start()
{int input = 0;do{menu();scanf("%d", &input);switch (input){case 1:game();break;case 0:printf("退出程序");break;default:printf("选择错误,请重新选择!\n");}} while (input);
}
int main()
{start();return 0;
}

6.效果图

以下是效果图

希望各位看官能给出更多的建议!

这篇关于金铲铲记牌器(待优化版本)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/844047

相关文章

mac安装nvm(node.js)多版本管理实践步骤

《mac安装nvm(node.js)多版本管理实践步骤》:本文主要介绍mac安装nvm(node.js)多版本管理的相关资料,NVM是一个用于管理多个Node.js版本的命令行工具,它允许开发者在... 目录NVM功能简介MAC安装实践一、下载nvm二、安装nvm三、安装node.js总结NVM功能简介N

Deepseek使用指南与提问优化策略方式

《Deepseek使用指南与提问优化策略方式》本文介绍了DeepSeek语义搜索引擎的核心功能、集成方法及优化提问策略,通过自然语言处理和机器学习提供精准搜索结果,适用于智能客服、知识库检索等领域... 目录序言1. DeepSeek 概述2. DeepSeek 的集成与使用2.1 DeepSeek API

Tomcat高效部署与性能优化方式

《Tomcat高效部署与性能优化方式》本文介绍了如何高效部署Tomcat并进行性能优化,以确保Web应用的稳定运行和高效响应,高效部署包括环境准备、安装Tomcat、配置Tomcat、部署应用和启动T... 目录Tomcat高效部署与性能优化一、引言二、Tomcat高效部署三、Tomcat性能优化总结Tom

java中不同版本JSONObject区别小结

《java中不同版本JSONObject区别小结》本文主要介绍了java中不同版本JSONObject区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录1. FastjsON2. Jackson3. Gson4. org.json6. 总结在Jav

解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)

《解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)》该文章介绍了使用Redis的阻塞队列和Stream流的消息队列来优化秒杀系统的方案,通过将秒杀流程拆分为两条流水线,使用Redi... 目录Redis秒杀优化方案(阻塞队列+Stream流的消息队列)什么是消息队列?消费者组的工作方式每

golang1.23版本之前 Timer Reset方法无法正确使用

《golang1.23版本之前TimerReset方法无法正确使用》在Go1.23之前,使用`time.Reset`函数时需要先调用`Stop`并明确从timer的channel中抽取出东西,以避... 目录golang1.23 之前 Reset ​到底有什么问题golang1.23 之前到底应该如何正确的

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

IDEA如何切换数据库版本mysql5或mysql8

《IDEA如何切换数据库版本mysql5或mysql8》本文介绍了如何将IntelliJIDEA从MySQL5切换到MySQL8的详细步骤,包括下载MySQL8、安装、配置、停止旧服务、启动新服务以及... 目录问题描述解决方案第一步第二步第三步第四步第五步总结问题描述最近想开发一个新应用,想使用mysq