【无标题】

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

}

相关推荐
徐小黑ACG2 分钟前
Golang 基础05 结构体struct
开发语言·算法·golang
优橙教育19 分钟前
零基础学AI应用开发要多久?3个月能到什么水平
服务器·开发语言·网络·php
Navigator_Z30 分钟前
LeetCode //C - 1286. Iterator for Combination
c语言·算法·leetcode
SEO_juper44 分钟前
用 Python 写一个 GEO 可见性检查脚本:你的网站现在能被 AI 引用吗
开发语言·人工智能·爬虫·python·seo·外贸独立站
西柚小萌新1 小时前
【LLM&&AI应用开发 八股文】--4.3.Agent智能体(下)
java·开发语言·数据库
北极有牛1 小时前
cpp学习笔记--常量指针
java·开发语言·算法
GPU实战笔记1 小时前
云端 GPU 训练的账户余额提醒:它能说明什么,不能说明什么?
深度学习·算法·成本管理·gpu云计算·云端训练
半杯咖啡半行码1 小时前
C++ 编程与 STL 模板:从泛型编程到内存安全详解
开发语言·c++
浮链序1 小时前
怎么证明"你这个模型是偷我的"——把蒸馏变成取证工具
算法·安全·llm
小O的算法实验室1 小时前
IEEE TMC,面向异构物联网的多目标量子行为拓扑优化算法
算法