问题标题: 编程平台上线咯

8
4
已解决
岳要举
岳要举
资深光能
资深光能

酷町堂编程平台今日上线,童鞋们可以使用酷町堂账户登录。登录网址为: https://dev.codingtang.com

完成代码编写以后,可以直接复制分享网址到酷町问答,即可在问答里打开,如下:

 

https://dev.codingtang.com/#/share?uuid=7b13304e93c047b09138134770bb6514

岳要举在2021-05-27 09:36:51追加了内容

编程平台不支持windows.h,大家可以先看下入门教程:

https://dev.codingtang.com/#/doc


0
0
陈曦
陈曦
资深天翼
资深天翼

点了确定没反应:

请问哪一步错了

0
0
陈振轩
陈振轩
高级光能
高级光能

qpzc

逐渐走上了开发的路(逃

0
朱优扬
朱优扬
中级天翼
中级天翼

建议老师加入反馈功能,这样有的代码的bug就可以反馈给开发者了

PS:

0
0
0
0
0
包涵宇
包涵宇
中级天翼
中级天翼

dev c++编译结果

这是酷町堂的编译结果

请问,为什么DEV C++可以编译通过,而酷町堂不行?

就是这个代码:

/*
由于文件较大,编译和运行时间可能较长,请耐心等待! 
■
□
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
0=黑色,1=蓝色,2=绿色,3=湖蓝色,4=红色,5=紫色;

6=黄色,7=白色,8=灰色,9=淡蓝色,A=淡绿色,B=浅绿色;

C=淡红色,D=淡紫色,E=淡黄色,F=亮白色。
VK_LBUTTON             鼠标左键                      0x01
VK_RBUTTON             鼠标右键                      0x02
VK_CANCEL              Ctrl + Break                  0x03
VK_MBUTTON             鼠标中键                      0x04

VK_BACK                Backspace 键       0x08
VK_TAB                 Tab 键                        0x09

VK_RETURN              回车键                        0x0D


VK_SHIFT               Shift 键                      0x10
VK_CONTROL             Ctrl 键                       0x11
VK_MENU                Alt 键                 0x12
VK_PAUSE               Pause 键                      0x13
VK_CAPITAL             Caps Lock 键                  0x14

VK_ESCAPE              Esc 键                        0x1B

VK_SPACE               空格键         0x20
VK_PRIOR               Page Up 键                    0x21
VK_NEXT                Page Down 键                  0x22
VK_END                 End 键                        0x23
VK_HOME                Home 键                       0x24
VK_LEFT                左箭头键                      0x25
VK_UP                  上箭头键                      0x26
VK_RIGHT               右箭头键                      0x27
VK_DOWN                下箭头键                      0x28
VK_SNAPSHOT            Print Screen 键               0x2C
VK_Insert              Insert 键                     0x2D
VK_Delete              Delete 键                     0x2E

'0' – '9'             数字 0 - 9                    0x30 - 0x39
'A' – 'Z'             字母 A - Z                    0x41 - 0x5A

VK_LWIN                左WinKey(104键盘才有)         0x5B
VK_RWIN                右WinKey(104键盘才有)         0x5C
VK_APPS                AppsKey(104键盘才有)          0x5D

VK_NUMPAD0            小键盘 0 键                    0x60
VK_NUMPAD1            小键盘 1 键                    0x61
VK_NUMPAD2            小键盘 2 键                    0x62
VK_NUMPAD3            小键盘 3 键                    0x63
VK_NUMPAD4            小键盘 4 键                    0x64
VK_NUMPAD5            小键盘 5 键                    0x65
VK_NUMPAD6            小键盘 6 键                    0x66
VK_NUMPAD7            小键盘 7 键                    0x67
VK_NUMPAD8            小键盘 8 键                    0x68
VK_NUMPAD9            小键盘 9 键                    0x69

VK_F1 - VK_F24        功能键F1 – F24               0x70 - 0x87

VK_NUMLOCK            Num Lock 键                   0x90
VK_SCROLL             Scroll Lock 键                0x91
#include <iostream>
#include "windows.h"
using namespace std;

int main()
{
    cout << "原色testCOLOR(没有设置字体颜色)" << endl;
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |
        FOREGROUND_GREEN | FOREGROUND_BLUE);//设置三色相加
    cout << "白色testCOLOR(红色绿色蓝色相加)" << endl;
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);
    //设置红色
    cout << "红色testCOLOR(设置的颜色为红色)" << endl;
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN)
        ;//设置绿色
    cout << "绿色testCOLOR(设置的颜色为绿色)" << endl;
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
    //设置蓝色
    cout << "蓝色testCOLOR(设置的颜色为蓝色)" << endl;
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |
        FOREGROUND_GREEN);//设置红色和绿色相加
    cout << "黄色testCOLOR(红色和绿色相加色)" << endl;
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |
        FOREGROUND_BLUE);//设置红色和蓝色相加
    cout << "粉色testCOLOR(红色和蓝色相加色)" << endl;
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |
        FOREGROUND_BLUE);//设置绿色和蓝色相加
    cout << "青色testCOLOR(绿色和蓝色相加色)" << endl;
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
    //设置颜色,没有添加颜色,故为原色
    cout << endl;

    system("pause");
    return 0;
}
*/ 
#include<bits/stdc++.h>
#include<time.h>
#include<windows.h>
#include<conio.h>
#include<cstdio>
#pragma GCC optimize(3)
#pragma GCC target("avx")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("-fdelete-null-pointer-checks")
#pragma GCC optimize(2)
#define get(VK_NONAME) (GetAsyncKeyState(VK_NONAME))
#define clean (system("cls"))
#define sl(x) (Sleep(x))
//格式1:上次游玩得分 最高得分 
//格式2: 上次日期(年月日) 上次游玩累计时间(分钟) {以后建} 
//地图 :7*100    0:空   1,正常方块   
//△:你 
//×:危险方块 
using namespace std;
int kais,zg,chose;
HWND hwnd=GetForegroundWindow();
int zgt;
int x,y,er=-5,jl,erc,jlc; 
int df;
int dt[7][100]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1},
{0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1},
{0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1},
{1,1,1,0,1,1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1,0,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,0,1,1,1,0,0,0,0,1,1,1,1,0,0,1,1,0,0,0,1,1,0,0,1,0,1,1,1,1,0,0,1,0,0,0,1,1,1},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}
};
void rechange(){//正在编写中。。。 
    time_t timep;
    time(&timep);
    char tmp[64];
    strftime(tmp, sizeof(tmp), "%Y-%m-%d",localtime(&timep) );

}
void cls(){
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD coordScreen = { 0, 0 };
    SetConsoleCursorPosition( hConsole, coordScreen );
}
void HideCursor(){
    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_CURSOR_INFO CursorInfo;
    GetConsoleCursorInfo(handle, &CursorInfo);
    CursorInfo.bVisible = false;
    SetConsoleCursorInfo(handle, &CursorInfo);
}
void out(string s){
    for(int i=0;i<s.size();i++){
        cout<<s[i];
        Sleep(40);
    }
    cout<<"\n";   
}
void quicklyout(string s){
    for(int i=0;i<s.size();i++){
        cout<<s[i];
        Sleep(20);
    }
    cout<<"\n";
}
void getz(){
    while(1){
        if(get(0x5A)){
            clean;
            break;
        }
    }
}
void goin(){
    system("mode con cols=50 lines=10");  
    out("一觉醒来,你竟发现\n你来到了二维世界!\n\n按Z继续\n");
    getz();
    out("你正准备好好看看二维世界时,\n三维空间忽然坍塌向二维空间坍塌了!\n于是......\n你开始了逃亡......\n\n按Z继续\n");
    getz();
}
int change(string s){
    int f=1,idx=0;
    for(int i=s.size()-1;i>=0;i--){
        idx+=(s[i]-'0')*f;
        f*=10;
    }
    return idx;
}           
void getkz(){//摘自luckyone906的博客 
    ifstream fin("1.txt");
    fin>>y>>x>>er>>zg;
    fin.close();
    if(y==0&&x==0&&er==0&&zg==0){
        er=-5;
        x=4;
        y=0;
    }
}
void prin(){
    cls();
    cout<<"      得分"<<left << setw(6) << zgt<<"\n";
    for(int i=0;i<=6;i++){
        for(int j=y-5;j<=-1;j++){
            if(j<=er){
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);
                cout<<"×";    
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
            }
            else{
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
                cout<<"■";
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
            }
        }
        for(int j=max(0,y-5);j<=min(99,y+5);j++){
            if(j<=er){
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);
                cout<<"×";    
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
            }
            else if(x==i&&y==j){
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
                cout<<"△";
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
            }
            else if(dt[i][j]==0)cout<<"□";
            else{
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
                cout<<"■";
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
            }
        }
        cout<<"\n";
    }
}
void shiyong(){
    out("操作须知:\n按A/D左右选择,按Z确认选择。\n按X结束游戏。\n按左箭头键/右箭头键左右移动,按上箭头键跳跃。\n△:你   ×:危险方块  ■普通方块\n\n按Z继续\n");
    getz();
}
void mainchose(){
    zg=max(zg,zgt);
    chose=1;
    int tf=1;
    while(1){
        if(get(0x5A))break;
        bool f=0;
        if(tf==1){
            tf=0;
            f=1;
        }
        if(get(0x41)){
            if(chose==2){
                chose=1;
                f=1;
            }
        }
        if(get(0x44)){
            if(chose==1){
                chose=2;
                f=1;
            }
        }
        if(f==1&&chose==1){
            clean;
            cout<<"---------------------------------\n"
                <<"|         最高分:"<< left << setw(6) << zg<<"        |\n";
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
            cout<<"------------------";
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
            cout<<"---------------\n";
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
            cout<<"|  继续上次游戏  |";
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
            cout<<"    新 游 戏  |\n";
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
            cout<<"------------------";
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
            cout<<"---------------\n";
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
            cout<<"               逃离"; 
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
            cout<<"贡献榜:\n";
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |FOREGROUND_BLUE);
            cout<<"            吴庞茂旭 吕若朴";
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
        }
        if(f==1&&chose==2){
            clean;
            cout<<"---------------------------------\n"
                <<"|         最高分:"<< left << setw(6) << zg<<"        |\n";
            cout<<"-----------------";
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
            cout<<"----------------\n";
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
            cout<<"|  继续上次游戏  ";
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
            cout<<"|    新 游 戏  |\n";
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
            cout<<"-----------------";
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
            cout<<"----------------\n";
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
            cout<<"               逃离"; 
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
            cout<<"贡献榜:\n";
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |FOREGROUND_BLUE);
            cout<<"吴庞茂旭 吕若朴";
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
        }
        sl(10);
    } 
}
int choseagain(){
    int chosea=1,tf=1;
    while(1){
        if(get(0x5A))break;
        bool f=0;
        if(tf==1){
            tf=0;
            f=1;
        }
        if(get(0x41)){
            if(chosea==2){
                chosea=1;
                f=1;
            }
        }
        if(get(0x44)){
            if(chosea==1){
                chosea=2;
                f=1;
            }
        }
        if(f==1&&chosea==1){
            clean;
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
            cout<<"   yes   ";
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
            cout<<"   no";
        }
        if(f==1&&chosea==2){
            clean;
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
            cout<<"   yes   ";
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
            cout<<"   no";
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
        }
        sl(10);
    } 
    return chosea;
}
void goout(int x){
    if(x==1){//摘自 浅浅的 的微博 
        ofstream fout("1.txt");
        fout<<0<<" "<<4<<" "<<-5<<" "<<max(zg,zgt);
        /*fout << flush;*/ 
        fout.close();
    }
    else{
        freopen("1.txt","w",stdout);
        cout<<y<<" "<<x<<" "<<er<<" "<<max(zg,zgt);
        fclose(stdout);
    }
}
void Main1(){
    /*cout<<"---------------------------------\n"
        <<"|         最高分:"<< left << setw(6) << zg<<"        |\n"
        <<"---------------------------------\n"
        <<"|  继续上次游戏  |    新 游 戏  |\n"
        <<"---------------------------------\n";*/
    getkz();
    sl(1000);
    erc=0;
    jlc=0;
    mainchose();
    if(chose==2){
        er=-5;
        x=4;
        y=0;
    }
    clean;
    zgt=0;
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);
    out("        3");
    sl(1000);
    clean;
    out("        2");
    sl(1000);
    clean;
    out("        1");
    sl(1000);
    clean;
    out("      开始!");
    sl(500);
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
    int yf;
    int tget=0; 
    prin();
    while(1){
        if(tget==3)tget=0;
        zgt=max(zgt,y);
        df=y;
        if(get('X')){
            yf=2;
            break;
        }
        if(y<=er){
            yf=0;
            break;
        }
        erc++;
        if(dt[x+1][y]==0)jlc++;
        if(erc==10){
            er++;
            erc=1;
            prin();
        }
        if(y==98&&x==4){
            yf=1;
            break;
        }
        if(x==6){
            x++;
            sl(100);
            prin();
            sl(100);
            clean;
            yf=-1;
            break;
        }
        if(dt[x+1][y]==0&&jlc==4){
            x++;
            jlc=0;
            prin();
        }
        if(get(0x25)&&dt[x][y-1]==0&&tget==2){
            y--;
            prin();
        }
        if(dt[x+1][y]==1&&get(0x26)&&tget==2){
            int jian;
            for(jian=1;jian<=6-x;jian++){
                if(dt[x-jian][y]==1){
                    jian--;
                    break;
                }
            }
            x-=jian;
            x=max(x,0);
            prin();
        }
        if(get(0x27)&&dt[x][y+1]==0&&tget==2){
            y++;
            prin();
        }
        sl(50);
        tget++;
        /*VK_LEFT                左箭头键                      0x25
        VK_UP                  上箭头键                      0x26
        VK_RIGHT               右箭头键                      0x27
        VK_DOWN                下箭头键                      0x28*/
    }
    if(yf==-1){
        out("你掉入了虚空......");
        sl(1000); 
        goout(1);
        clean;
        out("要再来一次吗?");
        if(choseagain()==1){
            sl(500); 
            Main1();
        }
        else{
            clean;
            cout<<"再会!"; 
            sl(500);
            ShowWindow(hwnd,0); 
            return ;
        }
    }
    else if(yf==0){
        clean;
        out("你被三维化了......") ;
        goout(1);
        sl(1000); 
        clean;
        out("要再来一次吗?");
        if(choseagain()==1){
            sl(500); 
            Main1();
        }
        else{
            clean;
            cout<<"再会!"; 
            sl(500);
            ShowWindow(hwnd,0); 
            return ;
        }
    }
    else if(yf==1){
        sl(500);
        clean;
        out("不知怎么了,你就来到了宇宙的边缘\n忽然,你看到了一条裂缝......\n\n   (未完待续)");
        goout(1);
    }
    else{
        goout(2);
        ShowWindow(hwnd,0);
    }
}
int main(){
    HideCursor();
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
    goin();
    shiyong();
    sl(500); 
    Main1();
    return 0;
}

