【无标题】

这是花费两月半制作的c++小球打砖游戏

制作不易,勿喷~

cpp 复制代码
在这里插入代码片

#include

#include <conio.h>

#include <windows.h>

using namespace std;

bool gameOver;

const int width = 40;

const int height = 20;

int paddleX, ballX, ballY, ballDirX, ballDirY;

int bricks510;

int score;

void Setup() {

gameOver = false;

paddleX = width/2;

ballX = width/2;

ballY = height-2;

ballDirX = -1;

ballDirY = -1;

score = 0;

复制代码
for(int i=0; i<5; i++) {
    for(int j=0; j<10; j++) {
        bricks[i][j] = 1;
    }
}

}

void Draw() {

system("cls");

for(int i=0; i<width+2; i++)

cout << "#";

cout << endl;

复制代码
for(int i=0; i<height; i++) {
    for(int j=0; j<width; j++) {
        if(j == 0) cout << "#";
        
        if(i == ballY && j == ballX) 
            cout << "O";
        else if(i == height-1 && j >= paddleX-2 && j <= paddleX+2)
            cout << "=";
        else {
            bool brick = false;
            for(int k=0; k<5; k++) {
                for(int l=0; l<10; l++) {
                    if(bricks[k][l] && i == k+1 && j >= l*4 && j <= l*4+3) {
                        cout << "[]";
                        j++; // 修正砖块显示错位
                        brick = true;
                    }
                }
            }
            if(!brick) cout << " ";
        }
        
        if(j == width-1) cout << "#";
    }
    cout << endl;
}

for(int i=0; i<width+2; i++)
    cout << "#";
cout << endl;
cout << "Score:" << score << endl;

}

void Input() {

if(_kbhit()) {

char key = _getch();

if(key == 'a' && paddleX > 3) paddleX--;

if(key == 'd' && paddleX < width-3) paddleX++;

if(key == 'x') gameOver = true;

}

}

void Logic() {

ballX += ballDirX;

ballY += ballDirY;

复制代码
if(ballX <= 0 || ballX >= width-1) ballDirX *= -1;
if(ballY <= 0) ballDirY *= -1;

if(ballY == height-2 && ballX >= paddleX-2 && ballX <= paddleX+2)
    ballDirY = -1;

if(ballY >= height) gameOver = true;

for(int i=0; i<5; i++) {
    for(int j=0; j<10; j++) {
        if(bricks[i][j] && ballY == i+1 && 
           ballX >= j*4 && ballX <= j*4+3) {
            bricks[i][j] = 0;
            ballDirY *= -1;
            score += 10;
        }
    }
}

}

int main() {

Setup();

int a;

cout<<"请输入速度";

cin>>a;

while(!gameOver) {

Draw();

Input();

Logic();

Sleep(a);

}

return 0;

}

相关推荐
学逆向的6 小时前
C 局部静态变量
c语言·开发语言·网络安全
小徐不徐说7 小时前
C++ 接口与插件设计:从工厂注册到 Qt 动态插件
数据库·c++·qt·系统架构·程序设计
大都督会赢的7 小时前
C++第一节课
开发语言·c++
UIU1147 小时前
P1233 [ICPC 2001 Taejon R] 木棍加工
数据结构·c++·算法·动态规划
“AI国潮设计-小江”7 小时前
【AIGC实战】Python+Stable Diffusion打造“英歌舞财神”IP,解锁“马到成功”等爆款情绪营销文案设计
开发语言·人工智能·python·prompt·aigc
小王C语言7 小时前
Qt常用控件:容器类控件,标题分组框、标签页(浏览器标签)
开发语言·qt
论文复现现场7 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
ZhengEnCi7 小时前
用 AI 写代码为什么拼到最后还是拼人:算力瓶颈与领域专家提示词的本质差异
算法·架构
TMedical8 小时前
MedPlanning 截骨模拟矫形功能
c++·图像处理·人工智能·qt·健康医疗
我是唐青枫8 小时前
Kotlin Delegation 委托详解
开发语言·kotlin