问题标题: 酷町堂:游戏(正在造核心,可测试)

0
0
已解决
朱瑾文
朱瑾文
新手光能
新手光能
#include<iostream>// 
#include<math.h>
#include<time.h>
#include<fstream>
#include<windows.h>
using namespace std;
int map1[6][61]={},yhn,jf1=0,gk1=1,pf_I1=0,pf_bei1=0;
//map1地图 yhn用户数量 jf1积分数量 gk1关卡 pf_I1我的皮肤 pf_bei1背景的皮肤
short xz,cnt=0,n=0,num;
//xz用户选择 cnt计数器 n存档注销时备用 num 存档注销时备用2
string name1,mima1,I,bei,beiy;
//name1用户名 mima1密码 I我的皮肤 bei背景的皮肤 beiy备用 
struct zh{//用户结构体 
    int jf,gk,pf_I,pf_bei;
    string name,mima;
}zhz[101];//创建结构体数组 
int i();//注册登录 
void push(string a);//输出 
void jfb1(int n);//获得金币 
void pifu();//切换皮肤 
void cg();//闯关 
void cc();//存档 
void de(string a);//删除 
void print();//打印地图 
void shang();//商店 
int r(int max,int min); //随机函数 
int main(){
    if(!(i()))exit(0);//注册登录 如果连续15次登陆失败则退出 
    jfb1(20);//每次登录都有奖励(20金币) 
    switch(pf_I1){//皮肤初始化 
        case 0:{
            I="我";
            break;
        }
        case 1:{
            I="△";
            break;
        }
        case 2:{
            I="▲"; 
            break;
        }
        case 3:{
            I="□";
            break;
        }
        case 4:{
            I="■";
            break;
        }
        case 5:{
            I="◇";
            break;
        }
        case 6:{
            I="◆";
            break;
        }
        case 7:{
            I="○";
            break;
        }
        case 8:{
            I="●";
            break;
        }
    }
    do{//主游戏系统 
        push(" 0---退出\n 1---更改皮肤\n 2---开始闯关\n 3---存储\n 4---商场\n 5---注销账号\n 6---删除游戏");
        cin>>xz;
        switch(xz){
            case 1:{
                pifu();//更改皮肤 
                break;
            }
            case 2:{
                cg();//开始闯关 
                break;
            }
            case 3:{
                cc();//存储
                break;
            }
            case 4:{
                shang();//商场
                break;
            }
            case 5:{
                de("注销");//注销账号
                exit(0);
            }
            case 6:{
                de("删除");//删除游戏
                exit(0);
            }
        }

    }while(xz!=0);
    exit(0);//退出程序 
}
int i(){
    ifstream fin("fz");//打开文件 
    fin>>yhn;//输入用户数量 
    push("目前发现你有");//提示用户 
    cout<<yhn;//提示用户 
    push("个账号\n");//提示用户 
    for(int i=0;i<yhn;i++){//读入姓名 密码 关卡等级 积分 
        fin>>zhz[i].name>>zhz[i].mima>>zhz[i].gk>>zhz[i].jf>>zhz[i].pf_bei>>zhz[i].pf_I;
    }
    fin.close();
    push("读取完毕\n");//提示用户 
    if(yhn==0){
        push("请输入2注册账号\n"); //提示用户 
    }
    else push("1---登录\n2---注册\n");//提示用户 
    cin>>xz;//输入选择
    switch(xz){//判断 
        case 1:{//登录 
            if(yhn==0){//无用户时 
                push("无用户");
                goto g_2;//只能注册 
            }
            cnt=0;//计数器 初始化 
            while(1){ //循环 
                xz=0;//标记变量 初始化 
                push("请输入用户名:");//提示用户 
                cin>>name1;//输入 用户名
                push("请输入密码:");//提示用户 
                cin>>mima1;//输入密码 
                cnt++;//计数器+1 
                for(int i=0;i<yhn;i++){
                    if(name1==zhz[i].name){//用户命正确 
                        xz=1;//标记 
                        if(mima1==zhz[i].mima){//密码正确 
                            n=1;//存档注销时备用标记 
                            num=i; //记录 
                            jf1=zhz[i].jf;//记录 
                            gk1=zhz[i].gk;//记录 
                            pf_I1=zhz[i].pf_I;//记录 
                            pf_bei1=zhz[i].pf_bei;//记录 
                            return true;//返回 
                        }
                        else{//密码错误
                            push("密码错误!\n");//提示用户               
                            Sleep(1000);//等待 
                            break;//跳出 
                        }
                    }
                }
                if(!xz){//用户名错误 
                    push("用户名错误!\n"); //提示用户
                }
                if(cnt==15){//错误次数过多
                    push("错误次数过多");//提示用户
                    return 0;//返回并退出 
                }
                if(cnt%3==0){//错误次数/3==0时 
                    push("锁定");//提示用户 
                    cout<<cnt/2;//提示用户
                    push("分钟");//提示用户
                    Sleep(cnt/2*60*1000);//等待 
                }
                system("cls");//清屏 
            }
            break;//跳出
        }
        case 2:{//注册 
            goto g_2;//注册 
            return 1;//返回 
        }
    }
    g_2:while(1){//循环 
            push("请输入用户名(无数字,不和用过的账号名重复):");//提示用户 
            cin>>name1;//输入 
            xz=0;//标记变量 初始化
            for(int i=0;i<name1.length();i++){//遍历数组 
                if(name1[i]>='0'&&name1[i]<='9'){//查找数字 
                    xz=1;//标记 
                    break;//退出 
                }
            }
            if(xz){// 有数字
                push("有数字\n");//提示用户
                continue;//跳过本次 
            }
            xz=0;//标记变量 初始化
            for(int i=0;i<yhn;i++){//遍历 
                if(name1==zhz[i].name){//查找相同用户名 
                    xz=1;//标记 
                }
            }
            if(xz){//和用过的账号名重复
                push("和用过的账号名重复\n");
                continue;
            }
            push("请输入密码(长度>=4):");
            cin>>mima1;
            if(name1.length()<4){
                push("长度不够\n");
                continue;
            }
            ofstream fout("fz");
            fout<<++yhn<<endl;
            if(yhn>1){
                for(int i=0;i<yhn-1;i++){
                    fout<<zhz[i].name<<' '<<zhz[i].mima<<' '<<zhz[i].gk<<' '<<zhz[i].jf<<' '<<zhz[i].pf_bei<<' '<<zhz[i].pf_I<<endl;
                }
                fout<<name1<<' '<<mima1<<' '<<1<<' '<<0<<' '<<0<<' '<<0;
                push("\n\n录入完毕\n\n");
                num=yhn;
                break; 
            } 
            else{
                fout<<1<<endl;
                fout<<name1<<' '<<mima1<<' '<<1<<' '<<0<<' '<<0<<' '<<0;
                push("\n\n录入完毕\n\n");
                break;                  
            }
        }
    return 0;
}
void push(string a){
    for(int i=0;i<a.length();i++){
        cout<<a[i];
        Sleep(40);
    }
}
void jfb1(int n){
    MessageBox(NULL,"获得","方块游戏",MB_OK);
    cout<<n;
    push("枚金币\n");
    jf1+=n;
    push("目前拥有");
    cout<<jf1;
    push("枚金币\n");
}
void cg(){
    for(int i=1;i<=5;i++){
        cout<<"-------\n";
        cout<<'|'<<"第"<<i<<"关|";
        cout<<"-------\n";
        cout<<(((gk1+1)>i||(gk1+1)==i)?"已解锁":"未解锁"); 
    }
}
void print(){
    for(int i=1;i<=5;i++){
        for(int j=1;j<=60;j++){
            if(map1[i][j]==0){
                cout<<pf_bei1;
            }
            else if(map1[i][j]==1){
                cout<<pf_I1;
            }
            else if(map1[i][j]==2){
                cout<<"█";
            }
            else{
                cout<<"☆";
            }
        }
        cout<<endl;
    }
}
//1375991190
void cc(){
    ofstream fout("fz");
    if(n){
        for(int i=0;i<num;i++){
            fout<<zhz[i].name<<' '<<zhz[i].mima<<' '<<zhz[i].gk<<' '<<zhz[i].jf<<' '<<zhz[i].pf_bei<<' '<<zhz[i].pf_I<<endl;
        }
        cout<<name1<<' '<<mima1<<' '<<gk1<<' '<<jf1<<' '<<pf_bei1<<' '<<pf_I1<<endl;
        for(int i=num+1;i<yhn;i++)fout<<zhz[i].name<<' '<<zhz[i].mima<<' '<<zhz[i].gk<<' '<<zhz[i].jf<<' '<<zhz[i].pf_bei<<' '<<zhz[i].pf_I<<endl;
    }
    else{
        for(int i=0;i<yhn-1;i++){
            fout<<zhz[i].name<<' '<<zhz[i].mima<<' '<<zhz[i].gk<<' '<<zhz[i].jf<<' '<<zhz[i].pf_bei<<' '<<zhz[i].pf_I<<endl;
        }
        fout<<name1<<' '<<mima1<<' '<<gk1<<' '<<jf1<<' '<<pf_bei1<<' '<<pf_I1<<endl;
        push("\n\n存储完毕\n\n");
        fout.close();
    }
}
void shang(){
    while(1){
        cout<<"\n  1---皮肤\n  2---道具\n  3---退出\n";
        cin>>xz;
        switch(xz){
            case 1:{

                cout<<endl<<"目前拥有"<<jf1<<"枚金币\n";   
                push("目前拥有:我的皮肤---");cout<<pf_I1;
                push("\n   11---\"△\"   300金币\n   12---\"▲\"   700金币\n   13---\"□\"   1100金币\n   14---\"■\"   1700金币\n");
                push("   15---\"◇\"   2400金币\n   16---\"◆\"   3200金币\n   17---\"○\"   4100金币\n   18---\"●\"   5100金币\n   0---退出");
                cin>>xz;
                switch(xz){
                    case 11:{
                        if(jf1<300){

                        } 
                        break;
                    }
                } 
                break;
            }
    //      case :{
    //          
    //          break;
    //      }
        }
    }
}
void de(string a){
    ofstream fout("fz");
    push("是否开始");
    cout<<a;
    push("(Y,N)\n");
    cin>>xz;
    if(xz=='y'||xz=='Y') {
        if(a=="注销"){
            cout<<yhn--;
            if(n){
                for(int i=0;i<num;i++){
                    fout<<zhz[i].name<<' '<<zhz[i].mima<<' '<<zhz[i].gk<<' '<<zhz[i].jf<<' '<<zhz[i].pf_bei<<' '<<zhz[i].pf_I<<endl;
                }
                for(int i=num+1;i<yhn;i++)fout<<zhz[i].name<<' '<<zhz[i].mima<<' '<<zhz[i].gk<<' '<<zhz[i].jf<<' '<<zhz[i].pf_bei<<' '<<zhz[i].pf_I<<endl;
            }
            else{
                for(int i=0;i<yhn-1;i++){
                    fout<<zhz[i].name<<' '<<zhz[i].mima<<' '<<zhz[i].gk<<' '<<zhz[i].jf<<' '<<zhz[i].pf_bei<<' '<<zhz[i].pf_I<<endl;
                }
            }
            push("\n\n存储完毕\n\n");
            fout.close();
        }
        if(a=="删除"){
            system("del fz");
            system("del 方块游戏.cpp");
            push("删除完毕"); 
            system("del 方块游戏.exe"); 
        } 
        fout.close();
    }
}
int r(int max,int min){
    srand(time(NULL));
    int s=(max-min+1);
    return (rand()%s)+min-1;
}
void pifu(){

}

 


0
已采纳
戈思越
戈思越
新手光能
新手光能

朱瑾文采纳我(你的同班同学)

0
刘悦琪
刘悦琪
修练者
修练者

为什么我一直是密码长度不够?

0
曹灿阳
曹灿阳
初级天翼
初级天翼

地图呢?函数调用???

0
我要回答