谢谢!

0
0
廖睿轩
廖睿轩
新手光能
新手光能

酷町堂正在逐渐变好!!!!

0
包涵宇
包涵宇
中级天翼
中级天翼

天哪,天哪!

编程平台竟然不允许用头文件#include<conio.h>!!!

(吃惊。。。)这。。。

我的游戏就都不能用了!(额)

而且#include<codingtang.h>也不包括#include<conio.h>

@岳要举 这个问题要解决一下

(小疑惑)老师们编游戏不用#include<conio.h>吗?

0
0
0
0
孔小川
孔小川
初级光能
初级光能

有bug

望修复

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

牛逼!!!

0
0
0
郑思予
郑思予
新手光能
新手光能

目前的问题:

1.不能使用cin,cout好像只有getInt()

2.头文件只有#include "codingtang.h"

3.Sleep()变为sleep();

4.头文件不支持#include<windows.h>

酷町堂新出的东东有利有弊,等完善好后只用(程序猿加油吧!)

可以去参考老师们的代码

0
王梓澳
王梓澳
中级光能
中级光能

这个软件好多头文件不能用啊

这windows.h和万能头(bits/stdc++.h)直接报错

我好无语啊

一些函数我都不知道头文件怎么写,都是靠万能头的。。。

这个优化一下呀

