弹球-c++小游戏源码


#include<bits/stdc++.h>
#include<windows.h>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
#define jp(x) ((GetAsyncKeyState(x)&0x8000)?1:0)
using namespace std;
struct Button
{
    int x,y,color;
    const char *name;
    int len;
};
inline void GetPos(POINT &pt)
{
    HWND hwnd=GetForegroundWindow();
    GetCursorPos(&pt);
    ScreenToClient(hwnd,&pt);
    pt.y=pt.y/16;
    pt.x=pt.x/8;
}
inline void color(int a)
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
}
inline void gto(int x,int y)
{
    COORD pos;
    pos.X=y;
    pos.Y=x;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}
inline Button NewButton(int x,int y,int color,const char *name)
{
    Button t;
    t.x=x;
    t.y=y;
    t.name=name;
    t.color=color;
    t.len=strlen(name);
    gto(x,y),cout<<name;
    return t;
}
inline bool Preserve(Button A)
{
    gto(A.x,A.y),color(A.color);
    POINT pt;
    GetPos(pt);
    if(pt.y==A.x&&(pt.x>=A.y&&pt.x<=A.y+A.len))
    {
        if(KEY_DOWN(MOUSE_MOVED))return 1;
    }
    return 0;
}
inline void dis_mouse()
{
    ShowCursor(false);
    HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_CURSOR_INFO cci;
    GetConsoleCursorInfo(hOut,&cci);
    cci.bVisible=false;
    SetConsoleCursorInfo(hOut,&cci);
}
inline void print(int x,int y,int col,string c)
{
    color(col);
    y*=2;
    gto(x,y);
    cout<<c;
    color(7);
}
int ma[100][100]={{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                  {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                  {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                  {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                  {1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1},
                  {1,2,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,2,1},
                  {1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1},
                  {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                  {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                  {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                  {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};
int lm=5,rm=5;
int scl=0,scr=0;
int bx=5,by=11;
int gogo;//1左上,2左,3左下,4右上,5右,6右下 
int fx[10]={0,-1, 0, 1,-1, 0, 1};
int fy[10]={0,-1,-1,-1, 1, 1, 1};
inline void printmap()
{
    for(register int i=0;i<=10;i++)
        for(register int j=0;j<=30;j++)
        {
            if(ma[i][j]==0)print(i,j,7,"  ");
            if(ma[i][j]==1)print(i,j,8,"■");
            if(ma[i][j]==2)print(i,j,4,"■");
            if(ma[i][j]==3)print(i,j,7,"●");
            gto(11,20);
            printf("%d:%d",scl,scr);
        }
}
int main()
{
    srand(time(NULL));
    gogo=rand()%6+1;
    dis_mouse();
    system("mode con cols=46 lines=16");
    print(1,0,7,"弹球");
    Button pvp=NewButton(5,0,7,">pvp");
    Button pvc=NewButton(7,0,7,">pvc");
    while(1)
    {
        if(Preserve(pvp))
        {
            printmap();
            while(1)
            {
                if(jp('W'))
                {
                    if(by==2)gogo=4;
                    if(lm>2)
                    {
                        ma[lm+1][1]=0;
                        print(lm+1,1,7,"  ");
                        lm--;
                        ma[lm-1][1]=2;
                        print(lm-1,1,4,"■");
                    }
                    Sleep(50);
                }
                if(jp('S'))
                {
                    if(by==2)gogo=6;
                    if(lm<8)
                    {
                        ma[lm-1][1]=0;
                        print(lm-1,1,7,"  ");
                        lm++;
                        ma[lm+1][1]=2;
                        print(lm+1,1,4,"■");
                    }
                    Sleep(50);
                }
                if(jp(38))
                {
                    if(by==21)gogo=1;
                    if(rm>2)
                    {
                        ma[rm+1][21]=0;
                        print(rm+1,21,7,"  ");
                        rm--;
                        ma[rm-1][21]=2;
                        print(rm-1,21,4,"■");
                    }
                    Sleep(50);
                }
                if(jp(40))
                {
                    if(by==21)gogo=3;
                    if(rm<8)
                    {
                        ma[rm-1][21]=0;
                        print(rm-1,21,7,"  ");
                        rm++;
                        ma[rm+1][21]=2;
                        print(rm+1,21,4,"■");
                    }
                    Sleep(50);
                }
                if(gogo==1)
                {
                    print(bx,by,7,"  ");
                    bx+=fx[gogo],by+=fy[gogo];
                    if(bx==0)bx-=fx[gogo],by-=fy[gogo],gogo=3;
                    if(by==1&&ma[bx-fx[gogo]][by]==2)bx-=fx[gogo],by-=fy[gogo],gogo=4;
                    if(by==1&&ma[bx-fx[gogo]][by]!=2)ma[bx][by]=0,bx=5,by=11,ma[bx][by]=3,gogo=rand()%6+1,scr++,printmap(),Sleep(2048);
                    print(bx,by,7,"●");
                    Sleep(100);
                }
                if(gogo==2)
                {
                    print(bx,by,7,"  ");
                    bx+=fx[gogo],by+=fy[gogo];
                    if(by==1&&ma[bx-fx[gogo]][by]==2)bx-=fx[gogo],by-=fy[gogo],gogo=5;
                    if(by==1&&ma[bx-fx[gogo]][by]!=2)ma[bx][by]=0,bx=5,by=11,ma[bx][by]=3,gogo=rand()%6+1,scr++,printmap(),Sleep(2048);
                    print(bx,by,7,"●"); 
                    Sleep(100);
                }
                if(gogo==3)
                {
                    print(bx,by,7,"  ");
                    bx+=fx[gogo],by+=fy[gogo];
                    if(bx==10)bx-=fx[gogo],by-=fy[gogo],gogo=1;
                    if(by==1&&ma[bx-fx[gogo]][by]==2)bx-=fx[gogo],by-=fy[gogo],gogo=5;
                    if(by==1&&ma[bx-fx[gogo]][by]!=2)ma[bx][by]=0,bx=5,by=11,ma[bx][by]=3,gogo=rand()%6+1,scr++,printmap(),Sleep(2048);
                    print(bx,by,7,"●");
                    Sleep(100);
                }
                if(gogo==4)
                {
                    print(bx,by,7,"  ");
                    bx+=fx[gogo],by+=fy[gogo];
                    if(bx==0)bx-=fx[gogo],by-=fy[gogo],gogo=6;
                    if(by==21&&ma[bx-fx[gogo]][by]==2)bx-=fx[gogo],by-=fy[gogo],gogo=1;
                    if(by==21&&ma[bx-fx[gogo]][by]!=2)ma[bx][by]=0,bx=5,by=11,ma[bx][by]=3,gogo=rand()%6+1,scl++,printmap(),Sleep(2048);
                    print(bx,by,7,"●");
                    Sleep(100);
                }
                if(gogo==5)
                {
                    print(bx,by,7,"  ");
                    bx+=fx[gogo],by+=fy[gogo];
                    if(by==21&&ma[bx-fx[gogo]][by]==2)bx-=fx[gogo],by-=fy[gogo],gogo=2;
                    if(by==21&&ma[bx-fx[gogo]][by]!=2)ma[bx][by]=0,bx=5,by=11,ma[bx][by]=3,gogo=rand()%6+1,scl++,printmap(),Sleep(2048);
                    print(bx,by,7,"●");
                    Sleep(100);
                }
                if(gogo==6)
                {
                    print(bx,by,7,"  ");
                    bx+=fx[gogo],by+=fy[gogo];
                    if(bx==10)bx-=fx[gogo],by-=fy[gogo],gogo=4;
                    if(by==21&&ma[bx-fx[gogo]][by]==2)bx-=fx[gogo],by-=fy[gogo],gogo=3;
                    if(by==21&&ma[bx-fx[gogo]][by]!=2)ma[bx][by]=0,bx=5,by=11,ma[bx][by]=3,gogo=rand()%6+1,scl++,printmap(),Sleep(2048);
                    print(bx,by,7,"●");
                    Sleep(100);
                }
                if(scl==3)
                {
                    system("cls");
                    printf("player 1 wins!");
                    Sleep(3096);
                    system("cls");
                    scl=scr=0;
                    print(1,0,7,"弹球");
                    print(5,0,7,">pvp");
                    print(7,0,7,">pvc");
                    break;
                }
                if(scr==3)
                {
                    system("cls");
                    printf("player 2 wins!");
                    Sleep(3096);
                    system("cls");
                    scl=scr=0;
                    print(1,0,7,"弹球");
                    print(5,0,7,">pvp");
                    print(7,0,7,">pvc");
                    break;
                }
            }
        }
        if(Preserve(pvc))
        {
            printmap();
            while(1)
            {
                if(jp('W'))
                {
                    if(by==2)gogo=4;
                    if(lm>2)
                    {
                        ma[lm+1][1]=0;
                        print(lm+1,1,7,"  ");
                        lm--;
                        ma[lm-1][1]=2;
                        print(lm-1,1,4,"■");
                    }
                }
                if(jp('S'))
                {
                    if(by==2)gogo=6;
                    if(lm<8)
                    {
                        ma[lm-1][1]=0;
                        print(lm-1,1,7,"  ");
                        lm++;
                        ma[lm+1][1]=2;
                        print(lm+1,1,4,"■");
                    }
                }
                if(gogo==1)
                {
                    print(bx,by,7,"  ");
                    bx+=fx[gogo],by+=fy[gogo];
                    if(bx==0)bx-=fx[gogo],by-=fy[gogo],gogo=3;
                    if(by==1&&ma[bx-fx[gogo]][by]==2)bx-=fx[gogo],by-=fy[gogo],gogo=4;
                    if(by==1&&ma[bx-fx[gogo]][by]!=2)ma[bx][by]=0,bx=5,by=11,ma[bx][by]=3,gogo=rand()%6+1,scr++,printmap(),Sleep(2048);
                    print(bx,by,7,"●");
                    int isgo=rand()%5;
                    if(isgo!=0)
                    {
                        if(by==21)gogo=1;
                        if(rm>2)
                        {
                            ma[rm+1][21]=0;
                            print(rm+1,21,7,"  ");
                            rm--;
                            ma[rm-1][21]=2;
                            print(rm-1,21,4,"■");
                        }
                        Sleep(100);
                    }
                    Sleep(100);
                }
                if(gogo==2)
                {
                    print(bx,by,7,"  ");
                    bx+=fx[gogo],by+=fy[gogo];
                    if(by==1&&ma[bx-fx[gogo]][by]==2)bx-=fx[gogo],by-=fy[gogo],gogo=5;
                    if(by==1&&ma[bx-fx[gogo]][by]!=2)ma[bx][by]=0,bx=5,by=11,ma[bx][by]=3,gogo=rand()%6+1,scr++,printmap(),Sleep(2048);
                    print(bx,by,7,"●"); 
                    Sleep(100);
                }
                if(gogo==3)
                {
                    print(bx,by,7,"  ");
                    bx+=fx[gogo],by+=fy[gogo];
                    if(bx==10)bx-=fx[gogo],by-=fy[gogo],gogo=1;
                    if(by==1&&ma[bx-fx[gogo]][by]==2)bx-=fx[gogo],by-=fy[gogo],gogo=5;
                    if(by==1&&ma[bx-fx[gogo]][by]!=2)ma[bx][by]=0,bx=5,by=11,ma[bx][by]=3,gogo=rand()%6+1,scr++,printmap(),Sleep(2048);
                    print(bx,by,7,"●");
                    int isgo=rand()%5;
                    if(isgo!=0)
                    {
                        if(by==21)gogo=3;
                        if(rm<8)
                        {
                            ma[rm-1][21]=0;
                            print(rm-1,21,7,"  ");
                            rm++;
                            ma[rm+1][21]=2;
                            print(rm+1,21,4,"■");
                        }
                        Sleep(100);
                    }
                    Sleep(100);
                }
                if(gogo==4)
                {
                    print(bx,by,7,"  ");
                    bx+=fx[gogo],by+=fy[gogo];
                    if(bx==0)bx-=fx[gogo],by-=fy[gogo],gogo=6;
                    if(by==21&&ma[bx-fx[gogo]][by]==2)bx-=fx[gogo],by-=fy[gogo],gogo=1;
                    if(by==21&&ma[bx-fx[gogo]][by]!=2)ma[bx][by]=0,bx=5,by=11,ma[bx][by]=3,gogo=rand()%6+1,scl++,printmap(),Sleep(2048);
                    print(bx,by,7,"●");
                    int isgo=rand()%5;
                    if(isgo==0)
                    {
                        if(by==21)gogo=1;
                        if(rm>2)
                        {
                            ma[rm+1][21]=0;
                            print(rm+1,21,7,"  ");
                            rm--;
                            ma[rm-1][21]=2;
                            print(rm-1,21,4,"■");
                        }
                        Sleep(100);
                    }
                    Sleep(100);
                }
                if(gogo==5)
                {
                    print(bx,by,7,"  ");
                    bx+=fx[gogo],by+=fy[gogo];
                    if(by==21&&ma[bx-fx[gogo]][by]==2)bx-=fx[gogo],by-=fy[gogo],gogo=2;
                    if(by==21&&ma[bx-fx[gogo]][by]!=2)ma[bx][by]=0,bx=5,by=11,ma[bx][by]=3,gogo=rand()%6+1,scl++,printmap(),Sleep(2048);
                    print(bx,by,7,"●");
                    Sleep(100);
                }
                if(gogo==6)
                {
                    print(bx,by,7,"  ");
                    bx+=fx[gogo],by+=fy[gogo];
                    if(bx==10)bx-=fx[gogo],by-=fy[gogo],gogo=4;
                    if(by==21&&ma[bx-fx[gogo]][by]==2)bx-=fx[gogo],by-=fy[gogo],gogo=3;
                    if(by==21&&ma[bx-fx[gogo]][by]!=2)ma[bx][by]=0,bx=5,by=11,ma[bx][by]=3,gogo=rand()%6+1,scl++,printmap(),Sleep(2048);
                    print(bx,by,7,"●");
                    int isgo=rand()%5;
                    if(isgo!=0)
                    {
                        if(by==21)gogo=3;
                        if(rm<8)
                        {
                            ma[rm-1][21]=0;
                            print(rm-1,21,7,"  ");
                            rm++;
                            ma[rm+1][21]=2;
                            print(rm+1,21,4,"■");
                        }
                        Sleep(100);
                    }
                    Sleep(100);
                }
                if(scl==3)
                {
                    system("cls");
                    printf("player 1 wins!");
                    Sleep(3096);
                    system("cls");
                    scl=scr=0;
                    print(1,0,7,"弹球");
                    print(5,0,7,">pvp");
                    print(7,0,7,">pvc");
                    break;
                }
                if(scr==3)
                {
                    system("cls");
                    printf("computer wins!");
                    Sleep(3096);
                    system("cls");
                    scl=scr=0;
                    print(1,0,7,"弹球");
                    print(5,0,7,">pvp");
                    print(7,0,7,">pvc");
                    break;
                }
            }
        }
    }
    return 0;
}
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Dev-C是一款用于编写和开发C语言程序的集成开发环境(IDE)。它提供了一整套工具和资,方便开发者进行编码、调试、编译和运行程序。 Dev-C游戏代码大全是指其中收录了许多关于游戏开发的代码示例和模板。这些代码可以帮助开发者快速上手游戏开发,提供了各种功能和特性的实现方法。 游戏代码大全一般包括以下几个方面的内容: 1. 游戏引擎:提供了一个基于C语言的游戏引擎,开发者可以利用该引擎构建自己的游戏世界。例如,提供了图形渲染、碰撞检测、场景管理等功能的实现方法。 2. 游戏物体和角色:提供了创建和管理游戏物体和角色的代码示例。例如,实现了游戏人物的移动、跳跃、攻击等基本行为。 3. 游戏功能和特性:提供了一些游戏开发中常见的功能和特性的实现方法。例如,实现了计分系统、关卡系统、游戏存档等功能。 4. 游戏界面和交互:提供了一些关于游戏界面和交互的代码示例。例如,实现了游戏菜单、游戏设置、用户输入等功能。 总而言之,Dev-C游戏代码大全为开发者提供了丰富的代码资,帮助他们更快地开发出自己的游戏。开发者可以根据自己的需求,参考这些代码,并根据实际情况进行修改和优化,以满足自己的游戏开发目标。 ### 回答2: Dev-C是一个集成开发环境(IDE),用于开发C和C++程序。它包含了一个代码编辑器、编译器和调试器,可以帮助开发人员更轻松地编写、调试和测试游戏代码。 Dev-C的用户界面简洁易用,适合初学者使用。它提供了丰富的功能,如代码自动完成、语法高亮和错误检查等,有助于提高代码的编写效率。此外,Dev-C还支持多个文件的管理和项目组织,使得大型游戏项目的开发更加便捷。 Dev-C内置了GCC编译器,可以将C和C++代码编译为可执行文件。编译器具有优化选项,可以提高游戏的性能和效率。同时,Dev-C还提供了强大的调试功能,可以帮助开发人员找出代码中的错误和问题,并进行修复。 对于游戏开发者而言,Dev-C提供了游戏开发相关的代码模板和函数库,方便开发人员快速构建游戏。例如,Dev-C中提供了大量的图形和输入输出函数,方便实现游戏画面和玩家交互的功能。此外,Dev-C还支持游戏音效和网络编程等扩展功能。 总结来说,Dev-C是一个功能强大且易于使用的IDE,适用于C和C++游戏代码的开发。它提供了丰富的功能和工具,可以帮助开发人员快速、高效地编写、调试和测试游戏代码。无论是初学者还是有经验的开发者,Dev-C都是一个优秀的选择。 ### 回答3: Dev-C++是一款开放代码的集成开发环境,主要用于编写和调试C和C++程序。它是一个功能强大且易于使用的工具,被广泛应用于游戏开发中。 Dev-C++的游戏代码大全是一个包含各种游戏开发示例代码的资库。这些示例代码覆盖了游戏开发中常见的各个方面,如图形绘制、动画效果、音频处理、用户界面、游戏逻辑等。 对于想要学习游戏开发的人来说,这个代码库是一个非常有价值的资。 在Dev-C++的游戏代码大全中,你可以找到许多经典的游戏示例,包括贪吃蛇、弹球、飞机大战等。这些示例代码以简洁的方式展示了如何使用C++语言实现基本的游戏功能,例如游戏逻辑的实现、用户输入的处理以及图像的渲染等。 此外,Dev-C++还提供了一些常用的游戏开发库,如SDL(Simple DirectMedia Layer)和OpenGL。这些库可以帮助开发者快速搭建游戏框架,并提供了丰富的函数和接口,使得游戏开发更加便捷。 总之,Dev-C++的游戏代码大全是一个帮助初学者入门游戏开发的宝贵资。通过学习和参考这些示例代码,可以帮助开发者理解游戏开发的基本原理和常用技术,从而提升自己的编程水平,并创建出自己的独特游戏作品。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SKCQTGZX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值