C++ 小游戏

· · 个人记录

C++ 小游戏

提示 :所有游戏代码均为转载

1. 你的世界

#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<iostream>
#include<vector>
#include<stack>
#include<queue>
#define cls system("cls");
#define slp(second) Sleep(second);
using namespace std;
struct backpack{
    string name;
    long long number = 0;
}bp[1001];
struct ronglu{
    int shengyukeranshaowupinshuliang = 0;;
}rl;
struct tian{
    long long n1=0, n2=0, n3=0, n4=0;
}t1;
long long money; //钱
double jingyan;  //经验
long long  shanghai = 1; //伤害,默认为1
long long tree; //种树厂树的总数
double hp = 10; //血量
//函数原型:
int famuchang(); //伐木场
void jiangshi(); //僵尸(刷怪塔)
void xiaobai(); //小白(刷怪塔)
void kulipa(); //苦力怕(刷怪塔)
void shuaguaita(); //刷怪塔
int shangdian(); //商店
int hechengshi(); //合成室
inline void beibao(); //背包
inline void chakanjingyan(); //查看经验
int zhilianshi(); //治练室
int wakuang(); //挖矿
void lianyaochang(); //炼药厂
int zhongshuchang(); //种树厂
int zhongtian(); //种田
void fumo(); //附魔
int shuaguaita2(); //刷怪塔(下界)
int wakuang2(); //挖矿(下界)
int xiajie(); //下界
int modi(); //末地
void dacao(); //打草
void yangdongwu(); //养动物
void guajichi(); //挂机池
long long bp_n(const string); //获取背包内此物品数量
void tongjishanghai(); //统计伤害
int duanzaoshi(); //锻造室
void cundang(); //存档
void lajitong(); //垃圾桶
/*
函数介绍:
int 伐木场();
void 僵尸(刷怪塔)();
void 小白(刷怪塔)();
void 苦力怕(刷怪塔)();
void 刷怪塔();
int 商店();
int 合成室();
inline void 背包();
inline void 查看经验();
int 治练室();
int 挖矿();
void 炼药厂();
int 种树厂();
int 种田();
void 附魔();
int 刷怪塔(下界)();
int 挖矿(下界)();
int 下界();
int 末地();
void 打草();
void 养动物();
void 挂机池();
long long 获取背包内此物品数量(const string(字符串));
void 统计伤害();
int 锻造室();
void 存档();
void 垃圾桶();
*/
int main(){
    system("cls");
    system("color");
    tongjishanghai();
    hp = jingyan / 10000 * 1 + 10;
    printf("************\n你的世界10.2\n垃圾桶更新\nHi~ o(* ̄▽ ̄*)\nヾ(≧▽≦*)o\n************\n主世界\n当前钱数%lld\n当前伤害%lld\n1.伐木场\n2.刷怪塔\n3.商店\n4.合成室\n5.背包\n6.查看经验\n7.治炼室\n8.挖矿\n9.炼药厂\n10.种树厂\n11.种田\n12.附魔\n13.进入下界\n14.进入末地\n15.打草\n16.养动物\n17.挂机池\n18.锻造室\n19.垃圾桶\n100.存档\n", money, shanghai);
    bp[1].name = "原木";
    bp[2].name = "木板";
    bp[3].name = "木棍";
    bp[4].name = "木剑";
    bp[5].name = "木稿";
    bp[6].name = "木斧";
    bp[7].name = "木铲";
    bp[8].name = "木锄";
    bp[9].name = "原石";
    bp[10].name = "石剑";
    bp[11].name = "石稿";
    bp[12].name = "石斧";
    bp[13].name = "石铲";
    bp[14].name = "石锄";
    bp[15].name = "金锭";
    bp[16].name = "金粒";
    bp[17].name = "金块";
    bp[18].name = "金剑";
    bp[19].name = "金稿";
    bp[20].name = "金斧";
    bp[21].name = "金铲";
    bp[22].name = "金锄";
    bp[23].name = "铁锭";
    bp[24].name = "铁粒";
    bp[25].name = "铁块";
    bp[26].name = "铁剑";
    bp[27].name = "铁稿";
    bp[28].name = "铁斧";
    bp[29].name = "铁铲";
    bp[30].name = "铁锄";
    bp[31].name = "钻石";
    bp[32].name = "钻石块";
    bp[33].name = "钻石剑";
    bp[34].name = "钻石稿";
    bp[35].name = "钻石斧";
    bp[36].name = "钻石铲";
    bp[37].name = "钻石锄";
    bp[38].name = "苹果";
    bp[39].name = "树苗";
    bp[40].name = "工作台";
    bp[41].name = "熔炉";
    bp[42].name = "锻造台";
    bp[43].name = "炼药台";
    bp[44].name = "堆肥桶";
    bp[45].name = "炼药锅";
    bp[46].name = "远古残骸";
    bp[47].name = "下界合金碎片";
    bp[48].name = "下界合金锭";
    bp[49].name = "下界合金块";
    bp[50].name = "下界合金剑";
    bp[51].name = "下界合金稿";
    bp[52].name = "下界合金斧";
    bp[53].name = "下界合金铲";
    bp[54].name = "下界合金锄";
    bp[55].name = "煤炭";
    bp[56].name = "煤炭块";
    bp[57].name = "粗金";
    bp[58].name = "粗铁";
    bp[59].name = "青金石";
    bp[60].name = "粗铜";
    bp[61].name = "铜粒";
    bp[62].name = "铜锭";
    bp[63].name = "黑曜石";
    bp[64].name = "打火石";
    bp[65].name = "小麦种子";
    bp[66].name = "胡萝卜";
    bp[67].name = "土豆";
    bp[68].name = "甜菜根";
    bp[69].name = "小麦";
    bp[70].name = "甜菜";
    bp[71].name = "面包";
    bp[72].name = "石英";
    bp[73].name = "下界岩";
    bp[74].name = "腐肉";
    bp[75].name = "骨头";
    bp[76].name = "箭";
    bp[77].name = "弓";
    int t;
    scanf("%d", &t);
    if(t == 1){
        famuchang();
        printf("按任意键退出\n");
        char s = _getch();
        system("cls");
        main();
    }else if(t == 2){
        shuaguaita();
        printf("按任意键退出\n");
        char s = _getch();
        system("cls");
        main();
    }else if(t == 3){
        shangdian();
        printf("按任意键退出\n");
        char s = _getch();
        system("cls");
        main();
    }else if(t == 4){
        hechengshi();
        printf("按任意键退出\n");
        char s = _getch();
        system("cls");
        main();
    }else if(t == 5){
        beibao();
        printf("按任意键退出\n");
        char s = _getch();
        system("cls");
        main();
    }else if(t == 6){
        chakanjingyan();
        printf("按任意键退出\n");
        char s = _getch();
        system("cls");
        main();
    }else if(t == 7){
        zhilianshi();
        printf("按任意键退出\n");
        char s = _getch();
        system("cls");
        main();
    }else if(t == 8){
        wakuang();
        printf("按任意键退出\n");
        char s = _getch();
        system("cls");
        main();
    }else if(t == 9){
        lianyaochang();
        printf("按任意键退出\n");
        char s = _getch();
        system("cls");
        main();
    }else if(t == 10){
        zhongshuchang();
        printf("按任意键退出\n");
        char s = _getch();
        system("cls");
        main();
    }else if(t == 11){
        zhongtian();
        system("color");
        printf("按任意键退出\n");
        char s = _getch();
        system("cls");
        main();
    }else if(t == 12){
        fumo();
        printf("按任意键退出\n");
        char s = _getch();
        system("cls");
        main();
    }else if(t == 13){
        if(bp[63].number >= 8 && bp[64].number >= 1){
            xiajie();
            main();
        }else{
            system("cls");
            printf("黑曜石或打火石不足");
            Sleep(1000);
            system("cls");
            printf("按任意键退出\n");
            char s = _getch();
            main();
        }
    }else if(t == 14){
        modi();
        main();
    }else if(t == 15){
        dacao();
        printf("按任意键退出\n");
        char s = _getch();
        system("cls");
        main();
    }else if(t == 16){
        yangdongwu();
        printf("按任意键退出\n");
        char s = _getch();
        system("cls");
        main();
    }else if(t == 17){
        guajichi();
        printf("按任意键退出\n");
        char s = _getch();
        system("cls");
        main();
    }else if(t == 18){
        duanzaoshi();
        printf("按任意键退出\n");
        char s = _getch();
        system("cls");
        main();
    }else if(t == 19){
        lajitong();
        printf("按任意键退出\n");
        char s = _getch();
        system("cls");
        main();
    }else if(t == 100){
        cundang();
        printf("按任意键退出\n");
        char s = _getch();
        system("cls");
        main();
    }else{
        main();
    }
}
int famuchang(){
    system("cls");
    printf("请输入伐木数量\n");
    long long a, pingguo = 0, mugun = 0, shumiao = 0, yuanmu = 0;
    scanf("%lld", &a);
    if(a == 0){
        printf("请输入大于一的数量");
        Sleep(1000);
        system("cls");
        return 0;
    }
    for(int i = 1; i <= a*2; i++){
        int r1 = rand()%100+1, r2 = rand()%100+1, r3 = rand()%100+1;
        if(r1 <= 3){
            pingguo++;
        }else if(r2 <= 3){
            mugun++;
        }else if(r3 <= 3){
            shumiao++;
        }
        yuanmu++;
        Sleep(0.5);
    }
    printf("一共收获%lld个苹果+%lld个木棍+%lld个树苗+%lld个原木+%lld个金币\n", pingguo, mugun, shumiao, yuanmu, yuanmu/2);
    bp[38].number += pingguo;
    bp[3].number += mugun;
    bp[39].number += shumiao;
    bp[1].number += yuanmu;
    money += yuanmu / 2;
    return 0;
}
void jiangshi(){
    system("cls");
    int hp_jiangshi = 20;
    while(1){
        printf("正在与僵尸对战,僵尸血量%d,你的血量%f\n请选择攻击或逃跑\n1.攻击\n2.逃跑\n", hp_jiangshi, hp);
        char s = _getch();
        if(s == '1'){
            printf("你对僵尸造成%d点伤害\n", shanghai);
            hp_jiangshi -= shanghai;
            int r = rand()%3+1;
            printf("僵尸对你造成%d点伤害\n", r);
            hp -= r;
        }else{
            int r = rand()%2+1;
            if(r == 1){
                printf("逃跑成功\n");
                Sleep(1000);
                break;
            }else{
                int r = rand()%3+1;
                printf("逃脱失败,僵尸对你造成%d点伤害\n", r);
                hp -= r;
            }
        }
        Sleep(1000);
        system("cls");
        if(hp <= 0){
            printf("你被僵尸杀死了");
            Sleep(1000);
            break;
        }
        if(hp_jiangshi <= 0){
            int r1 = rand()%100+1, r2 = rand()%2+1;
            if(r1 <= 3){
                printf("你获得了1个铁锭和%d块腐肉\n", r2);
                bp[23].number++;
                bp[74].number += r2;
                jingyan += 50;
            }else if(r1 <= 6){
                printf("你获得了1个胡萝卜和%d块腐肉\n", r2);
                bp[66].number++;
                bp[74].number += r2;
                jingyan += 50;
            }else{
                printf("你获得了%d块腐肉\n", r2);
                bp[74].number += r2;
                jingyan += 50;
            }
            break;
        }
    }
}
void xiaobai(){
    system("cls");
    int hp_xiaobai = 20;
    while(1){
        printf("正在与小白对战,小白血量%d,你的血量%f\n请选择攻击或逃跑\n1.攻击\n2.逃跑\n", hp_xiaobai, hp);
        char s = _getch();
        if(s == '1'){
            printf("你对小白造成%d点伤害\n", shanghai);
            hp_xiaobai -= shanghai;
            int r = rand()%3+1;
            printf("小白对你造成%d点伤害\n", r);
            hp -= r;
        }else{
            int r = rand()%2+1;
            if(r == 1){
                printf("逃跑成功\n");
                Sleep(1000);
                break;
            }else{
                int r = rand()%3+1;
                printf("逃脱失败,小白对你造成%d点伤害", r);
                hp -= r;
            }
        }
        Sleep(1000);
        system("cls");
        if(hp <= 0){
            printf("你被小白杀死了");
            Sleep(1000);
            break;
        }
        if(hp_xiaobai <= 0){
            printf("你杀死了小白\n");
            int r1 = rand()%100+1, r2 = rand()%2+1;
            if(r1 <= 3){
                printf("你获得了1把弓和%d个骨头\n", r2);
                bp[77].number++;
                bp[75].number += r2;
                jingyan += 50;
            }else if(r1 <= 6){
                printf("你获得了1支箭和%d个骨头\n", r2);
                bp[76].number++;
                bp[75].number += r2;
                jingyan += 50;
            }else{
                printf("你获得了%d个骨头\n", r2);
                bp[75].number += r2;
                jingyan += 50;
            }
            break;
        }
    }
}
void kulipa(){

}
void shuaguaita(){
    system("cls");
    printf("主世界刷怪塔\n请选择怪物类型\n1.僵尸\n2.骷髅弓箭手(小白)\n3.爬行者(苦力怕)\n");
    char s = _getch();
    if(s == '1'){
        jiangshi();
    }else if(s == '2'){
        xiaobai();
    }else if(s == '3'){
        kulipa();
    }

}
int shangdian(){
    system("cls");
    printf("商店\n1.木剑10元一个\n2.木稿10元一个\n3.木斧10元一个\n4.黑曜石100元一个\n5.打火石100元一个\n6.钻石3000元一个\n7.小麦种子10元1个\n8.胡萝卜10元1个\n9.土豆10元1个\n10.甜菜根10元1个\n");
    int t;
    scanf("%d", &t);
    if(t == 1){
        if(money < 10){
            system("cls");
            printf("钱不够");
            Sleep(1000);
            system("cls");
            shangdian();
            return 0;
        }else{
            printf("请输入购买数量\n");
            int t1;
            scanf("%d", &t1);
            if(money < 10 * t1){
                system("cls");
                printf("钱不够");
                Sleep(1000);
                system("cls");
                shangdian();
                return 0;
            }else{
                system("cls");
                printf("购买成功");
                money -= 10 * t1;
                bp[4].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }
    }else if(t == 2){
        if(money < 10){
            system("cls");
            printf("钱不够");
            Sleep(1000);
            system("cls");
            shangdian();
            return 0;
        }else{
            printf("请输入购买数量\n");
            int t1;
            scanf("%d", &t1);
            if(money < 10 * t1){
                system("cls");
                printf("钱不够");
                Sleep(1000);
                system("cls");
                shangdian();
                return 0;
            }else{
                system("cls");
                printf("购买成功");
                money -= 10 * t1;
                bp[5].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }
    }else if(t == 3){
        if(money < 10){
            system("cls");
            printf("钱不够");
            Sleep(1000);
            system("cls");
            shangdian();
            return 0;
        }else{
            printf("请输入购买数量\n");
            int t1;
            scanf("%d", &t1);
            if(money < 10 * t1){
                system("cls");
                printf("钱不够");
                Sleep(1000);
                system("cls");
                shangdian();
                return 0;
            }else{
                system("cls");
                printf("购买成功");
                money -= 10 * t1;
                bp[6].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }
    }else if(t == 4){
        if(money < 100){
            system("cls");
            printf("钱不够");
            Sleep(1000);
            system("cls");
            shangdian();
            return 0;
        }else{
            printf("请输入购买数量\n");
            int t1;
            scanf("%d", &t1);
            if(money < 100 * t1){
                system("cls");
                printf("钱不够");
                Sleep(1000);
                system("cls");
                shangdian();
                return 0;
            }else{
                system("cls");
                printf("购买成功");
                money -= 100 * t1;
                bp[63].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }
    }else if(t == 5){
        if(money < 100){
            system("cls");
            printf("钱不够");
            Sleep(1000);
            system("cls");
            shangdian();
            return 0;
        }else{
            printf("请输入购买数量\n");
            int t1;
            scanf("%d", &t1);
            if(money < 100 * t1){
                system("cls");
                printf("钱不够");
                Sleep(1000);
                system("cls");
                shangdian();
                return 0;
            }else{
                system("cls");
                printf("购买成功");
                money -= 100 * t1;
                bp[64].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }
    }else if(t == 6){
        if(money < 3000){
            system("cls");
            printf("钱不够");
            Sleep(1000);
            system("cls");
            shangdian();
            return 0;
        }else{
            printf("请输入购买数量\n");
            int t1;
            scanf("%d", &t1);
            if(money < 3000 * t1){
                system("cls");
                printf("钱不够");
                Sleep(1000);
                system("cls");
                shangdian();
                return 0;
            }else{
                system("cls");
                printf("购买成功");
                money -= 3000 * t1;
                bp[31].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }
    }else if(t == 7){
        if(money < 10){
            system("cls");
            printf("钱不够");
            Sleep(1000);
            system("cls");
            shangdian();
            return 0;
        }else{
            printf("请输入购买数量\n");
            int t1;
            scanf("%d", &t1);
            if(money < 10 * t1){
                system("cls");
                printf("钱不够");
                Sleep(1000);
                system("cls");
                shangdian();
                return 0;
            }else{
                system("cls");
                printf("购买成功");
                money -= 10 * t1;
                bp[65].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }
    }else if(t == 8){
        if(money < 10){
            system("cls");
            printf("钱不够");
            Sleep(1000);
            system("cls");
            shangdian();
            return 0;
        }else{
            printf("请输入购买数量\n");
            int t1;
            scanf("%d", &t1);
            if(money < 10 * t1){
                system("cls");
                printf("钱不够");
                Sleep(1000);
                system("cls");
                shangdian();
                return 0;
            }else{
                system("cls");
                printf("购买成功");
                money -= 10 * t1;
                bp[66].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }
    }else if(t == 9){
        if(money < 10){
            system("cls");
            printf("钱不够");
            Sleep(1000);
            system("cls");
            shangdian();
            return 0;
        }else{
            printf("请输入购买数量\n");
            int t1;
            scanf("%d", &t1);
            if(money < 10 * t1){
                system("cls");
                printf("钱不够");
                Sleep(1000);
                system("cls");
                shangdian();
                return 0;
            }else{
                system("cls");
                printf("购买成功");
                money -= 10 * t1;
                bp[67].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }
    }else if(t == 10){
        if(money < 10){
            system("cls");
            printf("钱不够");
            Sleep(1000);
            system("cls");
            shangdian();
            return 0;
        }else{
            printf("请输入购买数量\n");
            int t1;
            scanf("%d", &t1);
            if(money < 10 * t1){
                system("cls");
                printf("钱不够");
                Sleep(1000);
                system("cls");
                shangdian();
                return 0;
            }else{
                system("cls");
                printf("购买成功");
                money -= 10 * t1;
                bp[68].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }
    }
    return 0;
}
int hechengshi(){
    system("cls");
    printf("合成室\n1.1原木=4木板\n2.2木板=4木棍\n3.4木板=1工作台\n4.1木棍+2木板=1木剑\n5.2木棍+3木板=1木稿\n6.2木棍+3木板=1木斧\n7.2木棍+1木板=1木铲\n8.2木棍+2木板=1木锄\n9.1木棍+2原石=1石剑\n10.2木棍+3原石=1石稿\n11.2木棍+3原石=1石斧\n12.2木棍+1原石=1石铲\n13.2木棍+2原石=1石锄\n14.8原石=1熔炉\n15.1木棍+2铁锭=1铁剑\n16.2木棍+3铁锭=1铁稿\n17.2木棍+3铁锭=1铁斧\n18.2木棍+1铁锭=1铁铲\n19.2木棍+2铁锭=1铁锄\n20.9铁锭=1铁块\n21.1木棍+2金锭=1金剑\n22.2木棍+3金锭=1金稿\n23.2木棍+3金锭=1金斧\n24.2木棍+1金锭=1金铲\n25.2木棍+2金锭=1金锄\n26.9金锭=1金块\n27.1木棍+2钻石=1钻石剑\n28.2木棍+3钻石=1钻石稿\n29.2木棍+3钻石=1钻石斧\n30.2木棍+1钻石=1钻石铲\n31.2木棍+2钻石=1钻石锄\n32.9钻石=1钻石块\n33.4下界合金碎片+4金锭=1下界合金锭\n34.9下界合金锭=1下界合金块\n35.2铁锭+4木板=1锻造台\n");
    int t;
    scanf("%d", &t);
    if(t >= 4 && bp[40].number <= 0){
        system("cls");
        printf("你还没有工作台");
        Sleep(1000);
        system("cls");
        return 0;
    }
    if(t == 1){
        if(bp[1].number >= 1){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[1].number < 1 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[1].number -= 1 * t1;
                bp[2].number += 4 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 2){
        if(bp[2].number >= 2){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[2].number < 2 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[2].number -= 2 * t1;
                bp[3].number += 4 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 3){
        if(bp[2].number >= 4){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[2].number < 4 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[2].number -= 4 * t1;
                bp[40].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 4){
        if(bp[2].number >= 2 && bp[3].number >= 1){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[2].number < 2 * t1 && bp[3].number >= 1 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[2].number -= 2 * t1;
                bp[3].number -= 1 * t1;
                bp[4].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 5){
        if(bp[2].number >= 3 && bp[3].number >= 2){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[2].number < 3 * t1 && bp[3].number >= 2 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[2].number -= 3 * t1;
                bp[3].number -= 2 * t1;
                bp[5].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 6){
        if(bp[2].number >= 3 && bp[3].number >= 2){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[2].number < 3 * t1 && bp[3].number >= 2 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[2].number -= 3 * t1;
                bp[3].number -= 2 * t1;
                bp[6].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 7){
        if(bp[2].number >= 1 && bp[3].number >= 2){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[2].number < 1 * t1 && bp[3].number >= 2 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[2].number -= 1 * t1;
                bp[3].number -= 2 * t1;
                bp[7].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 8){
        if(bp[2].number >= 2 && bp[3].number >= 2){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[2].number < 2 * t1 && bp[3].number >= 2 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[2].number -= 2 * t1;
                bp[3].number -= 2 * t1;
                bp[8].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 9){
        if(bp[9].number >= 2 && bp[3].number >= 1){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[9].number < 2 * t1 && bp[3].number >= 1 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[9].number -= 2 * t1;
                bp[3].number -= 1 * t1;
                bp[10].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 10){
        if(bp[9].number >= 3 && bp[3].number >= 2){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[9].number < 3 * t1 && bp[3].number >= 2 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[9].number -= 3 * t1;
                bp[3].number -= 2 * t1;
                bp[11].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 11){
        if(bp[9].number >= 3 && bp[3].number >= 2){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[9].number < 3 * t1 && bp[3].number >= 2 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[9].number -= 3 * t1;
                bp[3].number -= 2 * t1;
                bp[12].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 12){
        if(bp[9].number >= 1 && bp[3].number >= 2){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[9].number < 1 * t1 && bp[3].number >= 2 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[9].number -= 1 * t1;
                bp[3].number -= 2 * t1;
                bp[13].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 13){
        if(bp[9].number >= 2 && bp[3].number >= 2){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[9].number < 2 * t1 && bp[3].number >= 2 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[9].number -= 2 * t1;
                bp[3].number -= 2 * t1;
                bp[14].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 14){
        if(bp[9].number >= 8){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[9].number < 8 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[9].number -= 8 * t1;
                bp[41].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 15){
        if(bp[23].number >= 2 && bp[3].number >= 1){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[23].number < 2 * t1 && bp[3].number >= 1 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[23].number -= 2 * t1;
                bp[3].number -= 1 * t1;
                bp[26].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 16){
        if(bp[23].number >= 3 && bp[3].number >= 2){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[23].number < 3 * t1 && bp[3].number >= 2 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[23].number -= 3 * t1;
                bp[3].number -= 2 * t1;
                bp[27].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 17){
        if(bp[23].number >= 3 && bp[3].number >= 2){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[23].number < 3 * t1 && bp[3].number >= 2 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[23].number -= 3 * t1;
                bp[3].number -= 2 * t1;
                bp[28].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 18){
        if(bp[23].number >= 1 && bp[3].number >= 2){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[23].number < 1 * t1 && bp[3].number >= 2 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[23].number -= 1 * t1;
                bp[3].number -= 2 * t1;
                bp[29].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 19){
        if(bp[23].number >= 2 && bp[3].number >= 2){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[23].number < 2 * t1 && bp[3].number >= 2 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[23].number -= 2 * t1;
                bp[3].number -= 2 * t1;
                bp[30].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 20){
        if(bp[23].number >= 8){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[23].number < 9 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[23].number -= 9 * t1;
                bp[25].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 21){
        if(bp[15].number >= 2 && bp[3].number >= 1){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[15].number < 2 * t1 && bp[3].number >= 1 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[15].number -= 2 * t1;
                bp[3].number -= 1 * t1;
                bp[18].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 22){
        if(bp[15].number >= 3 && bp[3].number >= 2){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[15].number < 3 * t1 && bp[3].number >= 2 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[15].number -= 3 * t1;
                bp[3].number -= 2 * t1;
                bp[19].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 23){
        if(bp[15].number >= 3 && bp[3].number >= 2){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[15].number < 3 * t1 && bp[3].number >= 2 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[15].number -= 3 * t1;
                bp[3].number -= 2 * t1;
                bp[20].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 24){
        if(bp[15].number >= 1 && bp[3].number >= 2){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[15].number < 1 * t1 && bp[3].number >= 2 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[15].number -= 1 * t1;
                bp[3].number -= 2 * t1;
                bp[21].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 25){
        if(bp[15].number >= 2 && bp[3].number >= 2){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[15].number < 2 * t1 && bp[3].number >= 2 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[15].number -= 2 * t1;
                bp[3].number -= 2 * t1;
                bp[22].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 26){
        if(bp[15].number >= 8){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[15].number < 9 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[15].number -= 9 * t1;
                bp[17].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 27){
        if(bp[31].number >= 2 && bp[3].number >= 1){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[31].number < 2 * t1 && bp[3].number >= 1 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[31].number -= 2 * t1;
                bp[3].number -= 1 * t1;
                bp[33].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 28){
        if(bp[31].number >= 3 && bp[3].number >= 2){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[31].number < 3 * t1 && bp[3].number >= 2 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[31].number -= 3 * t1;
                bp[3].number -= 2 * t1;
                bp[34].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 29){
        if(bp[31].number >= 3 && bp[3].number >= 2){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[31].number < 3 * t1 && bp[3].number >= 2 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[31].number -= 3 * t1;
                bp[3].number -= 2 * t1;
                bp[35].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 30){
        if(bp[31].number >= 1 && bp[3].number >= 2){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[31].number < 1 * t1 && bp[3].number >= 2 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[31].number -= 1 * t1;
                bp[3].number -= 2 * t1;
                bp[36].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 31){
        if(bp[31].number >= 2 && bp[3].number >= 2){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[31].number < 2 * t1 && bp[3].number >= 2 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[31].number -= 2 * t1;
                bp[3].number -= 2 * t1;
                bp[37].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 32){
        if(bp[31].number >= 9){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[31].number < 9 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[31].number -= 9 * t1;
                bp[32].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 33){
        if(bp[47].number >= 4 && bp[15].number >= 4){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[47].number < 4 * t1 || bp[15].number < 4 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[47].number -= 4 * t1;
                bp[15].number -= 4 * t1;
                bp[48].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 34){
        if(bp[48].number >= 9){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[48].number < 9 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[48].number -= 9 * t1;
                bp[49].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }else if(t == 35){
        if(bp[23].number >= 2 && bp[2].number >= 4){
            printf("请输入合成数量\n");
            int t1;
            scanf("%d", &t1);
            if(bp[23].number < 2 * t1 || bp[2].number < 4 * t1){
                system("cls");
                printf("材料不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("合成成功");
                bp[23].number -= 2 * t1;
                bp[2].number -= 4 * t1;
                bp[42].number += 1 * t1;
                Sleep(1000);
                system("cls");
            }
        }else{
            system("cls");
            printf("材料不足");
            Sleep(1000);
            system("cls");
        }
    }
    return 0;
}
inline void beibao(){
    system("cls");
    for(int i = 1; i <= 77; i++){
        if(bp[i].number > 0){
            cout << bp[i].name;
            printf("%lld个\n", bp[i].number);
        }
    }
}
inline void chakanjingyan(){
    system("cls");
    printf("当前经验值为%.6f\n经验等级为%.6f级\n血量为%.6f\n", jingyan, jingyan / 100, hp);
}
int zhilianshi(){
    system("cls");
    if(bp[41].number <= 0){
        system("cls");
        printf("你还没有熔炉呢");
        Sleep(1000);
        system("cls");
        return 0;
    }else{
        printf("熔炉剩余可燃烧物品为%d个\n", rl.shengyukeranshaowupinshuliang);
        printf("请输入燃料编号和数量\n0.不装填燃料\n1.煤炭\n2.木板\n3.煤炭块\n4.木棍\n");
        int n, t;
        scanf("%d%d", &n, &t);
        if(n == 0){
            if(rl.shengyukeranshaowupinshuliang <= 0){
                system("cls");
                printf("燃料不足,必须装填燃料");
                Sleep(1000);
                system("cls");
                return 0;
            }
        }else if(n == 1 && bp[55].number >= t){
            bp[55].number -= t;
            rl.shengyukeranshaowupinshuliang += 5 * t;
        }else if(n == 2 && bp[2].number >= t){
            bp[2].number -= t;
            rl.shengyukeranshaowupinshuliang += 1 * t;
        }else if(n == 3 && bp[56].number >= t){
            bp[56].number -= t;
            rl.shengyukeranshaowupinshuliang += 50 * t;
        }else if(n == 4 && bp[3].number >= t){
            bp[3].number -= t;
            rl.shengyukeranshaowupinshuliang += 1 * t;
        }else{
            system("cls");
            printf("此物品无法燃烧或数量不足");
            Sleep(1000);
            system("cls");
            return 0;
        }
        printf("请输入燃烧物品名称和数量\n1.粗铁\n2.粗金\n3.粗铜\n4.远古残骸\n");
        int n1, t1;
        scanf("%d%d", &n1, &t1);
        if(n1 == 1 && bp[58].number >= t1){
            bp[58].number -= t1;
            printf("燃烧中...\n");
            rl.shengyukeranshaowupinshuliang -= t1;
            Sleep(1000);
            printf("燃烧完成,获得铁锭%d个\n", t1);
            bp[23].number += t1;
        }else if(n1 == 2 && bp[57].number >= t1){
            bp[57].number -= t;
            printf("燃烧中...\n");
            rl.shengyukeranshaowupinshuliang -= t1;
            Sleep(1000);
            printf("燃烧完成,获得金锭%d个\n", t1);
            bp[15].number += t1;
        }else if(n1 == 3 && bp[60].number >= t1){
            bp[60].number -= t;
            printf("燃烧中...\n");
            rl.shengyukeranshaowupinshuliang -= t1;
            Sleep(1000);
            printf("燃烧完成,获得铜锭%d个\n", t1);
            bp[62].number += t1;
        }else if(n1 == 4 && bp[46].number >= t1){
            bp[46].number -= t;
            printf("燃烧中...\n");
            rl.shengyukeranshaowupinshuliang -= t1;
            Sleep(1000);
            printf("燃烧完成,获得下界合金碎片%d个\n", t1);
            bp[47].number += t1;
        }else{
            system("cls");
            printf("此物品无法燃烧或数量不足");
            Sleep(1000);
            system("cls");
            return 0;
        }
    }
    return 0;
}
int wakuang(){
    system("cls");
    if(bp[5].number <= 0 && bp[11].number <= 0 && bp[19].number <= 0 && bp[27].number <= 0 && bp[34].number <= 0 && bp[51].number <= 0){
        system("cls");
        printf("你还没有稿子呢");
        Sleep(1000);
        system("cls");
        return 0;
    }
    printf("挖矿\n请输入挖矿数量\n");
    int t, yuanshi = 0, meitan = 0, cutong = 0, cujin = 0, cutie = 0, qingjinshi = 0, zuanshi = 0;
    scanf("%d", &t);
    for(int i = 1; i <= t; i++){
        int r = rand()%100+1;
        if(r <= 3 && (bp[51].number >= 1 || bp[34].number >= 1 || bp[27].number >= 1)){
            zuanshi++;
            jingyan += 5;
            continue;
        }else if(r <= 8 && (bp[51].number >= 1 || bp[34].number >= 1 || bp[27].number >= 1)){
            qingjinshi++;
            jingyan += 5;
            continue;
        }else if(r <= 18 && (bp[51].number >= 1 || bp[34].number >= 1 || bp[27].number >= 1 || bp[11].number >= 1)){
            cutie++;
            continue;
        }else if(r <= 28 && (bp[51].number >= 1 || bp[34].number >= 1 || bp[27].number >= 1 || bp[11].number >= 1)){
            cujin++;
            continue;
        }else if(r <= 35){
            cutong++;
            continue;
        }else if(r <= 50){
            meitan++;
            jingyan += 3;
            continue;
        }else{
            yuanshi++;
            continue;
        }
    }
    printf("一共获得\n%d原石\n%d煤炭\n%d粗铜\n%d粗金\n%d粗铁\n%d青金石\n%d钻石\n", yuanshi, meitan, cutong, cujin, cutie, qingjinshi, zuanshi);
    bp[9].number += yuanshi;
    bp[55].number += meitan;
    bp[57].number += cujin;
    bp[58].number += cutie;
    bp[59].number += qingjinshi;
    bp[31].number += zuanshi;
    bp[60].number += cutong;
    return 0;
    system("color");
}
void lianyaochang(){

}
int zhongshuchang(){
    system("cls");
    printf("种树厂\n当前树苗数量%d\n1.种树\n2.砍树\n", tree);
    int t;
    scanf("%d", &t);
    if(t == 1){
        printf("请输入种树数量\n");
        int t1;
        scanf("%d", &t1);
        if(bp[39].number < t1){
            system("cls");
            printf("树苗数量不足");
            Sleep(1000);
            system("cls");
        }else{
            system("cls");
            printf("种树中...\n");
            bp[39].number -= t1;
            tree += t1;
            Sleep(1000);
            printf("种树成功");
            system("cls");
        }
    }else if(t == 2){
        system("cls");
        printf("请输入伐木数量\n");
        long long a, pingguo = 0, mugun = 0, shumiao = 0, yuanmu = 0;
        scanf("%lld", &a);
        if(a == 0){
            system("cls");
            printf("请输入大于一的数量");
            Sleep(1000);
            system("cls");
        }else if(a > tree){
            system("cls");
            printf("树数量不足");
            Sleep(1000);
            system("cls");
            return 0;
        }
        for(int i = 1; i <= a*5; i++){
            int r1 = rand()%100+1, r2 = rand()%100+1, r3 = rand()%100+1;
            if(r1 <= 3){
                pingguo++;
            }else if(r2 <= 3){
                mugun++;
            }else if(r3 <= 3){
                shumiao++;
            }
            yuanmu++;
            Sleep(0.5);
        }
        printf("一共收获%lld个苹果+%lld个木棍+%lld个树苗+%lld个原木+%lld个金币\n", pingguo, mugun, shumiao, yuanmu, yuanmu/5);
        bp[38].number += pingguo;
        bp[3].number += mugun;
        bp[39].number += shumiao;
        bp[1].number += yuanmu;
        money += yuanmu / 5;
        tree -= yuanmu / 5;
    }else{
        printf("输入错误\n");
    }
    return 0;
}
int zhongtian(){
    system("cls");
    printf("种田\n当前农作物%d小麦种子,%d胡萝卜,%d土豆,%d甜菜根\n1.种植\n2.收割\n", t1.n1, t1.n2, t1.n3, t1.n4);
    int t;
    scanf("%d", &t);
    if(t == 1){
        printf("请输入种植农作物类型和数量\n1.小麦种子\n2.胡萝卜\n3.土豆\n4.甜菜根\n");
        int t2, n;
        scanf("%d%d", &t2, &n);
        if(t2 > 4 || t2 < 1){
            system("cls");
            printf("请按指示输入");
            Sleep(1000);
            system("cls");
        }else{
            if(bp[65+t-1].number <= 0){
                system("cls");
                printf("数量不足");
                Sleep(1000);
                system("cls");
            }else{
                system("cls");
                printf("种植成功");
                if(t2 == 1){
                    t1.n1 += n;
                    bp[65+t2-1].number -= n;
                }else if(t2 == 2){
                    t1.n2 += n;
                    bp[65+t2-1].number -= n;
                }else if(t2 == 3){
                    t1.n3 += n;
                    bp[65+t2-1].number -= n;
                }else if(t2 == 4){
                    t1.n4 += n;
                    bp[65+t2-1].number -= n;
                }
                Sleep(1000);
                system("cls");
            }
        }
    }else if(t == 2){
        printf("请输入种收割农作物类型和数量\n1.小麦种子\n2.胡萝卜\n3.土豆\n4.甜菜根\n");
        int t2, n;
        scanf("%d%d", &t2, &n);
        if(t2 > 4 || t2 < 1){
            system("cls");
            printf("请按指示输入");
            Sleep(1000);
            system("cls");
        }else{
            if(t2 == 1){
                if(t1.n1 < n){
                    system("cls");
                    printf("数量不足");
                    Sleep(1000);
                    system("cls");
                    return 0;
                }else{
                    system("cls");
                    printf("收割成功");
                    Sleep(1000);
                    system("cls");
                    t1.n1 -= n;
                    bp[65].number += n;
                    bp[69].number += n;
                }
            }else if(t2 == 2){
                if(t1.n2 < n){
                    system("cls");
                    printf("数量不足");
                    Sleep(1000);
                    system("cls");
                    return 0;
                }else{
                    system("cls");
                    printf("收割成功");
                    Sleep(1000);
                    system("cls");
                    t1.n1 -= n;
                    bp[66].number += n*2;
                }
            }else if(t2 == 3){
                if(t1.n2 < n){
                    system("cls");
                    printf("数量不足");
                    Sleep(1000);
                    system("cls");
                    return 0;
                }else{
                    system("cls");
                    printf("收割成功");
                    Sleep(1000);
                    system("cls");
                    t1.n1 -= n;
                    bp[67].number += n*2;
                }
            }else if(t2 == 4){
                if(t1.n2 < n){
                    system("cls");
                    printf("数量不足");
                    Sleep(1000);
                    system("cls");
                    return 0;
                }else{
                    system("cls");
                    printf("收割成功");
                    Sleep(1000);
                    system("cls");
                    t1.n1 -= n;
                    bp[68].number += n;
                    bp[70].number += n;
                }
            }
        }
    }
    return 0;
}
void fumo(){
    cls;
}
int shuaguaita2(){
    cls;
    return 0;
}
/*
5.木稿
11.石稿
19.金稿
27.铁镐
34.钻石镐
51.下界合金稿
*/
int wakuang2(){
    system("cls");
    if(bp[5].number <= 0 && bp[11].number <= 0 && bp[19].number <= 0 && bp[27].number <= 0 && bp[34].number <= 0 && bp[51].number <= 0){
        system("cls");
        printf("你还没有稿子呢");
        system("cls");
        Sleep(1000);
        return 0;
    }
    printf("挖矿\n请输入挖矿数量\n");
    int t, xiajieyan = 0, jinli = 0, shiying, yuangucanhai = 0;
    scanf("%d", &t);
    for(int i = 1; i <= t; i++){
        int r = rand()%100+1;
        if(r <= 1 && (bp[34].number >= 1 || bp[51].number >= 1)){
            yuangucanhai++;
            continue;
        }else if(r <= 20 && (bp[11].number >= 1 || bp[19].number >= 1 || bp[27].number >= 1)){
            jinli++;
            jingyan += 3;
            continue;
        }else if(r <= 50 && (bp[5].number >= 1 || bp[11].number >= 1 || bp[19].number >= 1 || bp[27].number >= 1 || bp[34].number >= 1 || bp[51].number >= 1)){
            shiying++;
            jingyan += 5;
            continue;
        }else{
            xiajieyan++;
            continue;
        }
    }
    printf("一共获得\n%d下界岩\n%d金粒\n%d石英\n%d远古残骸\n", xiajieyan, jinli, shiying, yuangucanhai);
    bp[73].number += xiajieyan;
    bp[16].number += jinli;
    bp[72].number += shiying;
    bp[46].number += yuangucanhai;
    return 0;
    system("color");
}
int xiajie(){
    system("color");
    system("cls");
    printf("************\n你的世界12.0\n************\n下界\n当前钱数%lld\n当前伤害%lld\n1.刷怪塔\n2.挖矿\n", money, shanghai);
    int t;
    scanf("%d", &t);
    if(t == 1){
        shuaguaita2();
        printf("按任意键退出\n");
        char s = _getch();
        xiajie();
    }else if(t == 2){
        wakuang2();
        printf("按任意键退出\n");
        char s = _getch();
        xiajie();
    }else{
        return 0;
    }
    return 0;
}
int modi(){
    return 0;
}
void dacao(){
    system("cls");
    printf("请输入打草数量\n");
    long long t, sum=0;
    scanf("%lld", &t);
    for(int i = 1; i <= t; i++){
        int r = rand()%100+1;
        if(r <= 20){
            sum++;
        }
        Sleep(0.1);
    }
    printf("一共收获%lld个小麦种子\n", sum);
    bp[65].number += sum;
}
void yangdongwu(){

}
void guajichi(){
    system("cls");
    while(1){
        printf("在这里你可以安心挂机(按除q以外的任意键任意键获得一金币和一经验q回到主界面)\n当前金币数:%lld\n", money);
        char s = _getch();
        if(s=='q')break;
        else {money++;jingyan+=1 ;}
        system("cls");
    }
}
long long bp_n(const string name1){
    for(int i = 1; i <= 77; i++){
        if(bp[i].name==name1){
            return bp[i].number;
        }
    }
    return 0;
}
void tongjishanghai(){
    if(bp_n("下界合金剑") >= 1){
        shanghai = 9;
    }else if(bp_n("钻石剑") >= 1){
        shanghai = 8;
    }else if(bp_n("铁剑") >= 1){
        shanghai = 6;
    }else if(bp_n("金剑") >= 1){
        shanghai = 5;
    }else if(bp_n("石剑") >= 1){
        shanghai = 4;
    }else if(bp_n("木剑") >= 1){
        shanghai = 3;
    }else{
        shanghai = 1;
    }
}
int duanzaoshi(){
    cls;
    if(bp[42].number <= 0){
        cls;
        printf("你还没有锻造台呢");
        slp(1000);
        cls;
        return 0;
    }
    printf("锻造室\n请选择锻造物品\n1.钻石剑\n2.钻石镐\n3.钻石斧\n4.钻石铲\n5.钻石锄\n");
    int t;
    scanf("%d", &t);
    if(t <= 5 && t >= 1){
        if(bp[33+t-1].number <= 0 || bp[48].number <= 0){
            cls;
            printf("数量不足");
            slp(1000);
            cls;
        }else{
            printf("锻造成功");
            bp[33+t-1].number--;
            bp[48].number--;
            bp[50+t-1].number++;
            slp(1000);
            cls;
            return 0;
        }
    }else{
        cls;
        printf("请输入一到五之间的数\n");
        slp(1000);
        cls;
    }
    return 0;
}
void cundang(){
    cls;
    printf("请选择:\n1.存档\n2.使用存档\n3.删除存档\n");
    int t;
    scanf("%d", &t);
    if(t == 1){
        ofstream out;
        out.open("存档.txt");
        out << money << endl << jingyan << endl << shanghai << endl << tree << endl << hp << endl;
        out << rl.shengyukeranshaowupinshuliang << endl << t1.n1 << endl << t1.n2 << endl << t1.n3 << endl << t1.n4 << endl;
        for(int i = 1; i <= 77; i++){
            out << bp[i].number << endl;
            cout << "存档" << bp[i].name;
            printf("中,物品数量%lld\n", bp[i].number);
            slp(1);
        }
    }else if(t == 2){
        ifstream in;
        in.open("存档.txt");
        in >> money >> jingyan >> shanghai >> tree >> hp;
        in >> rl.shengyukeranshaowupinshuliang >> t1.n1 >> t1.n2 >> t1.n3 >> t1.n4;
        for(int i = 1; i <= 77; i++){
            in >> bp[i].number;
            cout << "读入" << bp[i].name;
            printf("中,物品数量%lld\n", bp[i].number);
            slp(1);
        }
    }else if(t == 3){
        remove("存档.txt");
        printf("存档已删除,如果再次使用存档,所有物品将清零\n");
    }
}
void lajitong(){
    cls;
    printf("请输入要丢掉的物品名称:\n");
    string s;
    cin >> s;
    printf("请输入要丢掉的物品数量:\n");
    long long temp;
    scanf("%lld", &temp);
    for(int i = 1; i <= 77; i++){
        if(bp[i].name == s){
            bp[i].number -= temp;
        }
    }
    printf("已丢掉");
    cout << s;
    printf("×%lld\n", temp);
    slp(500);
}

2. 贪吃蛇

#include<bits/stdc++.h>
#include<conio.h>
#include<windows.h>
#include<time.h>
using namespace std;
struct xy
{
    int x,y;
}t; 
xy ss[100],a[100]={{20,17},{20,18},{20,19},{20,20},{20,21},
{20,22}},pg[100];
xy p[20][100]={{{10,10},{10,11},{10,12},{10,13},{10,14},
{10,15}},{{30,30},{30,31},{30,32},{30,33},{30,34},{30,35}}};
xy temp1[100],temp2[20][100];
int n=40,m=5,te,pm[10]={5,5},te1[10],cl1,cl2,timeh,timet;
int qw,hh;
char in,in1,in2;
char str[100];
bool f=0,fl;
bool pd(int,int);
void win();
void gameover();
void cs();
void dq();
void cnm(); 
void dr(); 
void sr();
int allm();
bool pdp(int,int);
int pgpd(int,int);
bool gmy(int);
bool ppd(int,int,int);
int ppgpd(int,int);
bool st(char);
int main()
{
    system("cls");
    memcpy(temp2,p,sizeof(p));
    srand((int)(time(NULL)));
    system("mode con cols=400 lines=100");
    system("color 0f");
    printf("      贪吃蛇         \n");
    printf("     1.player        \n");
    printf("     2.player2       \n");
    printf("本游戏由许家宁、刘言博制作\n");
    printf("感谢@★雷神★№1"); 
    scanf("%d",&te);
    if(te==1)
    {
        te=0;
        timeh=clock();
        dr();
    }
    else
    {
        te=0;
        timeh=clock();
        sr();
    }
    return 0;
} 
bool st(char k)
{
    if((in1=='i'||in1=='j'||in1=='k'||in1=='l')&&
    (in2=='i'||in2=='j'||in2=='k'||in2=='l'))
    {
        if(in2==k)return 1;
        else return 0;
    }
    if((in1=='w'||in1=='a'||in1=='s'||in1=='d')&&
    (in2=='a'||in2=='w'||in2=='s'||in2=='d'))
    {
        if(in2==k)return 1;
        else return 0;
    }
    if(in1==k||in2==k)return 1;
    else return 0;
}
bool gmy(int yn)
{
    for(int i=0;i<pm[yn];++i)
    {
        if(!ppd(p[yn][i].x,p[yn][i].y,!yn)||p[yn][i].x<0||
        p[yn][i].x==n||p[yn][i].y<0||p[yn][i].y==n)
        {
            if(yn==0)
            {
                MessageBox(NULL,"玩家二胜利!","游戏结束",
                MB_OK);
            }
            else if(yn==1)
            {
                MessageBox(NULL,"玩家一胜利!","游戏结束",
                MB_OK);
            }
            int qwer; 
            qwer=MessageBox(NULL,"还玩吗?","还玩吗",
            MB_YESNO);
            if(qwer==6)
            {
                system("cls"); 
                memcpy(p,temp2,sizeof(temp2));
                in1=in2=0;
                fl=0;
                main();
            }
            else 
            {
                system("cls");
                exit(0);
            }
        }
    }
}
bool pdp(int x,int y)
{
    for(int i=0;i<2;++i)
    {
        for(int j=0;j<pm[i];++j)
        {
            if(p[i][j].x==x&&p[i][j].y==y)return 0;
        }
    }
    return 1;
}
int allm()
{
    return pm[0]+pm[1];
}
void sr()
{

    system("cls");
    for(int i=0;i<allm();++i)
    {
        if(pg[i].x==-1&&pg[i].y==-1||
        (pg[i].x==0&&pg[i].y==0))
        {
            pg[i].x=rand()%40;
            pg[i].y=rand()%40;
        }
        while(!pd(pg[i].x,pg[i].y))
        {   
            pg[i].x=rand()%40;
            pg[i].y=rand()%40;
        }
    }
    for(int i=0;i<n;++i)
    {
        for(int j=0;j<n;++j)
        {
            if(!pdp(i,j))cout<<"■";
            else if(ppgpd(i,j))cout<<"●";
            else cout<<"□";
        }
        puts("");
    }
    printf("玩家一输入w,s,a,d移动,"
    "玩家二输入i,j,k,l移动\n");
    printf("现在玩家一蛇长:%d,现在玩家二蛇长:%d\n"
    ,pm[0],pm[1]);
    printf("已过时间:%d秒\n",(clock()-timeh)/1000);
    while(1)
    {
    for(int i=0;i<allm();++i)
    {
        if(pg[i].x==-1&&pg[i].y==-1||
        (pg[i].x==0&&pg[i].y==0))
        {
            pg[i].x=rand()%40;
            pg[i].y=rand()%40;
        }
        /*if(m<23)
        {
        while(pg[i].y<n/2+m-5&&pg[i].y>n/2-m+5)
        {
            pg[i].y=rand()%40;
        }
        while(pg[i].x<n/2+m-5&&pg[i].x>n/2-m+5)
        {
            pg[i].x=rand()%40;
        }
        }
        while(!pd(pg[i].x,pg[i].y))
        {   
            pg[i].x=rand()%40;
            pg[i].y=rand()%40;
            if(m<23)
            {
            while(pg[i].y<n/2+m-5&&pg[i].y>n/2-m+5)
            {
                pg[i].y=rand()%40;
            }
            while(pg[i].x<n/2+m-5&&pg[i].x>n/2-m+5)
            {
                pg[i].x=rand()%40;
            }
            }
            else
            {
            while(!(pg[i].x==0||pg[i].x==39||pg[i].y==0||
            pg[i].y==39))
            {
                pg[i].x=rand()%40;
                pg[i].y=rand()%40;
            }
            } 
        }*/
    }
    if(fl)
    {
    for(int i=0;i<n;++i)
    {
        for(int j=0;j<n;++j)
        {
            if(!pdp(i,j))cout<<"■";
            else if(ppgpd(i,j))cout<<"●";
            else cout<<"□";
        }
        puts("");
    }
    printf("玩家一输入w,s,a,d移动,"
    "玩家二输入i,j,k,l移动\n");
    printf("现在玩家一蛇长:%d,现在玩家二蛇长:%d\n"
    ,pm[0],pm[1]);
    printf("已过时间:%d秒\n",(clock()-timeh)/1000);
    }
    /*for(int j=0;j<2;++j)
    {
    for(int i=0;i<pm[j];++i)printf("%d %d\n",p[j][i].x,
    p[j][i].y);
    }*/
    /*for(int i=0;i<allm();++i)
    {
        printf("%d %d\n",pg[i].x,pg[i].y);
    } */
    if(kbhit())
    {
        in=getche();
        if((in=='i'||in=='j'||in=='k'||in=='l'))in2=in;
        else in1=in;
        if(!fl)cl1=clock();
        cl2=clock() ;
        fl=1;
    }
    if(kbhit())
    {
        in=getche();
        if((in=='i'||in=='j'||in=='k'||in=='l'))in2=in;
        else in1=in;
        if(!fl)cl1=clock() ;
        cl2=clock() ;
        fl=1;
    }
    //if(qw-(m-5)*20<100)Sleep(100);
    else Sleep(200);
    if(fl)cnm();
    //if(fl)system("cls");
    if(st('w'))
    {
        if(te1[0]==2)
        {
            reverse(p[0],p[0]+pm[0]);
        } 
        t=p[0][0];
        //a[1]=a[0];
        //for(int i=0;i<m;++i)
        //{
        //  a[i]=a[i+1];
        //}
        for(int i=m-1;i>=0;--i)p[0][i+1]=p[0][i];
        p[0][0]=t;
        p[0][0].x--;
        gmy(0);
        te1[0]=1;
    }
    if(st('s'))
    {
        if(te1[0]==1)
        {
            reverse(p[0],p[0]+pm[0]);
        } 
        t=p[0][0];
        //a[1]=a[0];
        //for(int i=0;i<m;++i)
        //{
        //  a[i]=a[i+1];
        //}
        for(int i=m-1;i>=0;--i)p[0][i+1]=p[0][i];
        p[0][0]=t;
        p[0][0].x++;
        gmy(0);
        te1[0]=2;
    }
    if(st('a'))
    {
        if(te1[0]==4)
        {
            reverse(p[0],p[0]+pm[0]);
        } 
        t=p[0][0];
        //a[1]=a[0];
        //for(int i=0;i<m;++i)
        //{
        //  a[i]=a[i+1];
        //}
        for(int i=m-1;i>=0;--i)p[0][i+1]=p[0][i];
        p[0][0]=t;
        p[0][0].y--;
        gmy(0);
        te1[0]=3;
    }
    if(st('d'))
    {
        if(te1[0]==3)
        {
            reverse(p[0],p[0]+pm[0]);
        } 
        t=p[0][0];
        //a[1]=a[0];
        //for(int i=0;i<m;++i)
        //{
        //  a[i]=a[i+1];
        //}
        for(int i=m-1;i>=0;--i)p[0][i+1]=p[0][i];
        p[0][0]=t;
        p[0][0].y++;
        gmy(0);
        te1[0]=4;
    }
    if(st('i'))
    {
        if(te1[1]==2)
        {
            reverse(p[1],p[1]+pm[1]);
        } 
        t=p[1][0];
        //a[1]=a[0];
        //for(int i=0;i<m;++i)
        //{
        //  a[i]=a[i+1];
        //}
        for(int i=m-1;i>=0;--i)p[1][i+1]=p[1][i];
        p[1][0]=t;
        p[1][0].x--;
        gmy(1);
        te1[1]=1;
    }
    if(st('k'))
    {
        if(te1[1]==1)
        {
            reverse(p[1],p[1]+pm[1]);
        } 
        t=p[1][0];
        //a[1]=a[0];
        //for(int i=0;i<m;++i)
        //{
        //  a[i]=a[i+1];
        //}
        for(int i=m-1;i>=0;--i)p[1][i+1]=p[1][i];
        p[1][0]=t;
        p[1][0].x++;
        gmy(1);
        te1[1]=2;
    }
    if(st('j'))
    {
        if(te1[1]==4)
        {
            reverse(p[1],p[1]+pm[1]);
        } 
        t=p[1][0];
        //a[1]=a[0];
        //for(int i=0;i<m;++i)
        //{
        //  a[i]=a[i+1];
        //}
        for(int i=m-1;i>=0;--i)p[1][i+1]=p[1][i];
        p[1][0]=t;
        p[1][0].y--;
        gmy(1);
        te1[1]=3;
    }
    if(st('l'))
    {
        if(te1[1]==3)
        {
            reverse(p[1],p[1]+pm[1]);
        } 
        t=p[1][0];
        //a[1]=a[0];
        //for(int i=0;i<m;++i)
        //{
        //  a[i]=a[i+1];
        //}
        for(int i=m-1;i>=0;--i)p[1][i+1]=p[1][i];
        p[1][0]=t;
        p[1][0].y++;
        gmy(1);
        te1[1]=4;
    }
    for(int j=0;j<2;++j)
    {
    for(int i=0;i<m;++i)
    {
        int ttttt=ppgpd(p[j][i].x,p[j][i].y);
        if(ttttt)
        {
            pm[j]++;
            if(te1[j]==1)
            {
                p[j][m-1]=p[j][m-2];
                p[j][m-1].x++;
            }
            else if(te1[j]==2)
            {
                p[j][m-1]=p[j][m-2];
                p[j][m-1].x--;
            }
            else if(te1[j]==3)
            {
                p[j][m-1]=p[j][m-2];
                p[j][m-1].y++;
            }
            else if(te1[j]==4)
            {
                p[j][m-1]=p[j][m-2];
                p[j][m-1].y--;
            }
            pg[ttttt-1].x=pg[ttttt-1].y=-1;
            break;
        }
    }
    }
    X:;
    }
}
void dr()
{
    cl1=0;cl2=cl1;
    cs();
    printf("请设置蛇动的时间:(单位:1/1000秒)\n");
    scanf("%d",&qw);
    gets(str);
    while(qw<100)
    {
        printf("时间太小,游戏无法运行!\n");
        printf("请设置蛇动的时间:(单位:1/1000秒)\n");
        scanf("%d",&qw);
        gets(str);
    }
    while(qw>500)
    {
        printf("请不要作弊!\n");
        printf("请设置蛇动的时间:(单位:1/1000秒)\n");
        scanf("%d",&qw);
        gets(str);
    } 
    for(int i=0;i<100;++i)pg[i].x=pg[i].y=-1;
    printf("请设置赢的标准:(蛇节数):\n");
    scanf("%d",&hh);
    gets(str);
    while(hh<=20)
    {
        printf("请不要作弊!\n");
        printf("请设置赢的标准:(蛇节数):\n");
        scanf("%d",&hh);
        gets(str);
    }
    system("cls");
    for(int i=0;i<m;++i)
    {
        if(pg[i].x==-1&&pg[i].y==-1)
        {
            pg[i].x=rand()%40;
            pg[i].y=rand()%40;
        }
        while(!pd(pg[i].x,pg[i].y))
        {   
            pg[i].x=rand()%40;
            pg[i].y=rand()%40;
        }
    }
    for(int i=0;i<n;++i)
    {
        for(int j=0;j<n;++j)
        {
            bool f=0;
            for(int k=0;k<m;++k)
            {
                if(a[k].x==i&&j==a[k].y)
                {
                    f=1;
                }
            }
            if(f)cout<<"■";
            else if(pgpd(i,j))cout<<"●";
            else cout<<"□";
        }
        puts("");
    }
    printf("输入w,s,a,d或上下左右移动,输入v存档,输入p暂停/开始\n");
    printf("现在蛇长:%d\n",m);
    printf("已过时间:%d秒\n",cl2);
    for(int i=0;i<5;++i)ss[i]=a[i];
    while(1)
    {
    for(int i=0;i<m;++i)
    {
        if(pg[i].x==-1&&pg[i].y==-1)
        {
            pg[i].x=rand()%40;
            pg[i].y=rand()%40;
        }
        if(m<23)
        {
        while(pg[i].y<n/2+m-5&&pg[i].y>n/2-m+5)
        {
            pg[i].y=rand()%40;
        }
        while(pg[i].x<n/2+m-5&&pg[i].x>n/2-m+5)
        {
            pg[i].x=rand()%40;
        }
        }
        while(!pd(pg[i].x,pg[i].y))
        {   
            pg[i].x=rand()%40;
            pg[i].y=rand()%40;
            if(m<23)
            {
            while(pg[i].y<n/2+m-5&&pg[i].y>n/2-m+5)
            {
                pg[i].y=rand()%40;
            }
            while(pg[i].x<n/2+m-5&&pg[i].x>n/2-m+5)
            {
                pg[i].x=rand()%40;
            }
            }
            else
            {
            while(!(pg[i].x==0||pg[i].x==39||pg[i].y==0||
            pg[i].y==39))
            {
                pg[i].x=rand()%40;
                pg[i].y=rand()%40;
            }
            } 
        }
        }
    if(fl)
    {
    for(int i=0;i<n;++i)
    {
        for(int j=0;j<n;++j)
        {
            bool f=0;
            for(int k=0;k<m;++k)
            {
                if(a[k].x==i&&j==a[k].y)
                {
                    f=1;
                }
            }
            if(f)cout<<"■";
            else if(pgpd(i,j))cout<<"●";
            else cout<<"□";
        }
        puts("");
    }
    cl2=clock()-timet;
    printf("输入w,s,a,d或上下左右移动,输入v存档,输入p暂停/开始\n");
    printf("现在蛇长:%d\n",m);
    printf("已过时间:%.1f秒\n",cl2/1000.0);
    }
    //for(int i=0;i<m;++i)printf("%d %d\n",a[i].x,a[i].y);
    if(kbhit())
    {
        in=getche();
        fl=1;
        if(in==-32)in=getche();
    }
    if(qw-(m-5)*20<100)Sleep(100);
    else Sleep(qw-(m-5)*20);
    if(fl)cnm();
    if(in=='w'||in==72)
    {
        if(te==2)
        {
            reverse(a,a+m);
        } 
        t=a[0];
        //a[1]=a[0];
        //for(int i=0;i<m;++i)
        //{
        //  a[i]=a[i+1];
        //}
        for(int i=m-1;i>=0;--i)a[i+1]=a[i];
        a[0]=t;
        a[0].x--;
        if(a[0].x<0)
        {
            gameover();
        }
        te=1;
    }
    else if(in=='s'||in==80)
    {
        if(te==1)reverse(a,a+m);
        t=a[0];
        //a[1]=a[0];
        //for(int i=2;i<m+1;++i)
        //{
        //  t=a[i];
        //  a[i]=t;
        //}
        //a[0]=a[1];
        for(int i=m-1;i>=0;--i)a[i+1]=a[i];
        a[0]=t;
        a[0].x++;
        if(a[0].x==n)
        {
            gameover();
        }
        te=2;
    }
    else if(in=='a'||in==75)
    {
        if(te==4)reverse(a,a+m);
        t=a[0];
        //a[1]=a[0];
        //for(int i=2;i<m+1;++i)
        //{
        //  t=a[i];
        //  a[i]=t;
        //}
        for(int i=m-1;i>=0;--i)a[i+1]=a[i];
        //a[0]=a[1];
        a[0]=t;
        a[0].y--;
        if(a[0].y<0)
        {
            gameover();
        }
        te=3;
    }
    else if(in=='d'||in==77)
    {
        if(te==3)reverse(a,a+m);
        t=a[0];
        //a[1]=a[0];
        //for(int i=2;i<m+1;++i)
        //{
        //  t=a[i];
        //  a[i]=t;
        //}
        for(int i=m-1;i>=0;--i)a[i+1]=a[i];
        a[0]=t;
        a[0].y++;
        if(a[0].y==n)
        {
            gameover();
        }
        te=4;
    }
    else if(in=='v')
    {
        system("cls"); 
        printf("请输入想要存的档名:(.tcs)\n");
        gets(str);
        while(!strlen(str))
        {
            printf("文件名不能为空!\n");
            gets(str);
        }
        freopen(str,"w",stdout);
        printf("1 ");
        printf("%d\n",m);
        for(int i=0;i<m;++i)
        {
            printf("%d %d\n",a[i].x,a[i].y);
        }
        printf("%d %d\n",qw,hh);
        exit(0);
    } 
    else if(in=='p')
    {
        system("cls");
        int timetime=clock(); 
        char strl=0;
        while(strl!='p')strl=getch();
        in=0; 
        timet=clock()-timetime;
        goto X; 
    }
    else goto X;
    for(int i=0;i<m;++i)
    {
        int ttttt=pgpd(a[i].x,a[i].y);
        if(ttttt)
        {
            m++;
            if(te==1)
            {
                a[m-1]=a[m-2];
                a[m-1].x++;
            }
            else if(te==2)
            {
                a[m-1]=a[m-2];
                a[m-1].x--;
            }
            else if(te==3)
            {
                a[m-1]=a[m-2];
                a[m-1].y++;
            }
            else if(te==4)
            {
                a[m-1]=a[m-2];
                a[m-1].y--;
            }
            pg[ttttt-1].x=pg[ttttt-1].y=-1;
            break;
        }
    }
    if(m==hh)win();
    X:;
    }
}
bool pd(int x,int y)
{
    for(int i=0;i<m;++i)
    {
        if(a[i].x==x&&a[i].y==y)return 0;
    }
    return 1;
}
bool ppd(int x,int y,int yn)
{
    for(int i=0;i<pm[yn];++i)
    {
        if(p[yn][i].x==x&&p[yn][i].y==y)return 0;
    }
    return 1;
}
void win()
{
    MessageBox(NULL,"你赢了!","游戏结束",MB_OK);
    //cl2-cl1
    freopen("C:\\temp\\tcs.txt","r",stdin);
    int aaa,bbb;
    scanf("%d%d",&aaa);
    fclose(stdin);
    aaa=min(cl2-cl1,aaa);
    freopen("C:\\temp\\tcs.txt","w",stdout);
    printf("%d",aaa);
    fclose(stdout);
    freopen("CON","r",stdin);
    freopen("CON","w",stdout);
    char temp1234[20];
    if(log10(aaa)+1==3)
    {
        temp1234[0]=aaa/100+'0';
        temp1234[1]=aaa%100/10+'0';
        temp1234[2]=aaa%10+'0';
    }
    else 
    {
        temp1234[0]=aaa%100/10+'0';
        temp1234[1]=aaa%10+'0';
    }
    MessageBox(NULL,temp1234,
    "单人模式最佳用时:(单位:毫秒)",MB_OK);
    int qwer;
    qwer=MessageBox(NULL,"还玩吗?","选择",MB_YESNO);
    if(qwer==6)
    {
        system("cls");
        for(int i=0;i<5;++i)a[i]=ss[i];
        m=5;
        fl=0;
        in=0;
        main();
    }
    else exit(0);
}
void gameover()
{
    int qwer;
    MessageBox(NULL,"GAME OVER!!!","游戏结束",MB_OK);
    qwer=MessageBox(NULL,"还玩吗?","选择",MB_YESNO);
    if(qwer==6)
    {
        system("cls");
        for(int i=0;i<5;++i)a[i]=ss[i];
        m=5;
        fl=0;
        in=0;
        main();
    }
    else exit(0);
}
void dq()
{
    printf("请输入文件名(.tcs):");
    gets(str);
    bool ffff=0;
    while(!strlen(str))
    {
        if(ffff)printf("文件名不能为空!\n");
        else ffff=1;
        gets(str);
    }
    int temptemp=0;
    freopen(str,"r",stdin);
    scanf("%d",&temptemp);
    if(temptemp!=1)
    {
        printf("文件名不对!请重新输入!\n");
        gets(str);
        dq();
    }
    else
    {
        scanf("%d",&m);
        for(int i=0;i<m;++i)
        {
            scanf("%d%d",&a[i].x,&a[i].y);
        }
        scanf("%d %d",&qw,&hh);
        fclose(stdin);
        return;
    }
}
void cs()
{
    printf("你要干什么?1:重新开始游戏 2:载入游戏"
    "(.tcs)文件必须与本文件放在一个目录下\n");
    int xin;
    scanf("%d",&xin);
    gets(str);
    if(xin==1)return;
    else if(xin==2) dq();
    else 
    {
        cnm();
        cs();
    }
}
void cnm()
{
    HANDLE hOut;
    COORD xy{0,0};
    hOut=GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(hOut,xy);
}
int pgpd(int x,int y)
{
    for(int i=0;i<m;++i)
    {
        if(x==pg[i].x&&y==pg[i].y)return i+1;
    }
    return 0;
}
int ppgpd(int x,int y)
{
    for(int i=0;i<allm();++i)
    {
        if(x==pg[i].x&&y==pg[i].y)return i+1;
    }
    return 0;
}

3. 切水果

#include<bits/stdc++.h>
#include<windows.h>
#include<stdio.h>
#include<conio.h>
#include<time.h>
using namespace std;
float X,Y;int Left=1,Right=30,Up=1,Down=20;bool Medal[22],Fr[6],Cheat=0;
int Clocknum,T,Score,Combo,FruitNum,Jump_2,SS,FT[11],FC,FCT,FCF,FO,FFFt,FXia,FUp;
int up,dn,lf,rt,sy;float Vx,Vy;int Walk,Jump,Rush;
int Attention,Jumplock,AttTime,Dnlock,Lflock,Rtlock;
int RushT1,RushT2,RushT3;float Rush_Vx,Rush_Vy,Rush_x0,Rush_y0,Rush_X,Rush_Y;
const float G=0.038,t0=0.2,t00=0.8,t000=0.3;//时间参量 
struct node
{int Type;
    float X,Y,R,x0,y0,x1,y1;
    float Vx,Vy;
    int Life,color,brounce,half,Angle,AngleSpeed,t;
}F[100001];int l,m;
int N[100][45],M[100][45];

float Sin(int a) {return sin(3.1416*a/180);}float Cos(int a) {return cos(3.1416*a/180);}
void Color(int a){if(a==0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);if(a==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);if(a==4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);if(a==5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);if(a==6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);if(a==7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
if(a==-10) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE);if(a==-11) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_GREEN|BACKGROUND_BLUE);if(a==-12) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_GREEN);if(a==-13) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_RED|BACKGROUND_BLUE);if(a==-14) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_RED);if(a==-15) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_RED|BACKGROUND_GREEN);if(a==-16) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_BLUE);if(a==-17) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE);
if(a==-1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE);if(a==-2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_GREEN);if(a==-3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_BLUE);if(a==-4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_RED);if(a==-5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN);if(a==-6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_BLUE);if(a==-7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE);
}
int To_int(float a){return int(a+0.5);}float Abs(float a){return (a>=0)?a:-a;}
void Setpos(float x,float y){COORD pos;pos.X=To_int(x)*2+1,pos.Y=To_int(y)+3;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);}
void Put_Frame(){Color(0);int x=Right-Left+1,y=Down-Up+1;for(int i=0;i<=x+1;i++)for(int j=0;j<=y+1;j++){if(i==0||j==0||i==x+1||j==y+1) Setpos(i,j),printf("[]");}}
void Clear(float x,float y){
//  if(RushT3>0) Color(0);else 
    Color(-Abs(N[To_int(x)*2][To_int(y)]));Setpos(x,y),printf("  ");
    M[To_int(x*2)][To_int(y)]=-1;
}void Medal_();
void Put_Man(float x1,float y1){
    int x=To_int(x1);int y=To_int(y1);
    if(y<Up||x<Left||x>Right||y>Down) return;
    if(Rush==1||AttTime>0||Attention>0) Color(5);
    else Color(1);
    Setpos(x1,y1),printf("●");
}
void Cir(float r,char a){//不要改 ,冲刺动画1 
    int num=7,Angle=r*10;if(r<=2) num=4;
    int next=360/num;
    for(int i=Angle;i<360+Angle;i+=next)
    {
        float x,y;
        x=X+Cos(i)*r;
        y=Y+Sin(i)*r;
        if(y<Up||x<Left||x>Right||y>Down) continue;
        if(a==' '&&N[To_int(x*2)][To_int(y)]==0&&N[To_int(x*2)+1][To_int(y)]==0&&N[To_int(x*2)-1][To_int(y)]==0) Setpos(x,y),Color(0),printf(" ");
        else if(N[To_int(x*2)][To_int(y)]==0&&N[To_int(x*2)+1][To_int(y)]==0&&N[To_int(x*2)-1][To_int(y)]==0) Setpos(x,y),Color(-14),printf(" ");
    }
}
void Cir2(int k,float r,char a){//水果整圆 
    int col=F[k].color;
    float x0=F[k].X,y0=F[k].Y,R=F[k].R;
    for(int i=y0-R;i<=y0+R;i++){float Ax=sqrt(R*R-(i-y0)*(i-y0));//cout<<i<<' '<<x0-Ax+0.5<<' '<<x0+Ax<<' ';
    for(float k=x0-Ax+0.5;k<x0+Ax;k+=0.5)
        if(a==' ') N[To_int(k*2)][i]=0; else N[To_int(k*2)][i]=col;
    }
    int num=24,Angle=0;if(r<=1) num=4;else if(r<=3) num=12;
    int next=360/num;
    for(int i=Angle;i<360+Angle;i+=next)
    {
        float x,y;
        x=F[k].X+Cos(i)*r;
        y=F[k].Y+Sin(i)*r;
        if(y<Up||x<Left||x>Right||y>Down) continue;
        else {if(a==' ') N[To_int(x*2)][To_int(y)]=0; else N[To_int(x*2)][To_int(y)]=col+10;}
    }for(int i=0;i<360;i+=90)
    {
        float x,y;
        x=F[k].X+Cos(i)*r;
        y=F[k].Y+Sin(i)*r;
        if(y<Up||x<Left||x>Right||y>Down) continue;
        else {if(a==' ') N[To_int(x*2)][To_int(y)]=0; else N[To_int(x*2)][To_int(y)]=col+10;}
    }
}
void Cir3(int xx,int yy,float r,char a){//不要改 冲刺动画2
    r++;
    int num=8,Angle=r*10-17;if(r<=2) num=4;
    int next=360/num;
    for(int i=Angle;i<360+Angle;i+=next)
    {
        float x,y;
        x=xx+Cos(i)*r;
        y=yy+Sin(i)*r;
        if(y<Up||x<Left||x>Right||y>Down) continue;
        if(a==' '&&N[To_int(x*2)][To_int(y)]==0&&N[To_int(x*2)+1][To_int(y)]==0&&N[To_int(x*2)-1][To_int(y)]==0) Setpos(x,y),Color(0),printf(" ");
        else if(N[To_int(x*2)][To_int(y)]==0&&N[To_int(x*2)+1][To_int(y)]==0&&N[To_int(x*2)-1][To_int(y)]==0) Setpos(x,y),Color(-14),printf(" ");
    }
}
void Cir4(int k,float r,char a){//半圆 
    int col=F[k].color;
    int num=24,Angle=F[k].Angle;if(r<=1) num=4;else if(r<=3) num=12;
    int next=360/num;
    for(int i=Angle;i<180+Angle;i+=next)
    {
        float x,y;
        x=F[k].X+Cos(i)*r;
        y=F[k].Y+Sin(i)*r;
        if(y<Up||x<Left||x>Right||y>Down) continue;
        else {if(a==' ') N[To_int(x*2)][To_int(y)]=0; else N[To_int(x*2)][To_int(y)]=col;}
    }bool left=0;
    float x0=F[k].X+Cos(Angle)*r    ,y0=F[k].Y+Sin(Angle)*r;
    float x1=F[k].X+Cos(Angle+180)*r,y1=F[k].Y+Sin(Angle+180)*r;
    float Ax=x1-x0,Ay=y1-y0,Dis=sqrt(Ax*Ax+Ay*Ay);
    if(Ay<0) swap(x1,x0),swap(y1,y0),Ax*=-1,Ay*=-1;
    if(Ax<0) left=1;
    float ax=Ax/Dis*1.0,ay=Ay/Dis*1.0;
    float i=x0,j=y0;
    while(j<=y1&&((i<=x1&&left==0)||(i>=x1&&left==1))){
        if(j<Up||i<Left||i>Right||j>Down) int nil=0;
        else {if(a==' ') N[To_int(i*2)][To_int(j)]=0; else N[To_int(i*2)][To_int(j)]=col;}
        i+=ax;j+=ay;
    }for(int i=0;i<360;i+=90)
    {
        if(i<Angle||i>Angle+180) continue; 
        float x,y;
        x=F[k].X+Cos(i)*r;
        y=F[k].Y+Sin(i)*r;
        if(y<Up||x<Left||x>Right||y>Down) continue;
        else  {if(a==' ') N[To_int(x*2)][To_int(y)]=0; else N[To_int(x*2)][To_int(y)]=col;}
    }
}
void Line(float x0,float y0,float x1,float y1,char a,int col){bool left=0;
if(col==-5) m++,F[m].Type=-1,F[m].Life=1,F[m].t=0,F[m].x0=x0,F[m].y0=y0,F[m].x1=x1,F[m].y1=y1;
    float Ax=x1-x0,Ay=y1-y0,Dis=sqrt(Ax*Ax+Ay*Ay);
    if(Ay<0) swap(x1,x0),swap(y1,y0),Ax*=-1,Ay*=-1;
    if(Ax<0) left=1;
    float ax=Ax/Dis*0.9,ay=Ay/Dis*0.9;
    float i=x0,j=y0;
    while(j<=y1&&((i<=x1&&left==0)||(i>=x1&&left==1))){
        if(j<Up||i<Left||i>Right||j>Down) int nil=0;
        else Setpos(i,j),Color(col),printf("  ");
        i+=ax;j+=ay;
    }Color(0);
}
void Print_Fruit(int i,char a){
    if(F[i].half==1) Cir4(i,F[i].R,a);
    else Cir2(i,F[i].R,a);
}
void Go(){
        if(Y<=Up) Y=Up,AttTime=0;
        if(Y>=Down){FC=0;FCF=0;if(clock()-FCT>10000&&Medal[20]==0&&T>10000) Medal[20]=1,Medal_(); FCT=clock();
            if(Jump>=1) Vy=0,Vx/=2,Y=Down,Jump=0,Walk=1;//触地 
        }
        if(X<=Left) X=Left,Vx=0;if(X>=Right) X=Right,Vx=0;

    int Num=up+dn+lf+rt;

    if(RushT3>0) RushT3--;
    if(RushT2>0){
        if(Rush==2&&RushT2<4) Cir3(Rush_X,Rush_Y,RushT2,' ');
        RushT2--;
        if(RushT2==0) {Rush=0,RushT3=3,Vx=(Vx+Rush_Vx*t00)/3.0,Vy=(Vy+Rush_Vy*t00)/3.0,Line(X,Y,Rush_x0,Rush_y0,' ',-5),Color(0);if(Y<=Up) RushT3=0,AttTime=0,Vy=max(0.1,(double)Vy);FC++;FO++;if(FC>=8&&Medal[16]==0) Medal[16]=1,Medal_();if(FO>=10&&Medal[18]==0) Medal[18]=1,Medal_();}
        if(Rush==2) Cir3(Rush_X,Rush_Y,RushT2,'|');
    }
    if(AttTime>0){AttTime--;
        if(Num!=0){
            if(up==1&&Jumplock!=0) int nil=0;
            else if(dn==1&&Dnlock!=0) int nil=0;
            else if(Num==1&&lf==1&&Lflock!=0) int nil=0;
            else if(Num==1&&rt==1&&Rtlock!=0) int nil=0;
            else {Attention=0;AttTime=0;
            if(RushT1==0&&Rush==0) RushT1=6;
            }
        }
    }
    if(RushT1!=0) {
        if(RushT1<6) Cir(RushT1,' ');
        RushT1--;
        if(RushT1==0){//开始冲刺 
            int non=0;//non很重要 
            if(Num==1){
                if(up==1&&Jumplock==0) Rush_Vx=0,Rush_Vy=-1.3,Jumplock=1;
                else if(lf==1&&Lflock==0) Rush_Vx=-1.8,Rush_Vy=0,Lflock=1;
                else if(rt==1&&Rtlock==0) Rush_Vx=1.8,Rush_Vy=0,Rtlock=1;
                else if(dn==1&&Dnlock==0) Rush_Vx=0,Rush_Vy=3,Dnlock=1;
                else non=1;
            }
            else if(Num==2){
                if(up==1&&lf==1&&Jumplock==0) Rush_Vx=-1.5,Rush_Vy=-1.5,Jumplock=1;
                else if(up==1&&rt==1&&Jumplock==0) Rush_Vx=1.5,Rush_Vy=-1.5,Jumplock=1;
                else if(dn==1&&lf==1&&Dnlock==0) Rush_Vx=-1.5,Rush_Vy=1.5,Dnlock=1;
                else if(dn==1&&rt==1&&Dnlock==0) Rush_Vx=1.5,Rush_Vy=1.5,Dnlock=1;
                else non=1;
            }
            else non=1;
            if(non==0) {Rush_x0=X,Rush_y0=Y,Rush=1,RushT2=4;}
        }
        else Cir(RushT1,'|');
    }
    if(Walk==1&&Jump==0){//正在触地 
        FC=0;FCF=0;if(clock()-FCT>10000&&Medal[20]==0&&T>10000) Medal[20]=1,Medal_(); FCT=clock();
        if(Abs(Vx)<1.95*t0) Attention=0;
        if(Num==0) Vx*=0.6;//摩擦 
        if(Num==1||(Num==2&&up==1)){
            if(lf==1){
                if(Vx<=2*t0&&Vx>-0.8*t0) Vx-=0.5*t0;
                else if(Vx<=-0.8*t0&&Vx>-2*t0) Vx-=0.1*t0;
                else if(Vx<=-2*t0){
                    Vx=-2*t0,Attention=1;
                    if(up==1) Rush_x0=X,Rush_y0=Y,Rush_X=X-1,Rush_Y=Y-2,Rush=2,RushT2=4,Rush_Vx=-1.5,Rush_Vy=-1.5,Jumplock=1; 
                }
            }
            if(rt==1){
                if(Vx<=0.8*t0&&Vx>-2*t0) Vx+=0.5*t0;
                else if(Vx>=0.8*t0&&Vx<2*t0) Vx+=0.1*t0;
                else if(Vx>=2*t0){
                    Vx=2*t0,Attention=1;
                    if(up==1) Rush_x0=X,Rush_y0=Y,Rush_X=X+1,Rush_Y=Y-2,Rush=2,RushT2=4,Rush_Vx=1.5,Rush_Vy=-1.5,Jumplock=1;
                }
            }
            if(up==1){
                Vy=-0.6;Walk=0;Jump=1;Jumplock=1;
            }
        }
    }
    if(Jump>=1&&Rush==0){//普通滞空 
    int num=up+dn;
        if(Abs(Vy)<=0.05) Attention=1,AttTime=7;else Attention=0;
        if(num==1&&up==1&&Jump==1&&Attention==0&&AttTime==0&&Jumplock==0&&Jump_2==1){
            if(Vy>-0.2) Vy=-0.4;
            if(Vy<=-0.2) Vy-=0.2;
            Jump=2;//二段跳 
        }
        if(num==1&&dn==1){
            Vy+=0.1; 
        }
        Vy+=G;
    }
    Clear(X,Y);
    if(RushT1>0) int nil=0;
    else if(Rush==1) X+=Rush_Vx*t00,Y+=Rush_Vy*t00;
    else X+=Vx,Y+=Vy;

    if(Y<Up||X<Left||X>Right||Y>Down){
        if(Rush>0||RushT3>0)
        {
            if((X<Left||X>Right)&&Rush_Vy==0) Vy=-0.2,Vx=0;
        }
    }
    if(Y<=Up) Y=Up;if(X<=Left) X=Left;if(X>=Right) X=Right;if(Y>=Down) Y=Down;
    Put_Man(X,Y);
}
void CreatF(){
if(clock()-Clocknum>=25) return;
if(FruitNum>=5) return;
    m++;F[m].Life=2;F[m].brounce=1;F[m].half=0;F[m].t=0; 
    int R=rand()%5+1;F[m].Type=R;
    if(R==1) F[m].R=3.45,F[m].color=2;//="Watermelon";
    if(R==2) F[m].R=1.85,F[m].color=4;//="Strawberry";
    if(R==3) F[m].R=2.0,F[m].color=5;//="Orange    ";
    if(R==4) F[m].R=2.45,F[m].color=3;//="Grapes    ";
    if(R==5) F[m].R=1.85,F[m].color=6;//="Blueberry ";
    int r=rand()%6+1;
    if(r<=6) {//上下方 
        F[m].X=Left+(rand()%100)*(Right-Left)/100.0;
        F[m].Vx=1.0-(rand()%100)*2/100.0;
        if(r>1) F[m].Y=Down-1,F[m].Vy=-1-(rand()%100)*1/100.0;
        else F[m].Y=Up+1,F[m].Vy=(rand()%100)*1/100.0;
        F[m].Angle=rand()%360,F[m].AngleSpeed=rand()%20+5;
        if(r>1) F[m].Y+=F[m].R;else F[m].Y-=F[m].R;
    }
}
void Move(int Stage){//移动的状态调整,准备移步至Go函数 
    float x,y,r;FruitNum=0;
    for(int i=l;i<=m;i++){

        if(i==l&&F[i].Life==0){l++;if(l>m) l=1,m=0;continue;}
        else if(F[i].Life==0) {continue;}
        if(F[i].Type==-1){F[i].t++;
            if(F[i].t==3) Line(F[i].x0+Rush_Vx,F[i].y0+Rush_Vy,F[i].x1+Rush_Vx,F[i].y1+Rush_Vy,' ',-1);
            if(F[i].t>=4) Line(F[i].x0,F[i].y0,F[i].x1,F[i].y1,' ',0),Line(F[i].x0+Rush_Vx,F[i].y0+Rush_Vy,F[i].x1+Rush_Vx,F[i].y1+Rush_Vy,' ',0),F[i].Life=0;
        continue;}
        if(F[i].Life==2){F[i].t++;
            if(F[i].t>10) {Color(0);x=F[i].X,y=(F[i].Y>=Down)?Down:Up;
                    M[To_int(x*2)][To_int(y)]=-1;
                F[i].Life=1;}
            else  Color((F[i].t%6<=2)?-4:-5),Setpos(F[i].X,(F[i].Y>=Down)?Down:Up),cout<<"!!";
            Color(0);
            continue;
        }
        Print_Fruit(i,' ');
        if(F[i].half==1) F[i].R*=0.96;
        if(F[i].half==1&&F[i].t>=20){F[i].Life=0;continue;}
        if(F[i].Type>=1&&F[i].Type<=5) FruitNum++;

        x=F[i].X,y=F[i].Y,r=F[i].R;
        float D=sqrt((x-X)*(x-X)+(y-Y)*(y-Y)),D2=sqrt((Rush_x0-x)*(Rush_x0-x)+(Rush_y0-y)*(Rush_y0-y));
        if((D<=r*1.0||D2<=r*1.0)&&(Rush!=0||RushT3!=0)&&F[i].half==0) {
        Combo++,Score+=10*Combo;FO=0;
        if(Medal[8]==0&&Rush_Vx==0&&Rush_Vy>0) FXia++;if(FXia>=30) Medal[8]=1,Medal_(); if(Medal[14]==0&&Rush_Vx==0&&Rush_Vy<0) FUp++;if(FUp>=40) Medal[14]=1,Medal_(); 
        if(Medal[3]==0) Medal[3]=1,Medal_();if(Fr[F[i].Type]==0) {Fr[F[i].Type]=1;if(Fr[1]+Fr[2]+Fr[3]+Fr[4]+Fr[5]==5) Medal[4]=1,Medal_();}if(Combo>=15&&Medal[5]==0) Medal[5]=1,Medal_();if(Combo>=40&&Medal[17]==0) Medal[17]=1,Medal_();if(Score==520&&Medal[6]==0) Medal[6]=1,Medal_();
        if(Score>=1000&&Medal[15]==0) Medal[15]=1,Medal_();if(Score>=10000&&Medal[19]==0) Medal[19]=1,Medal_();if(Score>=100000&&Medal[21]==0) Medal[21]=1,Medal_();
        FCF++;if(FCF>=5&&Medal[9]==0) Medal[9]=1,Medal_();if(FCF>=10&&Medal[12]==0) Medal[12]=1,Medal_();
            if(F[i].Y<=Up&&Medal[13]==0) Medal[13]=1,Medal_(); if(F[i].Y>=Down&&Medal[7]==0) Medal[7]=1,Medal_();if(Medal[10]==0) {FFFt++;if(FFFt>10) FFFt-=10;FT[FFFt]=clock();int Kkk=5000;for(int kk=1;kk<=10;kk++) Kkk=max(Kkk,(int)(clock()-FT[kk]));if(Kkk<5000) Medal[10]=1,Medal_();} 

            F[i].Life=0;
            for(int tt=1;tt<=3;tt++){
            if(tt==1) for(int t=1;t<=2;t++) m++,F[m].R=F[i].R-0.6+(rand()%10+10)/20.0,F[m].Life=1,F[m].Type=6,F[m].color=4,F[m].brounce=0,F[m].half=1,F[m].X=F[i].X,F[m].Y=F[i].Y,F[m].t=0;
            if(tt==2) for(int t=1;t<=2;t++) m++,F[m].R=F[i].R-0.6+(rand()%10+10)/20.0,F[m].Life=1,F[m].Type=6,F[m].color=F[i].color,F[m].brounce=0,F[m].half=1,F[m].X=F[i].X,F[m].Y=F[i].Y,F[m].t=0;
            if(tt==3) for(int t=1;t<=2;t++) m++,F[m].R=F[i].R-0.4,F[m].Life=1,F[m].Type=F[i].Type,F[m].color=F[i].color+10,F[m].brounce=0,F[m].half=1,F[m].X=F[i].X,F[m].Y=F[i].Y,F[m].t=0;
            if(Rush_Vx!=0&&Rush_Vy==0){//横切 
                int turn=(Rush_Vx>0)?1:-1;
                F[m-1].Angle=180,F[m-1].AngleSpeed=turn*(5+rand()%10),F[m-1].Vx=F[i].Vx+turn*(rand()%10+10)*0.1,F[m-1].Vy=F[i].Vy-(rand()%10+10)*0.05-1;//上 
                F[m].Angle=0,F[m].AngleSpeed=turn*(-5-rand()%10),F[m].Vx = F[i].Vx+turn*(rand()%10+10)*0.1,F[m].Vy = F[i].Vy+(rand()%10+10)*0.05;//下 
            }else if(Rush_Vy!=0&&Rush_Vx==0){//竖切 
                int turn=(Rush_Vy>0)?1:-1;
                F[m-1].Angle=270,F[m-1].AngleSpeed=turn*(5+rand()%10),F[m-1].Vx=F[i].Vx+(rand()%10+10)*0.1,F[m-1].Vy=F[i].Vy+(rand()%10+10)*0.1*turn-0.5;//→ 
                F[m].Angle=90,F[m].AngleSpeed=turn*(-5-rand()%10),F[m].Vx = F[i].Vx-(rand()%10+10)*0.1,F[m].Vy = F[i].Vy+(rand()%10+10)*0.1*turn-0.5;//左 
            }else{
                if(Rush_Vy*Rush_Vx<0){int turn=(Rush_X<0)?1:-1; //右上 
                    F[m-1].Angle=135,F[m-1].AngleSpeed=-turn*(5+rand()%10),F[m-1].Vx=F[i].Vx-(rand()%10+10)*0.1,F[m-1].Vy=F[i].Vy-(rand()%10+10)*0.04-1;//上 
                    F[m].Angle=315,F[m].AngleSpeed=turn*(5+rand()%10),F[m].Vx=F[i].Vx+(rand()%10+10)*0.1,F[m].Vy=F[i].Vy+(rand()%10+10)*0.04;//下 
                } 
                if(Rush_Vy*Rush_Vx>0){int turn=(Rush_X<0)?1:-1;//左上 
                    F[m-1].Angle=225,F[m-1].AngleSpeed=-turn*(5+rand()%10),F[m-1].Vx=F[i].Vx+(rand()%10+10)*0.1,F[m-1].Vy=F[i].Vy-(rand()%10+10)*0.04-1;//上 
                    F[m].Angle=45,F[m].AngleSpeed=turn*(5+rand()%10),F[m].Vx=F[i].Vx-(rand()%10+10)*0.1,F[m].Vy=F[i].Vy+(rand()%10+10)*0.04;//下 
                }
            }if(tt<=1) F[m-1].Vx*=1.2,F[m-1].Vy*=1.2,F[m].Vx*=1.2,F[m].Vy*=1.2;
            }
            continue;
        }
        F[i].t++;
        F[i].Angle+=F[i].AngleSpeed;
        if(F[i].Angle>=360) F[i].Angle-=360;
        if(F[i].Angle<0) F[i].Angle+=360;

        F[i].X+=F[i].Vx*t000;F[i].Y+=F[i].Vy*t000;
        x=F[i].X,y=F[i].Y;

        if(y+F[i].R<Up||y-F[i].R>Down){
            if(F[i].t<=5) {F[i].Vy*=-1;
            if(y+F[i].R<Up) F[i].Y=-F[i].R+Up;
            if(y-F[i].R>Down) F[i].Y=F[i].R+Down;}

        F[i].Life=0;continue;}
        if(x<Left||x>Right){
            if(F[i].brounce>0||F[i].t<=5){if(F[i].brounce>0) F[i].brounce--;F[i].Vx*=-1;
                if(x<Left) F[i].X=Left;
                if(x>Right) F[i].X=Right;
            }
            else {F[i].Life=0;continue;}
        }
        if(Stage==0||F[i].Type<=0||F[i].Type>=5) F[i].Vy+=G;

        Print_Fruit(i,'*');
    }
}
void Print(){
    for(int i=Left*2;i<=Right*2;i++)
    for(int j=Up;j<=Down;j++){
        if(N[i][j]!=M[i][j]){
            if(N[i][j]==0) Color(0),Setpos(i/2.0,j),printf("  ");
            else Color(-Abs(N[i][j])),Setpos(i/2.0,j),printf("  ");
        }
        M[i][j]=N[i][j];
    }memset(N,0,sizeof(N));Color(0);
}
void Slow(char *p) {while(1){if(*p!=0) printf("%c",*p++);else break;if(!kbhit()) Sleep(20);}}
int speed;
void Start(){Color(1);SS=1;
    Setpos(2,2),cout<<"水果忍胎 0.9 ";
    Setpos(10,3),cout<<"作者:胎神大大";
    Setpos(2,6),cout<<"按 x 进入教学模式,按 y 直接开始游戏!";
    Setpos(2,8),cout<<"除了封面其他的都做好了qwq,但是做封面好麻烦所以说不想做直接发布了   我这边用的 Win11 输出的字符画很流畅,不知道你们电脑会不会有什么黑点阿残影阿输出错误之类的,总之这个游戏玩起来确实蛮爽的!大家加油,看看哪个先点满成就哈(万一有 BUG 呢是吧,毕竟有些成就死活打不出来...另外因为有成就所以说顺便把存档也做了,大家放心打)";
    Setpos(1,20),cout<<"你可根据电脑性能重新选择画面流畅度:默认为 均衡 流畅度,按 q 调为低流畅,按 w 调为中低流畅,按 e 调为极高流畅 (盲目调高流畅度会导致画面卡顿)";speed=4;
    A:char e=_getch();if(e=='y') return;else if(e=='x') int nil=0;else if(e=='q') {speed=10;goto A;}else if(e=='w') {speed=4;goto A;}else if (e=='e') {speed=2;goto A;}else goto A;
    int Stage=0,StageY=0,StageT=0;
    system("cls");memset(N,0,sizeof(N));memset(M,0,sizeof(M));
    Put_Frame();
    T=0;Clocknum=0;X=2;Y=1;Vx=Vy=0;Jump=1;Put_Man(X,Y);//初始状态掉落 
    memset(F,0,sizeof(F));l=m=0;Score=Combo=0;
    while(1) if(clock()-Clocknum>=25)
    {T++;
        Clocknum=clock();
        up=dn=lf=rt=0;
        if(GetAsyncKeyState(VK_UP)&0x8000) up=1;else Jumplock=0; 
        if(GetAsyncKeyState(VK_DOWN)&0x8000) dn=1;else Dnlock=0; 
        if(GetAsyncKeyState(VK_LEFT)&0x8000) lf=1;else Lflock=0; 
        if(GetAsyncKeyState(VK_RIGHT)&0x8000) rt=1;else Rtlock=0; 
        if(kbhit()) {char g=_getch();if(g==' ') Sleep(100),Setpos(16,3),sy++,Color(0),system("pause");if(g=='y'&&Stage>=1) StageY=1;if(g=='x'&&Stage==2) Jump_2=1,Setpos(26,26),Color(5),cout<<"开";}
        if(sy>=1) Setpos(16,3),cout<<"                           ",sy=0;

        if(Stage==0&&StageT==0){
            Setpos(2,22),Color(0),Slow("欢迎来到 忍者神胎 教学关卡");Sleep(500);
            Setpos(2,24),Color(0),Slow("本游戏只有↑↓→←四种按键操作,想必是十分简单的,但又有很大的发挥空间!");Sleep(500);
            Setpos(2,26),Color(0),Slow("按下↑↓→←进行移动。注:空中按 ↓ 有加速下落的效果");
            StageT=T;   
        }
        if(Stage==0&&T-StageT>=100)//5s
        {Stage++;
            Setpos(2,22),Color(0),printf("                           ");
            Setpos(2,24),Color(0),printf("                                                                        ");   
            Setpos(2,26),Color(0),printf("                                                                ");
            m++,F[m].Angle=0,F[m].AngleSpeed=0,F[m].color=2,F[m].half=0,F[m].Life=1,F[m].R=3.45,F[m].t=0,F[m].Type=1,F[m].Vx=F[m].Vy=0,F[m].X=16,F[m].Y=13;Print();
            Setpos(2,22),Color(0),Slow("按↑跳起后,立刻在空中重新  长按 方向键 可以进行挥砍!来试试刀法!");
            Setpos(2,24),Color(0),Slow("按 y 开启下一阶段教学");
        }
        if(Stage==1&&F[1].Life==1) StageT=T;
        if(Stage==1&&F[1].Life==0&&T-StageT>=20){
            StageT=T;
            l=0,m++,F[1].Angle=45,F[1].AngleSpeed=0,F[1].color=2,F[1].half=0,F[1].Life=1,F[1].R=3.45,F[1].t=0,F[1].Type=1,F[1].Vx=F[1].Vy=0,F[1].X=16,F[1].Y=13;
        }
        if(StageY==1&&Stage==1){StageY=0;Stage++;memset(M,-1,sizeof(M));memset(N,0,sizeof(N));
            Setpos(2,22),Color(0);printf("                                                               ");
            Setpos(2,24),Color(0);printf("                      "); 
            l=0;for(int tt=1;tt<=3;tt++) m++,F[tt].Angle=0,F[tt].AngleSpeed=0,F[tt].color=tt,F[tt].half=0,F[tt].Life=1,F[tt].R=1.45,F[tt].t=0,F[tt].Type=1,F[tt].Vx=F[tt].Vy=0,F[tt].X=16,F[tt].Y=19-tt*5;
            Print();Setpos(2,22),Color(0),Slow("接下来练习连招!");
            Setpos(2,24),Color(0),Slow("在空中可以连续按  ↑ 进行多段跳跃,如果你不习惯,可以按 x 开启二段跳能力(PS:连招的秘诀是把握节奏)");
            Setpos(2,26),Color(0),Slow("按 y 开启下一阶段教学      ( 二段跳能力状态:       )");
            Setpos(26,26),Color(5);cout<<"关";
        }
        if(Stage==2&&F[1].Life+F[2].Life+F[3].Life==3) StageT=T;
        if(Stage==2&&F[1].Life+F[2].Life+F[3].Life<3&&T-StageT>=50){
            StageT=T;
            l=0;for(int tt=1;tt<=3;tt++) m++,F[tt].Angle=0,F[tt].AngleSpeed=0,F[tt].color=tt,F[tt].half=0,F[tt].Life=1,F[tt].R=1.45,F[tt].t=0,F[tt].Type=1,F[tt].Vx=F[tt].Vy=0,F[tt].X=16,F[tt].Y=19-tt*5;
        }
        if(StageY==1&&Stage==2){StageY=0;Stage++;memset(M,-1,sizeof(M));memset(N,0,sizeof(N));
            Setpos(2,22),Color(0),printf("                 ");
            Setpos(2,24),Color(0),printf("                                                                                                  ");
            Setpos(2,26),Color(0),printf("                                                          ");
            l=0;for(int tt=1;tt<=4;tt++) m++,F[tt].Angle=0,F[tt].AngleSpeed=0,F[tt].color=tt,F[tt].half=0,F[tt].Life=1,F[tt].R=1.45,F[tt].t=0,F[tt].Type=1,F[tt].Vx=F[tt].Vy=0;
            F[1].X=9,F[1].Y=15.5;F[2].X=17.3,F[2].Y=9.4;F[3].X=9.6,F[3].Y=3.5;F[4].X=17,F[4].Y=1;

            Print();Setpos(2,22),Color(0);Slow("空中折线跳:先跳起,再在空中向上连续左右冲刺,是一种杀伤面积广,上升距离大的连招");
            Setpos(2,24),Color(0);Slow("按 y 开启下一阶段教学 (本关四个果子可一个连招砍完,试试精细操作!)"); 
        }
        if(Stage==3&&F[1].Life+F[2].Life+F[3].Life+F[4].Life==4) StageT=T;
        if(Stage==3&&F[1].Life+F[2].Life+F[3].Life+F[4].Life<4&&T-StageT>=50){
            StageT=T;

            l=0;for(int tt=1;tt<=4;tt++) m++,F[tt].Angle=0,F[tt].AngleSpeed=0,F[tt].color=tt,F[tt].half=0,F[tt].Life=1,F[tt].R=1.45,F[tt].t=0,F[tt].Type=1,F[tt].Vx=F[tt].Vy=0;
            F[1].X=9,F[1].Y=15.5;F[2].X=17.3,F[2].Y=9.4;F[3].X=9.6,F[3].Y=3.5;F[4].X=17,F[4].Y=1;}
        if(StageY==1&&Stage==3){StageY=0;Stage++;memset(M,-1,sizeof(M));memset(N,0,sizeof(N));
            Setpos(2,22),Color(0),printf("                                                                                         ");
            Setpos(2,24),Color(0),printf("                                                                            ");
            l=0;for(int tt=1;tt<=4;tt++) m++,F[tt].Angle=0,F[tt].AngleSpeed=0,F[tt].color=tt,F[tt].half=0,F[tt].Life=1,F[tt].R=1.45,F[tt].t=0,F[tt].Type=1,F[tt].Vx=F[tt].Vy=0;
            F[1].X=15.4,F[1].Y=15.5;F[2].X=7.3,F[2].Y=9.5;F[3].X=15.4,F[3].Y=3.6;F[4].X=15.4,F[4].Y=8.5;

            Print();Setpos(2,22),Color(0);Slow("三角围杀:先使用折线跳跳至目标上方,再向下瞄准,冲刺切除下方水果");
            Setpos(2,24),Color(0);Slow("按 y 开启下一阶段教学"); 
        }
        if(Stage==4&&F[1].Life+F[2].Life+F[3].Life+F[4].Life==4) StageT=T;
        if(Stage==4&&F[1].Life+F[2].Life+F[3].Life+F[4].Life<4&&T-StageT>=50){
            StageT=T;

            l=0;for(int tt=1;tt<=4;tt++) m++,F[tt].Angle=0,F[tt].AngleSpeed=0,F[tt].color=tt,F[tt].half=0,F[tt].Life=1,F[tt].R=1.45,F[tt].t=0,F[tt].Type=1,F[tt].Vx=F[tt].Vy=0;
            F[1].X=15.4,F[1].Y=15.5;F[2].X=7.3,F[2].Y=9.5;F[3].X=15.4,F[3].Y=3.6;F[4].X=15.4,F[4].Y=8.5;}
        if(StageY==1&&Stage==4){StageY=0;Stage++;memset(M,-1,sizeof(M));memset(N,0,sizeof(N));
            Setpos(2,22),Color(0),printf("                                                                              ");
            Setpos(2,24),Color(0),printf("                                                                            ");
            l=0;for(int tt=1;tt<=4;tt++) m++,F[tt].Angle=0,F[tt].AngleSpeed=0,F[tt].color=tt,F[tt].half=0,F[tt].Life=1,F[tt].R=1.45,F[tt].t=0,F[tt].Type=1,F[tt].Vx=F[tt].Vy=0;
            F[1].X=4.7,F[1].Y=15.5;F[2].X=1,F[2].Y=15.5;F[3].X=1,F[3].Y=11;F[4].X=10,F[4].Y=5;

            Print();Setpos(2,22),Color(0);Slow("撞墙跳:利用平扑撞墙会产生一个小向上速度的特性,将本应断掉的连招接续起来");
            Setpos(2,24),Color(0);Slow("按 y 开启下一阶段教学 (本关接连招砍绿果、紫果、红果)"); 
        }
        if(Stage==5&&F[1].Life+F[2].Life+F[3].Life+F[4].Life==4) StageT=T;
        if(Stage==5&&F[1].Life+F[2].Life+F[3].Life+F[4].Life<4&&T-StageT>=50){
            StageT=T;
            l=0;for(int tt=1;tt<=4;tt++) m++,F[tt].Angle=0,F[tt].AngleSpeed=0,F[tt].color=tt,F[tt].half=0,F[tt].Life=1,F[tt].R=1.45,F[tt].t=0,F[tt].Type=1,F[tt].Vx=F[tt].Vy=0;
            F[1].X=4.7,F[1].Y=15.5;F[2].X=1,F[2].Y=15.5;F[3].X=1,F[3].Y=11;F[4].X=10,F[4].Y=5;}
        if(StageY==1&&Stage==5){StageY=0;Stage++;memset(M,-1,sizeof(M));memset(N,0,sizeof(N));
            Setpos(2,22),Color(0),printf("                                                                                ");
            Setpos(2,24),Color(0),printf("                                                                            ");
            l=0;for(int tt=1;tt<=4;tt++) m++,F[tt].Angle=0,F[tt].AngleSpeed=0,F[tt].color=tt,F[tt].half=0,F[tt].Life=1,F[tt].R=1.45,F[tt].t=0,F[tt].Type=1,F[tt].Vx=F[tt].Vy=0;
            F[1].X=18,F[1].Y=15;F[2].X=16,F[2].Y=17;F[3].X=24,F[3].Y=13;F[4].X=24,F[4].Y=8;

            Print();Setpos(2,22),Color(0);Slow("平地起冲:长按 → 加速至变黄,立即再按下  ↑ 可直接起冲,接连招");
            Setpos(2,24),Color(0);Slow("按 y 开启下一阶段教学 (本关接连招砍紫果、红果)"); 
        }
        if(Stage==6&&F[1].Life+F[2].Life+F[3].Life+F[4].Life==4) StageT=T;
        if(Stage==6&&F[1].Life+F[2].Life+F[3].Life+F[4].Life<4&&T-StageT>=50){
            StageT=T;
            l=0;for(int tt=1;tt<=4;tt++) m++,F[tt].Angle=0,F[tt].AngleSpeed=0,F[tt].color=tt,F[tt].half=0,F[tt].Life=1,F[tt].R=1.45,F[tt].t=0,F[tt].Type=1,F[tt].Vx=F[tt].Vy=0;
            F[1].X=18,F[1].Y=15;F[2].X=16,F[2].Y=17;F[3].X=24,F[3].Y=13;F[4].X=24,F[4].Y=8;}
        if(StageY==1&&Stage==6){StageY=0;Stage++;memset(M,-1,sizeof(M));memset(N,0,sizeof(N));
            Setpos(2,22),Color(0),printf("                                                                              ");
            Setpos(2,24),Color(0),printf("                                                                            ");
            l=0;for(int tt=1;tt<=4;tt++) m++,F[tt].Angle=0,F[tt].AngleSpeed=0,F[tt].color=tt,F[tt].half=0,F[tt].Life=1,F[tt].R=1.45,F[tt].t=0,F[tt].Type=1,F[tt].Vx=F[tt].Vy=0;
            F[1].X=5,F[1].Y=16;F[2].X=10,F[2].Y=19;F[3].X=12,F[3].Y=19;F[4].X=21,F[4].Y=15;

            Print();Setpos(2,22),Color(0);Slow("凌波微步: 跳起在空中向右下冲击地面,不要松开 →以获得极大的速度,然后重新按下  ↑ ,紧接平地起冲!");
            Setpos(2,24),Color(0);Slow("按 y 完成教学关卡 (本关蓝果下冲,紫果起跳,接连招砍红果)"); 
        }
        if(Stage==7&&F[1].Life+F[2].Life+F[3].Life+F[4].Life==4) StageT=T;
        if(Stage==7&&F[1].Life+F[2].Life+F[3].Life+F[4].Life<4&&T-StageT>=50){
            StageT=T;
            l=0;for(int tt=1;tt<=4;tt++) m++,F[tt].Angle=0,F[tt].AngleSpeed=0,F[tt].color=tt,F[tt].half=0,F[tt].Life=1,F[tt].R=1.45,F[tt].t=0,F[tt].Type=1,F[tt].Vx=F[tt].Vy=0;
            F[1].X=5,F[1].Y=16;F[2].X=10,F[2].Y=19;F[3].X=12,F[3].Y=19;F[4].X=21,F[4].Y=15;
        }
        if(StageY==1&&Stage==7) return;

        if(RushT1==0) Move(1);
        Go();
        if(RushT1==0&&T%speed==0) Print();
}
}
void Read(){
    ifstream in("水果忍胎存档.in");int Xx=0,Yy;
    for(int i=0;i<=21;i++) in>>Medal[i],Xx+=345*(2*i+1)*Medal[i];
    in>>Yy>>Score>>Combo>>T>>FXia>>FUp;if(Yy!=Xx) Cheat=1;
    in.close();
}
void Save(){
    ofstream out("水果忍胎存档.in");int Xx=0;
    for(int i=0;i<=21;i++) out<<Medal[i]<<' ',Xx+=345*(2*i+1)*Medal[i];
    out<<Xx<<' '<<Score<<' '<<Combo<<' '<<T<<' '<<FXia<<' '<<FUp;
    out.close();
}
void Medal_(){if(SS==1) return;
    if(Cheat==1) Setpos(33,0),Color(4),printf("检测到您更改过存档,你的存档已不可用。"),memset(Medal,0,sizeof(Medal));
    Setpos(33,1),Color(0),printf("[成就系统]  (按 c 可以存档 d 读档)");int rr=0;
    Setpos(34,3);if(Medal[3]==1) Color(5),rr++;else Color(7);printf("[出刀!]   完成一次切割");
    Setpos(34,4);if(Medal[7]==1) Color(5),rr++;else Color(7);printf("[绝杀]     在底线处完成一次切割");
    Setpos(34,5);if(Medal[4]==1) Color(5),rr++;else Color(7);printf("[全图鉴]   切割全部五种水果");
    Setpos(34,6);if(Medal[5]==1) Color(5),rr++;else Color(7);printf("[闪光]     达到十五 COMBO");   
    Setpos(34,7);if(Medal[6]==1) Color(5),rr++;else Color(7);printf("[回眸]     精准达到 520 分");  
    Setpos(34,8);if(Medal[8]==1) Color(5),rr++;else Color(7);printf("[柴刀]     下劈劈裂水果三十次");
    Setpos(34,9);if(Medal[9]==1) Color(5),rr++;else Color(7);printf("[连锁反应] 一次腾空中切割五个水果");
    Setpos(34,10);if(Medal[10]==1) Color(5),rr++;else Color(7);printf("[霹雳]     五秒钟切割十个水果");
    Setpos(34,11);if(Medal[11]==1) Color(5),rr++;else Color(7);printf("[征服者]   进行五分钟游戏");
    Setpos(34,12);if(Medal[12]==1) Color(5),rr++;else Color(7);printf("[神来之笔] 一次腾空中切割十个水果");
    Setpos(34,13);if(Medal[13]==1) Color(5),rr++;else Color(7);printf("[天封]     在最高线处完成一次切割");
    Setpos(34,14);if(Medal[14]==1) Color(5),rr++;else Color(7);printf("[升龙]     上劈劈裂水果四十次");
    Setpos(34,15);if(Medal[15]==1) Color(5),rr++;else Color(7);printf("[小忍者]   达到一千分");
    Setpos(34,16);if(Medal[16]==1) Color(5),rr++;else Color(7);printf("[八连]     一次腾空中冲刺八次(有巧解)");   
    Setpos(34,17);if(Medal[17]==1) Color(5),rr++;else Color(7);printf("[连诀]     达到四十 COMBO");   
    Setpos(34,18);if(Medal[18]==1) Color(5),rr++;else Color(7);printf("[幸存者]   连续十次空刀(请勿点亮)");    
    Setpos(34,19);if(Medal[19]==1) Color(5),rr++;else Color(7);printf("[水果杀手] 达到一万分");
    Setpos(34,20);if(Medal[20]==1) Color(5),rr++;else Color(7);printf("[虎翅]     腾空十秒");   
    Setpos(34,21);if(Medal[21]==1) Color(5),rr++;else Color(7);printf("[你疯了?!] 达到十万分");
    Setpos(34,22);if(rr>=19) Medal[22]=1;if(Medal[22]==1) Color((T%4<=1)?-4:-5);else Color(7);printf("[传说]     达成全部成就");   
}
int main(){ 
    CONSOLE_CURSOR_INFO cursor_info={1,0};
    SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);
    srand((unsigned)time(NULL));
    Start();
    ST:SS=0;
    system("cls");memset(N,0,sizeof(N));memset(M,0,sizeof(M));FC=FCF=FCT=FO=FFFt=FXia=FUp=0;memset(FT,0,sizeof(FT));memset(Medal,0,sizeof(Medal));
    Put_Frame();Medal_();
    T=0;Clocknum=0;X=2;Y=1;Vx=Vy=0;Jump=1;Put_Man(X,Y);//初始状态掉落 
    memset(F,0,sizeof(F));l=m=0;Score=Combo=0;
    Setpos(2,-3),Color(1),cout<<"本游戏为休闲模式,没有目标分数,请尽情享受切水果的酣爽盛宴!(空格可以暂停)";Medal_();
    while(1) if(clock()-Clocknum>=25)
    {T++;if(T>11000&&Medal[11]==0) Medal[11]=1,Medal_();
        Clocknum=clock();
        up=dn=lf=rt=0;
        if(GetAsyncKeyState(VK_UP)&0x8000) up=1;else Jumplock=0; 
        if(GetAsyncKeyState(VK_DOWN)&0x8000) dn=1;else Dnlock=0; 
        if(GetAsyncKeyState(VK_LEFT)&0x8000) lf=1;else Lflock=0; 
        if(GetAsyncKeyState(VK_RIGHT)&0x8000) rt=1;else Rtlock=0; 
        if(kbhit()) {char g=_getch();if(g==' ') Sleep(100),Setpos(16,3),sy++,Color(0),system("pause");if(g=='c') Save(),system("color 6E"),Sleep(1000),system("color 0F");if(g=='d') Read(),system("color 6E"),Sleep(1000),system("color 0F"),Medal_();}
        if(sy>=1) Setpos(16,3),cout<<"                           ",sy=0;

        if(RushT1==0) Move(0);
        Go();
        if(RushT1==0&&T%speed==0) Print();

        if(clock()-Clocknum>=25) continue;
        if(T>=50&&T<=200&&T%15==5) CreatF();
        if(T>=300&&T<2000&&T%80==5) CreatF();
        else if(T>=2000&&T<3000&&T%70==5) CreatF();
        else if(T>=3000&&T<4000&&T%50==5) CreatF();
        else if(T>=4000&&T%30==5) CreatF();
        if(T>=1500&&T%80==5) CreatF();
        if(Combo>=10&&T%80==40) CreatF();
    if((Combo<10&&T%140==0)||(Combo>=10&&Combo<20&&T%100==0)||(Combo>=20&&T%70==0)) Combo--;Combo=max(0,Combo);
    if(Rush==1||AttTime>0||Attention==1) Color(5);else Color(1);Setpos(2,-2),printf("积分:%-4d ",Score);
    if(Combo>=15) Color((T%4<=1)?-4:-5); printf("  连击 %-3dCOMBO !!  ",Combo);
    if(Rush==1||AttTime>0||Attention==1) Color(5);else Color(1);printf(" 用时:%d ",T);Color(0);
    }
    return 0;
}

提示 :所有游戏代码均为转载

[ 本人未审核 ] 游戏大全