0
0
王梓澳
王梓澳
中级光能
中级光能

 

 

键盘处理器没了,这个SetPos也没有了,Sleep说好替换成sleep加头文件的怎么还报错,上传好麻烦。。。

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <iomanip> 
#include <windows.h>
#include <conio.h>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)//判断键盘是否按下函数定义 
using namespace std;
struct player {//玩家结构体(以后可能会有多个玩家,所以定义成这样) 
    int x,y,life,rem;//每个玩家的坐标,生命,子弹剩余 
}soldier;//玩家 
struct bullet {//子弹结构体 
    int x,y,di;//子弹的当前坐标和子弹方向 
}fbullet[100000];//子弹数组 
int bucount=1;//子弹数量 
int cnt;//得分 
int ensleep;//控制敌人的移动速度 
int Changesleep;//控制换弹时间 
int clip;//弹夹中剩余的子弹 
bool fclip;//标记弹夹是否为空(1为空,0为不空) 
bool fc;//判断弹夹是否填充 
struct en {//敌人结构体 
    int x,y;//敌人的坐标 
}fen[40];//一共20*20,设置了30个敌人 
char Map[200][200];//地图
bool f=false;
void out(string a) {//延时输出(暂时没有用到,以后写介绍会有 
    for (int i=0;i<a.size();i++) {
        cout<<a[i];
        sleep(50);
    }
}
void color(int a) {
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
}
void SetPos(COORD a)
{
    HANDLE out=GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(out, a);
}

