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

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

相关文章

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

SpringBoot首笔交易慢问题排查与优化方案

《SpringBoot首笔交易慢问题排查与优化方案》在我们的微服务项目中,遇到这样的问题:应用启动后,第一笔交易响应耗时高达4、5秒,而后续请求均能在毫秒级完成,这不仅触发监控告警,也极大影响了用户体... 目录问题背景排查步骤1. 日志分析2. 性能工具定位优化方案:提前预热各种资源1. Flowable

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

一文详解SpringBoot响应压缩功能的配置与优化

《一文详解SpringBoot响应压缩功能的配置与优化》SpringBoot的响应压缩功能基于智能协商机制,需同时满足很多条件,本文主要为大家详细介绍了SpringBoot响应压缩功能的配置与优化,需... 目录一、核心工作机制1.1 自动协商触发条件1.2 压缩处理流程二、配置方案详解2.1 基础YAML