我的第一个C程序:冒险岛上星
第一个程序
- 冒险岛上星强化简介
- 成功率:成功星星+1,从11星开始失败则-1,最低为10星
- 花费:每次强化所需的费用
- 破坏率:从12-13开始会有爆炸率,装备爆炸则重新从12开始
- 以下完全未优化的源代码以及包括各项数据
#include<stdio.h>
#include<time.h> //使用随机数需要引入的头文件/*上星程序
10-11
成功率50%
花费4448200
破坏率011-12
成功率45%
花费5625900
破坏率012-13
成功率40%
花费6982900
破坏率0.6%13-14
成功率35%
花费8529400
破坏率1.3%14-15
成功率30%
花费10275700
破坏率1.4%
*/int star = 10;
int tim = 0;
int cost = 0;int main(void)
{srand(time(NULL));while(star<15){switch (star){case 10:{int ran = rand() % 1000;printf("10:%d\n", ran);if(ran<500){star++;tim++;cost += 4448200;}else{tim++;cost += 4448200;printf("s10:%d\n", star);continue;}}case 11:{int ran = rand() % 1000;printf("11:%d\n", ran);if (ran < 450){star++;tim++;cost += 5625900;}else{tim++;cost += 5625900;star--;if (star <= 10)star = 10;printf("s11:%d\n", star);continue;}}case 12:{int ran = rand() % 1000;printf("12:%d\n", ran);if (ran <400){star++;tim++;cost += 6982900;}else if (ran > 983){star = 12;tim++;cost += 6982900;continue;}else{tim++;cost += 6982900;star--;if (star <= 10)star = 10;printf("s12:%d\n", star);continue;}}case 13:{int ran = rand() % 1000;printf("13:%d\n", ran);if (ran < 350){star++;tim++;cost += 8529400;}else if (ran > 986){star = 12;tim++;cost += 8529400;continue;}else{tim++;cost += 8529400;star--;if (star <= 10)star = 10;printf("s13:%d\n", star);continue;}}case 14:{int ran = rand() % 1000;printf("14:%d\n", ran);if (ran <300){star++;tim++;cost += 10275700;}else if (ran > 985){star = 12;tim++;cost += 10275700;continue;}else{tim++;cost += 10275700;star--;if (star <= 10)star = 10;printf("s14:%d\n", star);continue;}}}}printf("总次数:%d 总花费:%d", tim, cost);return 0;
}
- 下面是我目前能尽量做的优化,是我学得太粗还是忘的太快?感觉还是一堆很烂的代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<time.h>
#include<stdlib.h>/*上星程序
10-11
成功率50%
花费4448200
破坏率011-12
成功率45%
花费5625900
破坏率012-13
成功率40%
花费6982900
破坏率0.6%13-14
成功率35%
花费8529400
破坏率1.3%14-15
成功率30%
花费10275700
破坏率1.4%
*///先声明定义一些全局变量
int a = 10;
int b = 0;
int c = 0;
int d = 0;int* star = &a;
int* tim = &b;
int* cost = &c;
int* ran = &d;//先定义一个自定义函数
int star_up(int succ, int boom,int cos)
{int ra = rand() % 1000;printf(" succ:%d boom:%d 本次花费:%d\n", succ, boom, cos);printf("star:%d rand:%d 次数:%d 已经花费:%d\n", *star,ra,*tim,*cost);if (ra < succ){*star+=1;*tim+=1;*cost += cos;return 1;}else if (ra > boom){*star = 12;*tim+=1;*cost += cos;return -1;}else{*tim+=1;*cost += cos;*star-=1;if (*star <= 10)*star = 10;return 0;}}int main(void)
{srand(time(NULL));while (*star < 15){switch (*star){case 10:{int ret = star_up(500, 1001,4448200);if (ret == 1)printf("succes\n");else if (ret == -1){printf("boom\n");continue;}else{printf("fail\n");continue;}}case 11:{int ret = star_up(450, 1001,5625900);if (ret == 1)printf("succes\n");else if (ret == -1){printf("boom\n");continue;}else{printf("fail\n");continue;}}case 12:{int ret = star_up(400, 994,6982900);if (ret == 1)printf("succes\n");else if (ret == -1){printf("boom\n");continue;}else{printf("fail\n");continue;}}case 13:{int ret = star_up(350, 987,8529400);if (ret == 1)printf("succes\n");else if (ret == -1){printf("boom\n");continue;}else{printf("fail\n");continue;}}case 14:{int ret=star_up(300, 984,10275700);if (ret == 1)printf("succes\n");else if (ret == -1){printf("boom\n");continue;}else{printf("fail\n");continue;}}}}printf("总次数:%d 总花费:%d", *tim, *cost);return 0;
}
我的第一个C程序:冒险岛上星相关推荐
- [转帖]一个老程序员的心理话(三)
二.漫长的理论学习时期 1.从电脑培训班开始 我毕业后的第一个工作单位是一个非常差的企业,我在那儿见识了几乎所有中国差的企 业的弊端:人浮于事,拉帮结派,暗箭伤人,损公肥私--.可以想见,在这样的企业 ...
- 第一个spring程序
第一个spring程序: 第一步:导入jar包. 新建maven项目: <dependency><groupId>org.springframework</groupId ...
- 快速搭建第一个Mybatis程序
一.简介 1.初识Mybatis 2.持久化 3.持久层 4.为什么需要Mybatis 二.第一个Mybatis程序 1.搭建环境 2.创建一个新模块 3.编写代码 4.Junit测试 三.可能遇到的 ...
- Linux上运行一个c程序
b站的视频链接:Linux虚拟机运行c程序_哔哩哔哩_bilibili希望对大家有所帮助,不对的地方还请多多指教!https://www.bilibili.com/video/BV18Q4y1r7st ...
- Go:分布式学习利器(1) -- 开发环境搭建 + 运行第一个go程序
文章目录 为什么要学习 go 开发环境搭建 -- MAC 运行第一个go程序 go 函数的返回值设置 go 函数的命令行参数 为什么要学习 go 在如下几个应用场景的需求下产生了go: 超大规模分布式 ...
- 用java实现一个计算器程序_1.2第一个java程序——hello world
第一个java程序--hello world 实现一个java程序,主要有三个步骤:1.编写源代码,2.编译源代码,3.运行.java的源代码必须先编译,然后才能由JVM解析执行.所以我们程序员第一步 ...
- C(第一个C程序) 和 C++ (第一个C++程序)对比碰撞
个人博客首页(点击查看详情) -- https://blog.51cto.com/11495268 1.简介 C++ 是对 C 的继承.扩展,但从语言角度来说,这是 两种变成语言,就一定存在不同,本文 ...
- 区块链c端应用小程序_区块链如何真正起作用? 我建立了一个应用程序向您展示。...
区块链c端应用小程序 by Sean Han 通过肖恩·韩 区块链如何真正起作用? 我建立了一个应用程序向您展示. (How does blockchain really work? I built ...
- 如何开发属于自己的第一个Java程序
学习java技术都是循序渐进的,搭建好了Java开发环境之后,下面就来学习一下如何开发Java程序.为了让初学者更好地完成第一个Java程序,接下来小编通过几个步骤进行逐一讲解. 1.编写Java源文 ...
最新文章
- Fragment 和 FragmentActivity的使用
- 神经网络反向传播算法
- 世界围棋人机大战、顶峰对决第一盘:围棋世界冠军Lee Sedol(李世石,围棋职业九段)对战Google DeepMind AlphaGo围棋程序,Google AlphaGo首战告捷
- 人工智能:第一章 绪 论
- maximo 自定义高级数据选择对话框(非表域实现)
- python组合数据类型实验_实验七 组合数据类型
- 交付铁三角的故事之兵戎相见
- 和平精英连接服务器未响应,和平精英触控失灵怎么回事 操作触屏有时候没反应介绍...
- compile php with openssl on mac osx error 填坑
- linux PS1 变量设置
- 下载网页 TS视频并自动合成视频
- DP算法——打家劫舍系列
- 计算机派位志愿填报技巧,小升初电脑派位操作流程详解
- 浅谈三极管、运放、MOS管驱动 的常见电路
- 即试即买丨帕克西首推假发自动售卖机,3D发型试戴变革假发购物体验!
- rtmp/rtsp测试地址 2019/11/22日亲测可用
- 未来计算机 军事,【军事科技】未来我国将建成和发明最具影响力的八大军事科技!...
- oracle mapviewer 11g安装使用,Oracle MapViewer11g安装与部署
- Race_Condition实验
- java 熔断器模式_Spring Cloud Hystrix——熔断器