void SetPos(int i, int j)
{
    COORD pos={i, j};
    SetPos(pos);
}
void init() {//地图初始化函数 
    memset(Map,' ',sizeof(Map));//将地图初始化为空格更容易看见玩家和敌人 
}
void in_con() {
    color(7);
    system("cls"); 
    out("本游戏控制主要分为两块\n");
    cout<<"   ";
    out("1、玩家人物控制\n");
    cout<<"      ";
    out("玩家在游戏中字符表示为1,通过w(上)s(下)a(左)d(右)控制1上下左右移动\n"); 
    cout<<"   ";
    out("2、发射子弹控制\n");
    cout<<"      ";
    out("本游戏接近于射击游戏,所以你可以在游戏中发射子弹,通过i(上)k(下)l(右)j(左)控制子弹发射方向\n");
    out("按s召唤商店来购买东西");
    out("如果中途你想要暂停游戏,您可以按下x键,此时不可以召唤商店\n");
    out("如果你没有看介绍或者对介绍不熟悉,请按下Esc退出到主界面\n");
    out("一发弹夹为100发子弹,子弹耗尽时会自动换弹,如果中途想要换弹请按r\n");
    out("按下k跳出本轮介绍");
    while (!KEY_DOWN('K'));
}
void in_cont() {
    color(7);
    system("cls");
    out("本游戏为射击游戏,所以游戏主要分为3个部分\n");
    out("开始后你可能会看见:\n");
    init();
    Map[9][9]='1';
    for (int i=1;i<=8;i++) Map[i][9]='0';
    for (int i=1;i<=9;i++) Map[rand()%19][rand()%19]='U';
    cout<<"╭═══════════════════╮\n";//输出游戏边界
        for (int i=1;i<=20;i++) {
            cout<<"║";//输出边界 
            for (int j=1;j<20;j++) {
                if (Map[i][j]=='U') color(64);//将敌人设成红色 
                if (Map[i][j]=='1') color(2);//将本人设置绿色 
                if (Map[i][j]=='0') color(14);//将子弹设置成黄色 
                cout<<Map[i][j];
                color(7);//恢复 
            }//输出地图(由于子弹遇到边界目前会卡在边界上,所以少输出头尾
            cout<<"║";//输出边界 
            if (i==1) printf("剩余生命:%-2d     ║\n",soldier.life);
            else if (i==2) cout<<"得分 :"<<setw(8)<<cnt<<"分 ║"<<endl;
            else if (i==3) cout<<setw(3)<<clip<<setw(6)<<"/"<<setw(5)<<soldier.rem<<"   ║"<<endl;
            else if (i==4&&fclip&&soldier.rem!=0) cout<<"    换弹中...    ║"<<endl;
            else if (i==6&&soldier.rem==0) cout<<"    子弹耗尽!    ║"<<endl; 
            else if (i==7&&soldier.rem==0) cout<<"请尽快到商城购买!║"<<endl;
            else      cout<<"                 ║"<<endl;
        } 
        cout<<"╰═══════════════════╯\n";//输出游戏边界
    out("左边单独框出来的是游戏地图,地图上有3种符号,1,u,0\n");
    out("其中1代表玩家,0代表子弹,u代表敌人,具体如何操作,请看操作介绍\n");
    out("你的目标就是控制1打u获得得分\n");
    out("游戏中会有子弹限制,初始会给出1000发子弹,游戏中会有商城设置,目前里面可以购买生命和子弹,以积分作为货币,避免子弹不够的情况\n");
    out("按下k跳出本轮介绍");
    while (!KEY_DOWN('K'));
}
void update() {
    system("cls");
    cout<<"1.0~1.1 更新了游戏介绍,但是非常简洁,比较普通\n";
    cout<<"1.1~1.2 更新游戏介绍内容和界面(当前版本未发布)\n";
    cout<<"1.2~1.3 更新了游戏界面太卡顿以至于看不清的情况,和弹夹内子弹为负数的情况bug\n";
    color(14);cout<<"1.3~1.4 作者发布以后立即发现了几个bug,不稳定程序问题解决,修复部分bug(本次更新)\n";color(7);
    cout<<"按下k继续";
    while (!KEY_DOWN('K'));
}
void careful() {
    system("cls");
    out("游戏中现在存在少量bug,发现请与作者联系\n");
    out("祝您玩的愉快\n");
    out("按下k继续");
    while (!KEY_DOWN('K'));
}
void introduce() {
    color(7);
    sleep(500);
    bool f=0;
    int i=1;
    while (true) {
        system("cls");
        printf("游戏名字:枪林弹雨(作者还没想好,暂时就这个难听的吧)\n");
        printf("作者:Jack Sparrow(QQ:2256449902)\n");
        printf("游戏版本:1.4(第四个版本)\n");
        printf("界面操作:w上调,s下调,黄色代表当前选中,z确定进入\n");
        cout<<"╭══════╮\n";
        cout<<"║";
        if (i==1) {
            color(14);
            if (KEY_DOWN('Z')) in_con();
        }cout<<"  控制介绍  ";color(7);
        cout<<"║\n";
        cout<<"║";
        if (i==2) {
            color(14);
            if (KEY_DOWN('Z')) in_cont();
        }cout<<"  内容介绍  ";color(7);
        cout<<"║\n║";
        if (i==3) {
            color(14);
            if (KEY_DOWN('Z')) return ;
        }cout<<"  跳出介绍  ";color(7);
        cout<<"║\n";
        cout<<"╰══════╯\n";
        if (KEY_DOWN('W')&&i-1!=0) i--;
        if (KEY_DOWN('S')&&i+1<=3) i++;
        sleep(100);
//          out("您对游戏的那些部分需要查看介绍:\n");
//          out("1、控制介绍(按下u)\n");
//          out("2、内容介绍(按下i)\n");
//          out("按下Z开始游戏"); 
    }
}
void Opening() {
    int i=1;
    while (true) {
        system("cls");
        printf("游戏名字:枪林弹雨(作者还没想好,暂时就这个难听的吧)\n");
        printf("作者:Jack Sparrow(QQ:2256449902)\n");
        printf("游戏版本:1.4(第四个版本)\n");
        printf("界面操作:w上调,s下调,黄色代表当前选中,z确定进入\n");
        printf("╭══════╮\n");
        printf("║");
        if (i==1) {
            color(14);
            if (KEY_DOWN('Z')&&!f) {
                    if (KEY_DOWN('Z')) {
                    for (int i=3;i>=1;i--) {
                        system("cls");
                        color(rand()%14);
                        cout<<i;
                        sleep(1000);
                    }
                    color(rand()%14);
                    system("cls");
                    cout<<"开始!";
                    sleep(1000);
                    return ; 
                }
            }
            if (KEY_DOWN('Z')&&f) {
                color(7);
                int j=0;
                system("cls");
                sleep(500);
                while (true) {
                    system("cls");
                    printf("游戏名字:枪林弹雨(作者还没想好,暂时就这个难听的吧)\n");
                    printf("作者:Jack Sparrow(QQ:2256449902)\n");
                    printf("游戏版本:1.4(第四个版本)\n");
                    printf("界面操作:w上调,s下调,黄色代表当前选中,z确定进入\n");
                    printf("╭═══════╮\n");
                    printf("║");
                    if (!j) {
                        color(14);
                        if (KEY_DOWN('Z')) {
                            for (int i=3;i>=1;i--) {
                                system("cls");
                                color(rand()%14);
                                cout<<i;
                                sleep(1000);
                            }
                            color(rand()%14);
                            system("cls");
                            cout<<"开始!";
                            sleep(1000);
                            return ; 
                        }
                    }printf(" 继续上次游戏 ");color(7);
                    printf("║\n║");
                    if (j==1) {
                        color(14);
                        if (KEY_DOWN('Z')) {
                            soldier.x=9,soldier.y=9,soldier.life=9,soldier.rem=1000;//玩家初始坐标,生命,子弹数量 
                            clip=100; 
                            Changesleep=10;
                            for (int i=1;i<=bucount;i++)
                                fbullet[i].x=0,fbullet[i].y=0,fbullet[i].di=0;
                            bucount=1;
                            for (int i=1;i<=29;i++) {//生成第一波敌人(目前只是会从上面生成,以后会从四面生成 
                                    fen[i].x=0;
                                fen[i].y=rand()%19;
                            }
                            cnt=0;
                            init();
                            for (int i=3;i>=1;i--) {
                                system("cls");
                                color(rand()%14);
                                cout<<i;
                                sleep(1000);
                            }
                            color(rand()%14);
                            system("cls");
                            cout<<"开始!";
                            sleep(1000);
                            return ;
                        }
                    }printf("    新游戏    ");color(7);
                    printf("║\n║");
                    if (j==2){
                        color(14);
                        if (KEY_DOWN('Z')) break;
                    }
                    printf("     退出     ");color(7);
                    printf("║\n");
                    printf("╰═══════╯\n");
                    if (KEY_DOWN('W')&&j-1>=0) j--;
                    if (KEY_DOWN('S')&&j+1<=2) j++;
                    sleep(100);
                }
            }
        }printf("  开始游戏  ");color(7);
        printf("║\n");
        printf("║");
        if (i==2) {
            color(14);
            if (KEY_DOWN('Z')) introduce();
        }printf("  查看介绍  ");color(7);
        printf("║\n");
        printf("║");
        if (i==3) {
            if (KEY_DOWN('Z')) update();
            color(14);
        }printf("  更新内容  ");color(7);
        printf("║\n║");
        if (i==4) {
            if (KEY_DOWN('Z')) careful();
            color(14);
        }printf("  注意事项  ");color(7);
        printf("║\n");
        printf("╰══════╯");
        if (KEY_DOWN('W')&&i-1!=0) i--;
        if (KEY_DOWN('S')&&i+1<=4) i++;
        sleep(100);
    }
}
void control() {//控制函数 
    if (KEY_DOWN('W')&&soldier.x-1>=1) soldier.x--;
    if (KEY_DOWN('S')&&soldier.x+1<=20) soldier.x++;
    if (KEY_DOWN('A')&&soldier.y-1>=1) soldier.y--;
    if (KEY_DOWN('D')&&soldier.y+1<20) soldier.y++;
}
void fire() {//发射子弹函数
    int buco=0; 
    if (KEY_DOWN('K')) {
        while (fbullet[++buco].di!=0);//重复利用数组,以下同理 
        if (buco>=bucount)   bucount++;
        fbullet[buco].di=1;
        clip--;
    }
    if (KEY_DOWN('J')) {
        while (fbullet[++buco].di!=0);
        if (buco>=bucount)   bucount++;
        fbullet[bucount].di=2;
        clip--;
    }
    if (KEY_DOWN('L')) {
        while (fbullet[++buco].di!=0);
        if (buco>=bucount)   bucount++;
        fbullet[bucount].di=3;
        clip--;
    }
    if (KEY_DOWN('I')) {
        while (fbullet[++buco].di!=0);
        if (buco>=bucount)   bucount++;
        fbullet[buco].di=4;
        clip--;
    }
    fbullet[buco].x=soldier.x;
    fbullet[buco].y=soldier.y;
}
void en_move() {//敌人移动函数 
    if (ensleep==2) {//控制敌人移动速度 
        for (int i=1;i<=29;i++) {
            if (fen[i].x+1<=21)//如果下一步未出界,那么移动 
                fen[i].x++;
            if (Map[fen[i].x][fen[i].y]=='1') {//如果敌人碰到玩家 
                soldier.life--;
                if (soldier.life==0) {
                    system("cls");
                    out("Game Over!");
                    sleep(1000);
                    system("cls");
                    out("你目前的得分为:");
                    cout<<cnt;
                    out("分");
                    system("cls");
                    out("是否重新开始游戏?\nYes(y)No(n)");
                    while (true) {
                        if (KEY_DOWN('N'))  exit(0);
                        if (KEY_DOWN('Y')) {
                            cnt=0;
                            soldier.x=9,soldier.y=9;//玩家初始坐标 
                            for (int i=1;i<=9;i++) {//生成第一波敌人(目前只是会从上面生成,以后会从四面生成 
                                fen[i].x=0;
                                fen[i].y=rand()%19;
                            }
                            bucount=0;
                            break;
                        }
                    }
                }
            }
            if (fen[i].x==21) {//如果到界限,那么重新生成 
                fen[i].x=0;
                fen[i].y=rand()%19;
            }
        }
        ensleep=0;
    }
}
void hit(int x,int y,int k) {
    if (Map[x][y]=='U') {//如果当前子弹击中敌人 
        cnt++;//得分累加 
        for (int j=1;j<=29;j++) {//查出是哪一个敌人被击中 
            if (fen[j].x==x&&fen[j].y==y) {//找到当前敌人并重新生成 
                fen[j].x=0;
                fen[j].y=rand()%19;
                break;
            }
        }
        fbullet[k].x=0;//将子弹放在0,0处(此处不会输出) 
        fbullet[k].y=0;
        fbullet[k].di=0;//以后方便重复利用数组 
    }
}
void bullet_move() {//子弹移动函数 
    for (int i=1;i<=bucount;i++) {//遍历每一个子弹 
        hit(fbullet[i].x,fbullet[i].y,i);
        if (fbullet[i].di==1&&fbullet[i].x+1<=21) fbullet[i].x++;
        if (fbullet[i].di==2&&fbullet[i].y-1>=0) fbullet[i].y--;
        if (fbullet[i].di==3&&fbullet[i].y+1<=21) fbullet[i].y++;
        if (fbullet[i].di==4&&fbullet[i].x-1>=0) fbullet[i].x--;
        if (fbullet[i].x==21||fbullet[i].y==0||fbullet[i].y==21||fbullet[i].x==0)
            fbullet[i].di=0;
        hit(fbullet[i].x,fbullet[i].y,i);
    }
}
void shop() {
    int i=1;
    while (true) {
        system("cls");
        printf("游戏名字:枪林弹雨(作者还没想好,暂时就这个难听的吧)\n");
        printf("作者:Jack Sparrow(QQ:2256449902)\n");
        printf("游戏版本:1.4(第四个版本)\n");
        printf("界面操作:w上调,s下调,黄色代表当前选中,z确定进入\n");
        color(14);
        cout<<"================================================\n";
        color(7);
        cout<<"欢迎来到商店,您可以买如下物品:\n";
        cout<<"╭════════════╮\n║";
        if (i==1) {
            if (KEY_DOWN('Z')) {
                if (cnt<100) {
                    system("cls");
                    cout<<"积分不够!\n";
                }
                if (cnt>=100) {
                    system("cls");
                    cnt-=100;
                    soldier.life++;
                    soldier.life%=10;
                    cout<<"购买成功!\n";
                    cout<<"您现在有"<<soldier.life<<"条生命\n";
                    cout<<"您还有"<<cnt<<"分\n";
                }
                out("按下k继续");
                while (!KEY_DOWN('K'));
                system("cls");
            }
            color(14);
        }cout<<"   一条命(售价100分)  ";color(7);
        cout<<"║\n║";
        if (i==2) {
            if (KEY_DOWN('Z')) {
                if (cnt<10) {
                    system("cls");
                    cout<<"积分不够!\n";
                }
                if (cnt>=10) {
                    system("cls");
                    cnt-=10;
                    soldier.rem+=700;
                    cout<<"购买成功!\n";
                    cout<<"您现在有"<<soldier.rem<<"发子弹\n";
                    cout<<"您还有"<<cnt<<"分\n";
                }
                out("按下k继续");
                while (!KEY_DOWN('K'));
                system("cls");
            }
            color(14);
        }cout<<"  700发子弹(售价10分) ";color(7);
        cout<<"║\n║";
        if (i==3) {
            if (KEY_DOWN('Z')) return ;
            color(14);
        }cout<<"        退出商店        ";color(7);
        cout<<"║\n";
        cout<<"╰════════════╯\n";
        if (KEY_DOWN('W')&&i-1!=0) i--;
        if (KEY_DOWN('S')&&i+1<=3) i++;
        sleep(100);
    }    
}
int main () {
    soldier.x=9,soldier.y=9,soldier.life=9,soldier.rem=1000;//玩家初始坐标,生命,子弹数量 
    clip=100; 
    Changesleep=10;
    for (int i=1;i<=9;i++) {//生成第一波敌人(目前只是会从上面生成,以后会从四面生成 
        fen[i].x=0;
        fen[i].y=rand()%19;
    }
    Opening();
    color(7);
    while (true) {
        f=true;
        if (KEY_DOWN(VK_ESCAPE))
            Opening();
        ensleep++;//控制时间 
        if (KEY_DOWN('X')) {
            SetPos(26,6);
            cout<<"暂停中!";
            sleep(1000);
            while (!KEY_DOWN('X'));
            sleep(100);
        }
        system("cls");//清屏使其动态
        if (KEY_DOWN('P')) shop();
        init(); 
        control();
        if (KEY_DOWN('R')) {
            if (soldier.rem>=100-clip) {
                soldier.rem-=(100-clip);
                clip=100;
            }
            else {
                clip+=soldier.rem;
                soldier.rem=0;
            }
            fclip=1;
            Changesleep=0;
        }
        if (Changesleep==10) {
            if (fc==0) {
                clip=100;
                if (soldier.rem>=100) soldier.rem-=100;
                else clip=soldier.rem,soldier.rem=0;
                fc=1;
            }
            fclip=0;
            if (clip!=0) fire();
        }
        if (clip==0&&fclip==0) Changesleep=0,fclip=1,fc=0;
        if (fclip) Changesleep++;
        Map[soldier.x][soldier.y]='1';//将玩家生成在屏幕上 
        en_move();
        for (int i=1;i<=29;i++)//将敌人生成在屏幕上(后面子弹判断需要) 
            Map[fen[i].x][fen[i].y]='U';
        bullet_move();
        for (int i=1;i<=bucount;i++)//将子弹生成在屏幕上  
            Map[fbullet[i].x][fbullet[i].y]='0';
        Map[soldier.x][soldier.y]='1';//将玩家生成在屏幕上 
        cout<<"╭═══════════════════╮\n";//输出游戏边界
        for (int i=1;i<=20;i++) {
            cout<<"║";//输出边界 
            for (int j=1;j<20;j++) {
                if (Map[i][j]=='U') color(64);//将敌人设成红色 
                if (Map[i][j]=='1') color(2);//将本人设置绿色 
                if (Map[i][j]=='0') color(14);//将子弹设置成黄色 
                cout<<Map[i][j];
                color(7);//恢复 
            }//输出地图(由于子弹遇到边界目前会卡在边界上,所以少输出头尾
            cout<<"║";//输出边界 
            if (i==1) printf("剩余生命:%-2d     ║\n",soldier.life);
            else if (i==2) cout<<"得分 :"<<setw(8)<<cnt<<"分 ║"<<endl;
            else if (i==3) cout<<setw(3)<<clip<<setw(6)<<"/"<<setw(5)<<soldier.rem<<"   ║"<<endl;
            else if (i==4&&fclip&&soldier.rem!=0) cout<<"    换弹中...    ║"<<endl;
            else if (i==6&&soldier.rem==0) cout<<"    子弹耗尽!    ║"<<endl; 
            else if (i==7&&soldier.rem==0) cout<<"请尽快到商城购买!║"<<endl;
            else      cout<<"                 ║"<<endl;
        } 
        cout<<"╰═══════════════════╯\n";//输出游戏边界
        sleep(50);//防止游戏太卡顿或者高内存,延时0.1秒 
    }
    return 0;
}

