【无标题】

这是花费两月半制作的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;

}

相关推荐
zzzll11112 分钟前
LangChain4j:Java 生态的 AI 应用开发利器
java·开发语言·人工智能
Dream Cosmos18 分钟前
Linux 多线程——线程互斥:从抢票问题到 Mutex 底层原理
linux·c++
hahaha601619 分钟前
HLS高层次综合设计技巧--循环merge和循环split
人工智能·算法·计算机视觉
JAI科研20 分钟前
Deepseek Agent Harness教程(七) | Deepseek Harness不是一个内核加一堆插件
开发语言·人工智能·深度学习·算法·自然语言处理·transformer·vllm
集思广益的灰太狼37 分钟前
变频器启动致PLC数据异常?西门子G120配合滤波器EMC抑制方案
人工智能·算法·工控·emc·电磁兼容·变频器·西门子
孙克旭_1 小时前
单链表进阶实操:5 道常考面试题详细解析【Java 实现】
java·开发语言·数据结构·单链表
Titan20241 小时前
HTTPS基础知识梳理
服务器·网络·c++·网络协议·学习·http·https
艾莉丝努力练剑1 小时前
【AI大模型接入SDK】SSE协议
c++·学习·面试·大模型·sdk
斑马1391 小时前
Linux软件编程学习笔记(五)——线程
开发语言·php
方方洛1 小时前
vllm教程-03-架构设计
算法·架构