☆『蓝辙星痕』☆
C++自制游戏
后面有关C++游戏的东西都会在这个号上发。QwQ
时间比较紧,就写了一点(指600多行)
写这个的原因是学校信息课上要做的题都做完了,然后没网,于是没法摸鱼,所以我就编了个游戏自娱自乐(bushi
为了准备CSP土鸡组普及组…所以没什么时间写
目前功能不是很完善,大多数函数都没编好,会努力更新的QwQ
给个资瓷呗~
主要功能
额,就是一个类似精灵宝可梦的游戏,但是你从奇怪的剧情中估计看不出来。
剧情写的很尬,请见谅。
先发一下,免得以后忘了。。。
代码
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <windows.h>
using namespace std;
string p_name; // player名字
int w_t = 40; // 等待时间
int has_num; // 拥有的精灵数量
int lineup_num; // 阵容中的精灵数量
struct move{ // 招式
string name; // 名称
string info; // 介绍
string sx; // 属性
int kind; // 特殊状态的类型:0表示增强攻击 1表示增强防御 2表示特殊状态攻击效果 3表示特殊状态限制效果
int attack; // 攻击力(直接)最弱状态,真实攻击 = 攻击力 × 等级 / 3 下取整
int add_attack; // 攻击力(增强)
int defense; // 防御力(增强)
int pro_spe; // 施加特殊状态几率
string spe; // 施加的特殊状态
int keep; // 特殊状态持续时间
}all_move[100];
struct spirit{
string name; // 精灵名称
bool has_pet_name = false; // 是否拥有昵称
string pet_name; // 昵称
string info; // 信息
string sx; // 属性
int lev; // 等级
int ne; // 进化的下一只精灵的编号 (0表示没有下一个进化形态)
int change_lev; // 进化的等级(最终形态为100)
int hp; // 100级最高HP
}all_spi[100],lineup_spi[100],has_spi[100],enemy_spi[100];
struct things{
int money = 0; // 精灵币
int spi_ball = 0; // 精灵球数量
/*特殊物品*/
int tj = 0; // 图鉴
int sm_map = 0; // 水沫镇地图
}p_thing;
/*----------------------- 输 出 函 数 -----------------------*/
void endl(int t){
for(int i = 1;i <= t;i ++) cout<<endl;
}
void print(string out){ // 延时输出
int wait_time = w_t;
for(int i = 0;i < out.size();i ++){
if(GetAsyncKeyState(VK_RETURN)) wait_time = 0;
cout<<out[i];
Sleep(wait_time);
}
}
void print(string out,int t){ // 居中延时输出
int wait_time = w_t;
for(int i = 0;i < out.size();i ++){
if(GetAsyncKeyState(VK_RETURN)) wait_time = 0;
cout<<out[i];
Sleep(wait_time);
}
}
void gotoxy(HANDLE hOut,int x,int y){ // 移动光标
COORD pos;
pos.X = x;
pos.Y = y;
SetConsoleCursorPosition(hOut,pos);
}
void print_middle(char str[],int y){ // 居中输出
HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO bInfo;
GetConsoleScreenBufferInfo(hOutput,&bInfo);
int dwSizeX = bInfo.dwSize.X,dwSizey = bInfo.dwSize.Y;
int len = strlen(str);
int x = dwSizeX / 2 - len / 2;
gotoxy(hOutput,x,y);
print(str,10);
}
void print_right(char str[],int y){ // 右对齐输出
HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO bInfo;
GetConsoleScreenBufferInfo(hOutput,&bInfo);
int dwSizeX = bInfo.dwSize.X,dwSizey = bInfo.dwSize.Y;
int len = strlen(str);
int x = dwSizeX - len - 2;
gotoxy(hOutput,x,y);
print(str,10);
}
/*----------------------- 初 始 化 函 数 -----------------------*/
void init_move(){
int k = 1;
all_move[k].name = "火花";
all_move[k].info = "向对手发射细小的火焰来攻击的招式,有10%的几率使目标陷入灼伤状态。";
all_move[k].attack = 5;
all_move[k].pro_spe = 10;
all_move[k].spe = "灼烧";
k ++;
all_move[k].name = "泡沫";
all_move[k].info = "向对手喷射无数的水泡攻击,有10%的几率降低对手的速度。";
all_move[k].attack = 5;
all_move[k].pro_spe = 10;
all_move[k].spe = "速度降低";
k ++;
all_move[k].name = "藤鞭";
all_move[k].info = "将草元素凝聚成藤鞭抽向对手,有10%的几率使目标陷入眩晕状态。";
all_move[k].attack = 5;
all_move[k].pro_spe = 10;
all_move[k].spe = "眩晕";
k ++;
}
void init_spirit(){ // 初始精灵信息
all_spi[1].name = "小火龙";
all_spi[1].sx = "火";
all_spi[1].info = "生下来的时候,尾巴上就有火焰在燃烧。喜欢热热的东西。据说当它被雨淋湿的时候,尾巴的末端会冒出烟来。";
all_spi[1].ne = 2;
all_spi[1].change_lev = 18;
all_spi[2].name = "火颚龙";
all_spi[2].sx = "火";
all_spi[2].info = "有着像火焰一般的性格,一直在寻找战斗的对手,不打赢的话热血就平静不下来。会用燃烧的尾巴四处挥动,会使周围的温度渐渐变高,并让敌人觉得痛苦,";
all_spi[2].ne = 3;
all_spi[2].change_lev = 36;
all_spi[3].name = "火焰爆龙";
all_spi[3].sx = "火 龙";
all_spi[3].info = "能够喷出猛烈的火焰,仿佛连岩石都能烤焦。有时会引发森林火灾。能用翅膀飞到距地面1400米的高度。会吐出高温火焰。";
all_spi[3].ne = 0;
all_spi[3].change_lev = 100;
all_spi[1].hp = all_spi[2].hp = all_spi[3].hp = 420;
all_spi[4].name = "嘎嘎鸭";
all_spi[4].sx = "水";
all_spi[4].info = "体内蕴含着神奇的力量,智力很高,据说进化到最终形态时拥有与人相同的智力。";
all_spi[4].ne = 5;
all_spi[4].change_lev = 16;
all_spi[5].name = "波音鸭";
all_spi[5].sx = "水";
all_spi[5].info = "擅长游泳。能在湖泊之类的地方看到它优雅的身姿。当额头闪耀光芒时就能使出神通力。";
all_spi[5].ne = 6;
all_spi[5].change_lev = 38;
all_spi[6].name = "神音鸭皇";
all_spi[6].sx = "水 幻";
all_spi[6].info = "拥有惊人的智力,热爱学习,游动的速度在宝可梦里是最快的。能用声音迷惑对手。";
all_spi[6].ne = 0;
all_spi[6].change_lev = 100;
all_spi[4].hp = all_spi[5].hp = all_spi[6].hp = 450;
all_spi[7].name = "草苗蜗";
all_spi[7].sx = "草";
all_spi[7].info = "沐浴着阳光,进行光合作用,用全身进行光合作用。甲壳是泥土变硬后形成的。";
all_spi[7].ne = 8;
all_spi[7].change_lev = 20;
all_spi[8].name = "树叶蜗牛";
all_spi[8].sx = "草";
all_spi[8].info = "阳光越是照耀,活力越是充沛。如果口渴,壳上的叶子就会枯萎。";
all_spi[8].ne = 9;
all_spi[8].change_lev = 35;
all_spi[9].name = "巨林蜗牛";
all_spi[9].sx = "草 土";
all_spi[9].info = "生活在森林中的水边。白天会去森林的外面。壳上树木所生的果实滋味甘甜且营养丰富,十分美味。";
all_spi[9].ne = 0;
all_spi[9].change_lev = 100;
all_spi[7].hp = all_spi[8].hp = all_spi[9].hp = 530;
all_spi[10].name = "麻小雀";
all_spi[10].sx = "飞";
all_spi[10].info = "不喜欢战斗,经常藏身在树冠中,抓取小虫做为食物。";
all_spi[10].ne = 11;
all_spi[10].change_lev = 45;
all_spi[11].name = "土石雀";
all_spi[11].sx = "飞 土";
all_spi[11].info = "进化后拥有了土系力量,个性温顺,但遇到敌人时,会拍动翅膀丢洒沙砾,来驱退敌人。";
all_spi[11].ne = 0;
all_spi[11].change_lev = 100;
all_spi[10].hp = all_spi[11].hp = 260;
all_spi[12].name = "小火猴";
all_spi[12].sx = "火";
all_spi[12].info = "在悬崖峭壁间也能穿梭自如。生活在岩山之上,但也会在树林活动。睡觉时会将火焰熄灭。";
all_spi[12].ne = 13;
all_spi[12].change_lev = 17;
all_spi[13].name = "强火猴";
all_spi[13].sx = "火";
all_spi[13].info = "能熟练控制尾部火焰的大小,以自己擅长的距离进行战斗。";
all_spi[13].ne = 14;
all_spi[13].change_lev = 38;
all_spi[14].name = "爆炎火猴";
all_spi[14].sx = "火";
all_spi[14].info = "性格像头上燃烧的火焰一样激烈。在速度方面无可匹敌。";
all_spi[14].ne = 0;
all_spi[14].change_lev = 100;
all_spi[12].hp = all_spi[13].hp = all_spi[14].hp = 380;
all_spi[15].name = "白狼犬";
all_spi[15].sx = "恶";
all_spi[15].info = "全身披有白灰色的毛,面部及四肢均有深灰色的纹理。突出的虎牙十分锋利。天赋异禀,在较早的时间内就能完成进化。";
all_spi[15].ne = 16;
all_spi[15].change_lev = 15;
all_spi[16].name = "暗银狼";
all_spi[16].sx = "恶";
all_spi[16].info = "发出凶猛的吼声并压低身体的时候,就是它准备发动攻击的前兆。会用锋利的尖牙一口咬住对手。身体呈银灰色,瞳孔呈红色。";
all_spi[16].ne = 17;
all_spi[16].change_lev = 26;
all_spi[17].name = "暗月银狼王";
all_spi[17].sx = "恶 暗";
all_spi[17].info = "进化之后拥有了黑暗的能力,红色瞳孔中散发着恐怖的杀气。";
all_spi[17].ne = 0;
all_spi[17].change_lev = 100;
all_spi[15].hp = all_spi[16].hp = all_spi[17].hp = 380;
}
void init(){
init_move();
init_spirit();
}
/*----------------------- 游 戏 函 数 -----------------------*/
void desc(int k){ // 介绍精灵(图鉴功能)
print("精灵名称:");
print(all_spi[k].name);
endl(1);
print("属性:");
print(all_spi[k].sx);
endl(1);
print("精灵信息:");
print(all_spi[k].info);
endl(1);
}
void change_hp(int k){ // 调整精灵HP值(血量)
int tmp_hp = has_spi[k].hp; // 计算HP
int level = has_spi[k].lev;
}
void add_spi(int k,int level){ // 将精灵添加到已有精灵列表
has_spi[++ has_num] = all_spi[k];
has_spi[has_num].lev = level;
}
void add_lineup(int k){ // 将精灵加入对战阵容
// 阵容最多5只精灵
lineup_spi[++ lineup_num] = has_spi[k];
}
void fight(spirit enemy_spi[]){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
print_middle("【对战】",1);
endl(4);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED |FOREGROUND_GREEN | FOREGROUND_BLUE);
}
void loading(int x){ // 加载界面
// 等待编写
// x为1等待时间短
// x为2等待时间长
system("cls");
}
void welcome(){ // 欢迎界面
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |FOREGROUND_BLUE); // 青色
print_middle("☆『蓝辙星痕』☆",1);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_BLUE); // 粉色
print_middle("『万物行动之源』",4);
print_middle("『把荣耀渗透于全宇宙』",6);
print_middle("『在各地发光 或多或少』",8);
print_middle("『因地而异』",10);
print_middle("『我曾去过那受光最多的天体』",12);
print_middle("『看到了回到人间的人』",14);
print_middle("『无法也无力重述的事物』",16);
print_middle("『生命·灵魂』",18);
endl(1);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED |FOREGROUND_GREEN | FOREGROUND_BLUE); // 白色
print("(如发现居中字体出现重合现象,请调整控制台大小。)");
endl(1);
print("请登录(若没有发现存档自动注册)");
endl(1);
print("输入你的用户名:(请不要输入空格或其他特殊符号)");
endl(1);
cin>>p_name;
print("输入成功,您的用户名是:");
print(p_name);
Sleep(200);
}
void des_tips(){
system("cls");
print_middle("【温馨提示】",1);
endl(3);
print("1. 如果觉得剧情输出速度过慢可以按Enter键跳过此行。");
endl(2);
print("2. 括号含义:");
endl(1);
print(" ·〖〗代表剧情发生的大概范围。");
endl(1);
print(" ·〔〕代表剧情发生的具体位置。");
endl(1);
print(" ·『』代表该段落为诗句。(在游戏开始界面也有出现)");
endl(2);
print("3. 段落位置:");
endl(1);
print(" ·普通情况(即左对齐)为剧情或提示语句。");
endl(1);
print(" ·右对齐为剧情发生时间。");
endl(1);
print(" ·居中为诗句或游戏开始界面的标题。");
endl(1);
print("4. 关于剧情:不要在意任何细节和标明(bushi的语句");
endl(3);
print("输入1以返回:");
endl(1);
int ans = 0;
scanf("%d",&ans);
while(ans != 1){
print("输入失败,请再次输入:");
endl(1);
}
endl(1);
print("输入成功,正在返回");
Sleep(100);
return ;
}
void fcd(){ // 初始菜单
Sleep(50);
system("cls");
print("游戏加载成功");
endl(1);
print("现在你想要:");
print("1.进入游戏 2.等待10秒进入");
endl(1);
print("请输入:");
int ans;
scanf("%d",&ans);
while(ans != 1 && ans != 2){
print("输入失败,请再次输入:");
scanf("%d",&ans);
}
if(ans == 1){
print("输入成功,正在进入");
return ;
}
else {
print("正在等待...");
Sleep(100);
return ;
}
}
void background(){
system("cls");
fcd();
loading(1);
des_tips();
system("cls");
}
void l_bag(){
system("cls");
print_middle("【背包】",1);
endl(4);
print("正在编写中,暂时无法查看");
endl(1);
print("输入1返回");
int ans;
scanf("%d",&ans);
while(ans != 1){
print("输入失败,请再次输入:");
scanf("%d",&ans);
}
}
void l_spi(){
system("cls");
print_middle("【精灵列表】",1);
endl(4);
print("正在编写中,暂时无法查看");
endl(1);
print("输入1返回");
int ans;
scanf("%d",&ans);
while(ans != 1){
print("输入失败,请再次输入:");
scanf("%d",&ans);
}
if(ans == 1) return ;
}
void cd(){ // 菜单
system("cls");
print_middle("【菜单界面】",1);
endl(4);
print("现在你想要:");
endl(1);
print("1.查看背包 2.查看拥有精灵 3.返回游戏") ;
endl(1);
int ans;
scanf("%d",&ans);
while(ans != 1 && ans != 2 && ans != 3){
print("输入失败,请再次输入.");
endl(1);
scanf("%d",ans);
}
print("输入成功");
if(ans == 1){
l_bag();
return ;
}
else if(ans == 2){
l_spi();
return ;
}
else return ;
}
void qhqj(){
endl(3);
print("正在切换情节");
endl(1);
print("你想要:");
endl(1);
print("1.切换情节 2.进入菜单");
endl(1);
int in;
scanf("%d",&in);
while(in != 1 && in != 2){
print("输入失败,请再次输入:");
scanf("%d",&in);
}
if(in == 1){
print("切换情节中");
Sleep(100);
system("cls");
}
else{
print("正在进入菜单");
Sleep(100);
cd();
}
}
/*----------------------- 剧 情 函 数 -----------------------*/
void bc_jq1(){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
print_middle("〖未知星系〗",1);
endl(1);
print_middle("〔YYSJ114514号子舰〕",2);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN); // 黄色
print_right("灵星纪年 2314年5月26日",3);
endl(2);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED |FOREGROUND_GREEN | FOREGROUND_BLUE);
print_middle("『去往所有命运 风暴之中的...』",4);
print_middle("『你来自火山炙热 与...的深海』",6);
print_middle("『生本就是意外 硬币反选为尘埃』",8);
print_middle("『为侥幸 可以相爱 造了船 移着山』",10);
print_middle("『出征是古老的宿命 人将...踏入夜晚』",12);
print_middle("『只有我...』",14);
endl(2);
print("无尽的“沙沙”声...");
endl(1);
print("门开了...");
endl(3);
print("墨:你的老收音机又坏了?我看看吧。");
endl(2);
print("垠:才刚坏呢,你怎么每次都这么准时?不过这台收音机也该换了,太容易坏了,连播一首堔的歌都断断续续的。");
endl(2);
print("墨没有搭理他,拿起收音机就转身离去了...");
endl(2);
print("过了一会儿...");
endl(2);
print("门开了...");
endl(3);
print("垠:这么快就修好了?你修东西的技术也是越来越好了呢。");
endl(2);
print("墨:不是的,这次不是收音机的问题,我们的飞船,驶入了无信号区域。");
endl(2);
print("垠:什么?!那赶快驶回去啊!");
endl(2);
print("墨:没时间了,刚刚你播的音乐是缓存下来的一部分,所以能播,我们离开信号区域估计已经有一天了,根本无法推算出原本的航线。这里,没有任何人能救得了我们。");
endl(2);
print("垠:那...没有任何办法了?");
endl(2);
print("墨:也许吧,现在只能任其发展,自求多福吧。") ;
endl(2);
print("舷窗外浩瀚的宇宙仿佛梦魇狞笑着,垠无力地瘫倒在座椅上...");
qhqj();
}
void bc_jq2(){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
print_middle("〖未知星系〗",1);
endl(1);
print_middle("〔星鹰号母舰〕",2);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN); // 黄色
print_right("灵星纪年 2314年5月27日",3);
endl(3);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED |FOREGROUND_GREEN | FOREGROUND_BLUE);
print("炽:什么?你说YYSJ114514号子舰不见了?");
endl(2);
print("翎:是的,舰长,据判断应该是是驶离了信号区域。");
endl(3);
print("炽望向星空,努力地使自己平静下来。");
endl(3);
print("炽:算了,这么臭的子舰,不要也罢。(bushi");
endl(2);
print("炽:持续搜索子舰的坐标,一有发现我们就展开救援。");
endl(2);
print("翎:是,舰长。");
qhqj();
}
void bc_jq3(){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
print_middle("〖未知星系〗",1);
endl(1);
print_middle("〔YYSJ114514号子舰〕",3);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED |FOREGROUND_GREEN | FOREGROUND_BLUE);
endl(2);
print_middle("『不要再去形容我』",4);
print_middle("『不要再去留恋我』",6);
print_middle("『不要再去塑造我』",8);
print_middle("『别怪我』",10);
print_middle("『飞入黑暗的漩涡』",12);
print_middle("『划过宇宙的星河』",14);
print_middle("『载着肉身的躯壳』",16);
print_middle("『漫行着』",18);
print_middle("『飞入属于你的王国』",20);
print_middle("『燃烧所有你的余火』",22);
endl(4);
print("不知多少年过去,垠和墨也渐渐适应了孤独的生活,未完成的救赎任务,也依旧执行着。");
qhqj();
}
void bc_jq4(){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
print_middle("〖太阳系〗",1);
endl(1);
print_middle("〔地球附近〕",2);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN); // 黄色
print_right("灵星纪年 2316年9月19日",3);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED |FOREGROUND_GREEN | FOREGROUND_BLUE);
endl(1);
print_middle("『乘飞舟 遨游』",4);
print_middle("『无止休 探求』",6);
print_middle("『寰宇中 面纱背后』",8);
print_middle("『那古老源头』",10);
print_middle("『短暂的生命』",12);
print_middle("『当向永恒望去』",14);
print_middle("『无形中 意识的岛屿 便缓缓游移』",16);
print_middle("『船舱里 是梦境』",18);
print_middle("『有一朵 诗的云』",20);
print_middle("『透过那云雾间 迢递过岁月的灵魂』",22);
print_middle("『奔流的 光阴在一刹那搁浅』",24);
print_middle("『悬浮在 河汉之间』",26);
endl(4);
print("漫行于宇宙之中,他们再次找到了一个文明——");
print_middle(" 『 地 球 文 明 』 ",32);
qhqj();
}
void bc_jq5(){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
print_middle("〖太阳系〗",1);
endl(1);
print_middle("〔地球附近〕",2);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN); // 黄色
print_right("灵星纪年 2316年9月19日",3);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED |FOREGROUND_GREEN | FOREGROUND_BLUE);
endl(3);
print("垠:一颗不错的星球,调查一下吧。");
endl(3);
print("过了一会儿...");
endl(3);
print("墨:结果出来了,是一颗适合居住的星球。平近点角 358.617 度 轨道倾角 7.155 度 升交点经度 -11.26064 度 表面温度 14 ℃ 转轴倾角 23.44°距恒星长度适宜。 应该有生命存在");
endl(2);
print("垠:准备小艇,我去探查一下。");
endl(2);
print("墨:好的,注意要仔细一点,你已经误判了至少十个文明程度了。");
endl(2);
print("垠:好了好了,这次我认真就是了,走了。");
endl(3);
print("说罢,垠钻进了小艇。");
endl(2);
print("墨无奈的摇摇头。继续扫描地球获得更多数据。");
endl(1);
print("[此段和前段剧情为补充剧情(是后面补的,还没补完),所以差一段连接下面的剧情。]");
endl(1);
qhqj();
}
void sm_jq1(){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
print_middle("〖水沫镇〗",1);
endl(1);
print_middle("〔家〕",2);
endl(2);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED |FOREGROUND_GREEN | FOREGROUND_BLUE);
print("阳光穿过窗棂,温暖地撒满房间的角落。");
endl(1);
print("“叮铃铃”揉着惺忪的睡眼,翻身坐起");
endl(1);
print("门开了。");
endl(1);
print("妈妈:起来啦,今天要去领取第一只精灵啦,快点快点。");
endl(1);
print("慵懒地伸了个懒腰,开始了新的一天。");
endl(1);
print("出门,树叶窸窣,投下一片浅浅的光影。");
endl(1);
print("路上,「土石雀」在展翅飞翔,「嘎嘎鸭」在水中舒展细碎的粼粼的波光。");
qhqj();
}
void sm_jq2(){
int f_spi; // 第一只精灵
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
print_middle("〖水沫镇〗",1);
endl(1);
print_middle("〔博士家〕",2);
endl(2);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED |FOREGROUND_GREEN | FOREGROUND_BLUE);
print("阳光下,那栋高大的建筑物泛着淡淡的微光");
endl(1);
print("轻叩锈迹斑斑的门。。。");
endl(1);
print("博士:是");
print(p_name);
print("吗,进来吧。");
endl(1);
print("进入。。。");
endl(1);
print("博士:来领取第一只精灵?这里有些资料,看看吧");
endl(1);
cout<<"___________________________"<<endl;
for(int i = 1;i <= 3;i ++){
int k;
if(i == 1) k = 1;
else if(i == 2) k = 4;
else k = 7;
desc(k);
endl(1);
}
cout<<"___________________________"<<endl;
print("博士:选择一只吧");
endl(2);
print("请选择:1.小火龙 2.嘎嘎鸭 3.草苗蜗");
int ans;
scanf("%d",&ans);
if(ans == 1){
f_spi = 1;
add_spi(1,5);
}
else if(ans == 2){
f_spi = 4;
add_spi(4,5);
}
else{
f_spi = 7;
add_spi(7,5);
}
print("博士:是");
print(has_spi[has_num].name);
print("啊,是一只好精灵呢。");
endl(1);
print("博士:还有这些,这个是「图鉴」,可以获取精灵信息,而且也是你的身份证哦。");
endl(1);
print("博士:然后这些事「精灵球」,可以用来收服精灵。");
endl(1);
print("获得:「图鉴」×1,「精灵球」×10");
p_thing.tj += 1;
p_thing.spi_ball += 10;
qhqj();
}
void sm_jq3(){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
print_middle("〖水沫镇〗",1);
endl(1);
print_middle("〔博士家门外〕",2);
endl(1);
print("妈妈:出来啦,选了什么精灵?");
endl(1);
print(p_name) ;
print(":是「");
print(has_spi[has_num].name);
print("」哦。");
endl(1);
print(p_name);
print(":出来吧。");
endl(1);
print(has_spi[has_num].name);
int ans;
if(has_spi[has_num].name == "小火龙"){
print(":火火");
endl(1);
print("妈妈:真是太可爱了,给它取个昵称吧。就叫。。。火火怎么样?");
endl(1);
print("你要说什么呢:1.真不戳,就叫火火吧 2.还是我来取吧");
endl(1);
scanf("%d",&ans);
if(ans == 1){
has_spi[has_num].has_pet_name = true;
has_spi[has_num].pet_name = "火火";
}
else{
string nn;
print("请输入你取得昵称:");
cin>>nn;
has_spi[has_num].has_pet_name = true;
has_spi[has_num].pet_name = nn;
}
}
else if(has_spi[has_num].name == "嘎嘎鸭"){
print(":嘎嘎");
endl(1);
print("妈妈:真是太可爱了,给它取个昵称吧。就叫。。。鸭鸭怎么样?");
endl(1);
print("你要说什么呢:1.真不戳,就叫鸭鸭吧 2.还是我来取吧");
endl(1);
scanf("%d",&ans);
if(ans == 1){
has_spi[has_num].has_pet_name = true;
has_spi[has_num].pet_name = "鸭鸭";
}
else{
string nn;
print("请输入你取得昵称:");
cin>>nn;
has_spi[has_num].has_pet_name = true;
has_spi[has_num].pet_name = nn;
}
}
else{
print(":苗苗");
endl(1);
print("妈妈:真是太可爱了,给它取个昵称吧。就叫。。。苗苗怎么样?");
endl(1);
print("你要说什么呢:1.真不戳,就叫苗苗吧 2.还是我来取吧");
endl(1);
scanf("%d",&ans);
if(ans == 1){
has_spi[has_num].has_pet_name = true;
has_spi[has_num].pet_name = "苗苗";
}
else{
string nn;
print("请输入你取得昵称:");
cin>>nn;
has_spi[has_num].has_pet_name = true;
has_spi[has_num].pet_name = nn;
}
}
endl(1);
print("更改昵称成功。昵称为:");
print(has_spi[has_num].pet_name);
endl(1);
print("妈妈:那从此以后你就是训练家了哦。就可以离开家,出去冒险了。");
endl(1);
print("妈妈:这是一些「精灵币」。拿着。以后有用的,还有「水沫镇地图」");
endl(1);
print("获得:「精灵币」×1000,「水沫镇地图」×1");
p_thing.money += 1000;
p_thing.sm_map += 1;
qhqj();
}
void sm_jq4(){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
print_middle("〖水沫镇〗",1);
endl(1);
print_middle("〔水沫大道〕",2);
endl(2);
print("你低头看「地图」。。。");
endl(1);
print(p_name);
print(":哎呦");
endl(1);
print("你撞到一个人");
endl(1);
print("抬头,银色的长发披散在肩头,眼眸如一汪清潭,折射着淡淡的微光。");
endl(1);
print(p_name);
print(":对。。。对不起");
endl(1);
print("白青岚:没事的,看你的装扮,也是训练家吧,我们一起去冒险吧。不过,在这之前,我得试探一下你的实力...");
enemy_spi[1] = all_spi[16];
// fight(enemy_spi);
endl(1);
print("全剧终。(bushi");
endl(1);
print("[额,不逝的,剩下的还没编好,这一段剧情大概下周可以搞定。卡在对战函数了...]");
qhqj();
}
void bc_jq(){
bc_jq1();
system("cls");
bc_jq2();
system("cls");
bc_jq3();
system("cls");
bc_jq4();
system("cls");
bc_jq4();
system("cls");
}
void sm_jq(){
sm_jq1();
system("cls");
sm_jq2();
system("cls");
sm_jq3();
system("cls");
sm_jq4();
system("cls");
}
int main(){
init();
welcome();
background();
system("cls");
bc_jq();
sm_jq();
return 0;
}
exlg不就可以一键复制代码了
我太弱了不会用,能教教吗QwQ
https://www.luogu.com.cn/discuss/620628
我是你谷sz_jinzikai,现在一般在谷
要下载插件,我就有 QwQ
1
2
3
不会的话我就紫砂真香啊~
。6不想下载东西
所以exlg怎么下
stO
Orz
只有我注意到了一泓诗的云嘛 QwQ
YYHJ114514(bushi
《人是》《卡西尼》《末日飞船》《一泓诗的云》
看出来了
不错,
可以成为生米了鸭鸭好卷114514,
我故意的(还有一个关于鸭鸭的彩蛋
就看你找不找得到咯
我好像记得有个嘎嘎鸭,没认真看
6
还有0526是鸭鸭生日吧是的
所以这也是一个彩蛋,故事发生在鸭鸭的出生日期,但是年份就不是了
完了好像大部分彩蛋都被公布了,都怪你神奇鸭皇
9月19日又是谁的生日
2314?看到前两个数字我下意识想到我生日(19是我小学座号。。。
我都不知道你生日,下次你生日把鸭鸭送给你(bushi
你可爱的你谷博客地址似乎透露了14是我小学的座号(但五年级后就不是了)佬啊 怎么把字体变成彩色的啊
还有能讲讲延迟输出吗awa 看不懂啊
还有变量能延迟输出吗awa 谢了
emmm…有时间我会写一些分享的
字体颜色封禁聚聚的分享可以看一下
延迟输出就是用了Sleep函数嘛
每输出一个字符停顿一段时间,然后if是判断是否按下回车,如果有,停顿时间设置为0,跳过这一段的输出
变量可以吗 还是说必须转成字符串
orz
好强!%%%
这么快就有人回复了吗QwQ
我弱死了好不好%%%
您比我强%%%
您似乎比我大得多6
不,我xxs
那就更厉害了%%%