0
李明昕
李明昕
资深守护
资深守护

什么意思???

?-  ?

0
0
王梓澳
王梓澳
中级光能
中级光能

这个window是个啥,头问价是什么呀,编译器和项目都没有

0
被禁言 刘宇航
刘宇航
修练者
修练者

      牛                牛

     牛牛牛牛牛牛牛牛牛牛牛牛

    牛                牛   

  牛                  牛

牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛

                        牛

                        牛

0
0
0
0
0
0
0
王擎宇
王擎宇
中级守护
中级守护

66666666666666666666666666666666666666666666666666666666666666666

0
0
0
0
朱小川
朱小川
缔造者
缔造者

这是我看到的五子棋代码  (我复制过来了)

那里面确实有很多好玩的游戏 最好玩的还是五子棋

#include "codingtang.h"
#define R 15  //宏定义棋盘大小 15*15
#define C 15
using namespace std;

int x,y;   //落子下标 
int a[R+1][C+1]; //棋盘二维数组
string s[R+1];  //为了快速显示,将每一行拼成字符串打印
string sq; //将整个棋盘拼接成字符串

//函数声明
    //1.游戏描述 
void Description1(); //游戏介绍 
void Description2(); //开始菜单 
void Description3(); //选择模式
void ShowMess(int m); //显示胜利消息
void Drawmap();  //绘制地图 
void Clearmap(); //归零地图 
string changeInt(int m); //整数转字符串


    //2.角色 
void Player();  //玩家落子 
void Computer();  //电脑落子

    //3.模式 
void PvP();  //玩家对抗 
void PvE();  //人机对抗 

    //4.判断
bool JudgeGaming();  //检查游戏是否结束 
bool JudgeValue(int m,int n);  //检查落子是否有效   1:可以落子  0:不能落子 
int winsp();    //水平方向是否胜利
int winsz();    //竖直方向是否胜利
int winzdjx();  //主对角线上是否胜利 
int winfdjx();  //副对角线上是否胜利 

//主函数
int main(){
    createConsole("GoBang");  //创建窗口
    setTextColor(COLOR_WHITE);  //设置文字颜色为白色
    setBackgroundColor(COLOR_BLACK); //设置背景色为黑色
    Description1();  //游戏介绍 
    cls(); //清屏
    index:   //goto 的跳转点
    Description2();  //开始菜单 
    int pos;
    pos = getInt();  //输入1开始
    if(pos==1){
        cls();  //清屏
        Description3(); //选择模式
        int choose;  
        choose = getInt();
        if(choose==1){  //1:pvp  人人对弈
            PvP();
            cls();
            goto index;  //游戏结束回到主页选择
        }
        else if(choose==2){ //2: pve  人机对弈
            PvE();
            cls();
            goto index;  //游戏结束回到主页选择
        }
        else{
            cls();
            goto index;  //游戏结束回到主页选择
        }
    } 
    return 0;
}

void Description1(){ //游戏介绍 
    print("..................................\n");
    print(".                                .\n");
    print(".             五子棋             .\n");
    print(".                                .\n");
    print(".           作者 - 李伟          .\n");
    print(".                                .\n");
    for(int i=1;i<=34;i++){
        sleep(10);
        print(".");
    }
    print("\n");
}
void Description2(){ //开始菜单 
    print("..................................\n");
    print(".                                .\n");
    print(".         欢迎进入五子棋          .\n");
    print(".                                .\n");
    print(".            开始游戏            .\n");
    print(".         Yes(1)    No(0)        .\n");
    print(".                                .\n");
    for(int i=1;i<=34;i++){
        sleep(10);
        print(".");
    }
    print("\n");
}
void Description3(){ //选择模式 
    print("..................................\n");
    print(".          请选择游戏模式         .\n");
    print(".                                .\n");
    print(".       玩家对战 PvP   --  1      .\n");
    print(".       人机对战 PvE   --  2      .\n");
    print(".       返回主菜单     --  3      .\n");
    for(int i=1;i<=34;i++){
        sleep(10);
        print(".");
    }
    print("\n");
}

string changeInt(int m){  //整数转字符串
    string zf;
    switch(m){  
        case 0: {zf="0";break;}
        case 1: {zf="1";break;}
        case 2: {zf="2";break;}
        case 3: {zf="3";break;}
        case 4: {zf="4";break;}
        case 5: {zf="5";break;}
        case 6: {zf="6";break;}
        case 7: {zf="7";break;}
        case 8: {zf="8";break;}
        case 9: {zf="9";break;}
        case 10: {zf="10";break;}
        case 11: {zf="11";break;}
        case 12: {zf="12";break;}
        case 13: {zf="13";break;}
        case 14: {zf="14";break;}
        case 15: {zf="15";break;}
    }
    return zf;
}

void ShowMess(int m){ //显示胜利消息 
    if(m==0){
        print("--------------------------------\n");
        print("-----------黑子 胜利-------------\n");
        print("-                              -\n");
        print("-----------Game Over------------\n");
        print("--------------------------------\n");
    } 
    else{
        print("--------------------------------\n");
        print("-----------白子 胜利-------------\n");
        print("-                              -\n");
        print("-----------Game Over------------\n");
        print("--------------------------------\n");
    }
    return ;

void Drawmap(){  //绘制地图 
    string s1="       0  1  2  3  4  5  6  7  8  9 10111213141516";
    for(int i=0;i<=R;i++){  //遍历整个二维数组
        if(i==0) s[0]+="□";  //第一行为 □
        else if(i==R) s[R]+="□";  //第R行为 □
        for(int j=0;j<=C;j++){
            if(i==0) s[0]+="□";  //第一行为 □
            else if(i==R) s[R]+="□";  //第R行为 □
            else if(j==0) s[i]+="□";  //第一列为 □
            else if(j==C) s[i]+="□";  //第C行为 □
            else if(a[i][j]==0){  //0表示未落子
                s[i]+=" + ";
            }
            else if(a[i][j]==4){ //4表示落黑子(实心圆)
                s[i]+="●"; 
            }
            else if(a[i][j]==8){ //8表示落白子 (空心圆)
                s[i]+="○"; 
            }
        }
    } 
    sq+=s1+"\n";
    for(int i=0;i<10;i++){  //上面将每一行拼接成字符串+行号
        sq+="   "+changeInt(i)+s[i]+"\n";
    }
    for(int i=10;i<=R;i++){  //上面将每一行拼接成字符串+行号
        sq+=" "+changeInt(i)+s[i]+"\n";
    }
    //分成两个循环原因是一位数与两位数对齐不同
    print(sq);  //输出整个棋盘
    sq=""; //清空棋盘
    for(int i=0;i<=R;i++){
        s[i]="";  //清空每一行
    }
}
void Clearmap(){ //归零地图 
    for(int i=1;i<R;i++){
        for(int j=1;j<C;j++){
            a[i][j]=0;
        }
    }
}
void Player(){  //玩家落子 
    int p1,p2; 
    while(1){
        p1=getInt(); //输入坐标
        p2=getInt();
        if(JudgeValue(p1,p2)){  //判断是否有效,有效就跳出,无效重新输入
            break;
        }
        print("输入的下标无效,请重新输入\n"); 
    }
    x=p1; //将有效的坐标记录
    y=p2;
}
void Computer(){  //电脑落子 
    int p1,p2;
    while(1){
        p1 = (rand() % R) + 1;      //产生从1~R的随机数
        srand((unsigned int)time(NULL));
        p2 = (rand() % C) + 1;      //产生从1~C的随机数
        srand((unsigned int)time(NULL));
        if(JudgeValue(p1,p2)){  //判断是否有效,有效就跳出,无效重新输入
            break;
        }
    }
    x=p1;
    y=p2;
}
void PvP(){  //玩家对抗 
    New:
    cls();
    Clearmap(); //
    print("欢迎进入玩家对抗,祝您游戏愉快!\n");
    print("载入中");
    for(int i=1;i<=6;i++){
        sleep(200);
        print("."); 
    } 
    print("\n加载完成,开始游戏\n"); 
    sleep(1000);
    int ff=1;  // 1为黑子  0为白子 
    while(1){
        cls();
        Drawmap();
        if(ff==1){
            sleep(1000);
            print("黑子(玩家1)回合\n");
            print("请下棋\n输入对应的下标(  , )\n");
            Player();
            a[x][y]=4;
            ff=0;
        } 
        else{
            print("白子(玩家2)回合\n");
            print("请下棋\n输入对应的下标(  , )\n");
            Player();
            a[x][y]=8;
            ff=1;
        }
        if(JudgeGaming()==0){  //游戏结束 
            cls();
            Drawmap();
            ShowMess(ff);
            sleep(3000);
            cls();
            print("----------------------------------\n");
            print("-----------是否继续游戏-----------\n");
            print("-                                -\n");
            print("-----继续(1)    返回主菜单(0)-----\n"); 
            print("----------------------------------\n");
            int choose;
            choose = getInt();
            if(choose == 1){
                goto New ;
            }
            else{
                return ;
            }
        }
    } 
}
void PvE(){  //人机对抗 
    New1: 
    cls();
    int cnt=0;
    Clearmap(); //清屏
    print("欢迎进入人机对抗,祝您游戏愉快!\n");
    print("载入中");
    for(int i=1;i<=6;i++){ 
        sleep(200);
        print("."); 
    } 
    print("\n加载完成,开始游戏\n"); 
    sleep(1000);
    int ff=1;  // 1为黑子  0为白子 
    while(1){
        cls();
        Drawmap();  //绘制地图
        if(ff==1){  //判断是黑子还是白子回合
            print("黑子(玩家)回合\n");
            print("请下棋\n输入对应的下标(  , )\n");
            Player();  //确定玩家落子的坐标
            a[x][y]=4;
            ff=0;
        } 
        if(JudgeGaming()==0){  //游戏结束 
            cls();
            Drawmap();
            ShowMess(ff);  //显示结束信息
            sleep(3000);
            cls();
            print("----------------------------------\n");
            print("-----------是否继续游戏-----------\n");
            print("-                                -\n");
            print("-----继续(1)    返回主菜单(0)-----\n"); 
            print("----------------------------------\n");
            int choose;
            choose = getInt();
            if(choose == 1){
                goto New1 ; //继续
            }
            else{
                return ;
            }
        }
        if(ff==0){  //白子回合,电脑回合
            Computer();  //获得电脑下子坐标
            a[x][y]=8; 
            ff=1;  //下一回合变成玩家回合
        }
        if(JudgeGaming()==0){  //游戏结束 
            cls();
            Drawmap();
            ShowMess(ff);
            sleep(3000);
            cls();
            print("----------------------------------\n");
            print("-----------是否继续游戏-----------\n");
            print("-                                -\n");
            print("-----继续(1)    返回主菜单(0)-----\n"); 
            print("----------------------------------\n");
            int choose;
            choose = getInt();
            if(choose == 1){
                goto New1 ;
            }
            else{
                return ;
            }
        }
    }
}
bool JudgeGaming(){  //检查游戏是否结束 
    if(winsp()==1||winsz()==1||winzdjx()==1||winfdjx()==1){  //胜利判断
        return 0;
    }
    else{
        return 1;
    }

bool JudgeValue(int m,int n){  //检查落子是否有效   1:可以落子  0:不能落子 
    if(m>0&&m<R && n>0&&n<R){  //没有超出棋盘 
        if(a[m][n]!=4 && a[m][n]!=8){  //该处没有棋子 
            return 1;
        } 
    }
    return 0;
}
int winsp(){  //水平方向有没有五子 
    int total=0;
    for(int i=y-1;i>=1;i--){  //从x,y往左开始找连续棋子数
        if(a[x][i]==a[x][y]){
            total++;
        }
        else{
            break;
        }
    }
    for(int i=y;i<=R;i++){  //从x,y往右开始找连续棋子数
        if(a[x][i]==a[x][y]){
            total++;
        }
        else{
            break;
        }
    }
    if(total>=5){  //连续棋子数大于等于5 胜利
        return 1;
    }
    else{
        return 0;
    }
}
int winsz(){ //竖直方向有没有五子   找这个棋子的竖直方向
    int total=0;
    for(int i=x-1;i>=1;i--){
        if(a[i][y]==a[x][y]){
            total++;
        }
        else{
            break;
        }
    }
    for(int i=x;i<=R;i++){
        if(a[i][y]==a[x][y]){
            total++;
        }
        else{
            break;
        }
    }
    if(total>=5){
        return 1;
    }
    else{
        return 0;
    }

int winzdjx(){ //对角线方向有没有五子   找这个棋子对角线方向
    int total=0;
    bool fla=0;
    for(int i=x-1;i>=1;i--){
        for(int j=y-1;j>=1;j--){
            if(i-j==x-y){
                if(a[i][j]==a[x][y]){
                    total++;
                }
                else{
                    fla=1;
                    break;
                }
            }
        }
        if(fla==1){
            break;
        }
    } 
    fla=0;
    for(int i=x;i<=R;i++){
        for(int j=y;j<=C;j++){
            if(i-j==x-y){
                if(a[i][j]==a[x][y]){
                    total++;
                }
                else{
                    fla=1;
                    break;
                }
            }
        }
        if(fla==1){
            break;
        }
    } 
    if(total>=5){
        return 1;
    }
    else{
        return 0;
    }
}
int winfdjx(){ //副对角线方向有没有五子   找这个棋子斜对角线方向
    int total=0;
    bool fla=0;
    for(int i=x-1;i>=1;i--){
        for(int j=y-1;j<=C;j++){
            if(i+j==x+y){
                if(a[i][j]==a[x][y]){
                    total++;
                }
                else{
                    fla=1;
                    break;
                }
            }
        }
        if(fla==1){
            break;
        }
    } 
    fla=0;
    for(int i=x;i<=R;i++){
        for(int j=y;j>=1;j--){
            if(i+j==x+y){
                if(a[i][j]==a[x][y]){
                    total++;
                }
                else{
                    fla=1;
                    break;
                }
            }
        }
        if(fla==1){
            break;
        }
    } 
    if(total>=5){
        return 1;
    }
    else{
        return 0;
    }
}

0
0
张帆
张帆
中级天翼
中级天翼

请问为什么

 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),corcorcor);

会报错

0
0
武建豪
武建豪
中级天翼
中级天翼

老师,是不是该结帖了

我要回答