【c++】超好玩游戲

#include <iostream>
#include <vector>
#include <conio.h>
#include <windows.h>
#include <time.h>using namespace std;// 游戲常量
const int WIDTH = 40;
const int HEIGHT = 20;
const int PADDLE_WIDTH = 5;// 方向枚舉
enum Direction { STOP = 0, LEFT, RIGHT };class BreakoutGame {
private:int ballX, ballY;       // 球的位置int ballDirX, ballDirY; // 球的方向int paddleX;            // 擋板位置int score;              // 分數bool gameOver;          // 游戲結束標志vector<vector<bool>> bricks; // 磚塊矩陣public:BreakoutGame() {// 初始化游戲狀態resetGame();}// 重置游戲void resetGame() {ballX = WIDTH / 2;ballY = HEIGHT - 5;ballDirX = 1;ballDirY = -1;paddleX = (WIDTH - PADDLE_WIDTH) / 2;score = 0;gameOver = false;// 初始化磚塊bricks.resize(5, vector<bool>(WIDTH - 2, true));}// 繪制游戲界面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 && j < paddleX + PADDLE_WIDTH)cout << "=";// 繪制磚塊else if (i < 5 && j > 0 && j < WIDTH - 1 && bricks[i][j-1])cout << "■";elsecout << " ";if (j == WIDTH - 1)cout << "#"; // 右邊界}cout << endl;}// 繪制底部邊界for (int i = 0; i < WIDTH + 2; i++)cout << "#";cout << endl;// 顯示分數cout << "分數: " << score << endl;if (gameOver) {if (score == (WIDTH - 2) * 5)cout << "恭喜你贏了!按R重新開始,按Q退出" << endl;elsecout << "游戲結束!按R重新開始,按Q退出" << endl;}}// 處理用戶輸入void input() {if (_kbhit()) {switch (_getch()) {case 'a':if (paddleX > 0)paddleX--;break;case 'd':if (paddleX + PADDLE_WIDTH < WIDTH)paddleX++;break;case 'q':gameOver = true;break;case 'r':resetGame();break;default:break;}}}// 更新游戲狀態void update() {if (gameOver) return;// 移動球ballX += ballDirX;ballY += ballDirY;// 檢測左右邊界碰撞if (ballX <= 0 || ballX >= WIDTH - 1)ballDirX *= -1;// 檢測上邊界碰撞if (ballY <= 0)ballDirY *= -1;// 檢測下邊界(游戲結束)if (ballY >= HEIGHT) {gameOver = true;return;}// 檢測擋板碰撞if (ballY == HEIGHT - 1 && ballX >= paddleX && ballX < paddleX + PADDLE_WIDTH)ballDirY *= -1;// 檢測磚塊碰撞if (ballY < 5 && ballY >= 0 && ballX > 0 && ballX < WIDTH - 1) {int brickX = ballX - 1;int brickY = ballY;if (bricks[brickY][brickX]) {bricks[brickY][brickX] = false;score++;ballDirY *= -1;// 檢查是否所有磚塊都被消除bool allCleared = true;for (int i = 0; i < 5; i++) {for (int j = 0; j < WIDTH - 2; j++) {if (bricks[i][j]) {allCleared = false;break;}}if (!allCleared) break;}if (allCleared)gameOver = true;}}}// 運行游戲主循環void run() {while (!gameOver) {draw();input();update();Sleep(60); // 控制游戲速度}}
};int main() {cout << "簡易打磚塊游戲" << endl;cout << "使用A和D鍵移動擋板,Q鍵退出,R鍵重新開始" << endl;cout << "按任意鍵開始游戲..." << endl;_getch();BreakoutGame game;game.run();return 0;
}

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?結語

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?希望你也能學會ヾ(?°?°?)ノ゙
? ? ? ? ? ? ? ? ? ? ? ? ?制作不易,點個贊吧!Thanks?(・ω・)ノ

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/94976.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/94976.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/94976.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

GitHub 熱榜項目 - 日榜(2025-08-27)

GitHub 熱榜項目 - 日榜(2025-08-27) 生成于&#xff1a;2025-08-27 統計摘要 共發現熱門項目&#xff1a;15 個 榜單類型&#xff1a;日榜 本期熱點趨勢總結 本期GitHub熱榜呈現出三大技術趨勢&#xff1a;1. AI生產力工具持續升溫&#xff1a;系統提示詞泄露庫、DeepCode…

基于Springboot + vue3實現的學校學報出版發行管理系統

項目描述本系統包含管理員和用戶兩個角色。管理員角色&#xff1a;用戶管理&#xff1a;管理系統中所有用戶的信息&#xff0c;包括添加、刪除和修改用戶。稿件分類管理&#xff1a;管理稿件分類信息&#xff0c;包括新增、查看、修改和刪除稿件分類。新聞資訊管理&#xff1a;…

【Keil5教程及技巧】耗時一周精心整理萬字全網最全Keil5(MDK-ARM)功能詳細介紹【建議收藏-細細品嘗】

&#x1f48c; 所屬專欄&#xff1a;【單片機開發軟件技巧】 &#x1f600; 作??者&#xff1a; 于曉超 &#x1f680; 個人簡介&#xff1a;嵌入式工程師&#xff0c;專注嵌入式領域基礎和實戰分享 &#xff0c;歡迎咨詢&#xff01; &#x1f496; 歡迎大家&#xff1…

國家育兒補貼政策遭利用,黑產組織借機竊取敏感數據

組織概況與作案手法近期網絡安全領域出現了一個高度組織化的犯罪集團UTG-Q-1000&#xff0c;該組織通過利用中國國家育兒補貼政策實施大規模金融詐騙和數據竊取活動。這個結構嚴密的犯罪網絡下設多個專業部門&#xff0c;包括財務組、新聞與色情組、設計與制造組以及黑市交易組…

Python Imaging Library (PIL) 全面指南:PIL高級圖像處理-分割與顏色空間轉換

高級圖像處理&#xff1a;PIL中的圖像分割與顏色空間轉換 學習目標 本課程將深入探討PIL&#xff08;Python Imaging Library&#xff09;中的一些高級功能&#xff0c;包括圖像分割和顏色空間轉換。通過本課程的學習&#xff0c;學員將能夠掌握如何使用PIL進行更復雜的圖像處理…

圖解 OAuth,為什么這樣設計?

OAuth 于 2007 年首次推出。它最初由 Twitter 創建&#xff0c;因為 Twitter 希望能夠允許第三方應用代表用戶發布推文。想象一下&#xff0c;如果今天設計類似的應用&#xff0c;你會怎么做&#xff1f;一種方法是直接要求用戶輸入用戶名和密碼。因此&#xff0c;你創建一個非…

WeakAuras Lua Script ICC (BarneyICC) Simplified Chinese [Mini]

WeakAuras Lua Script ICC &#xff08;BarneyICC&#xff09; Simplified Chinese [Mini] ICC 迷你版本會打了只需要團隊框體高亮提示即可&#xff0c;因為有DBM&#xff0c;就不需要那么多了 !WA:2!S3xc4XrXzI6wkSjzcVSyb4aoKWGaC04ijMdPrsoit0OdRXwxmsYgmWoNTup4rZ0UNr2sKL…

mcp學習

mcp學習 預算&#xff1a;5塊(半頓拼好飯嗚嗚嗚) 出問題試著開啟或者關閉代理。 文章目錄mcp學習1. 基本原理2. 環境配置1. cherryStudiodeepseekpython2. Clinedeepseek3. 常用mcp服務1. mcp-server-fetch2. mcp-playwright3. baidu-map4. filesystem5. mcp-mysql-server參考…

Rust:所有權

Rust&#xff1a;所有權拷貝 & 移動堆棧拷貝移動克隆所有權變量的初始權限指針的雙重權限權限的動態變化引用賦值重新借用函數調用時的權限移動拷貝借用不可變借用可變借用復合類型的權限結構體元組數組傳統語言的內存管理要么依賴程序員手動管理&#xff08;C/C&#xff0…

Elasticsearch數據遷移快照方案初探(二):快照創建與多節點存儲問題解決

快照倉庫創建成功 經過前面的配置修改&#xff0c;我們成功創建了快照倉庫&#xff1a; curl -X PUT "https://[ES_HOST]:9200/_snapshot/backup_repo" \-H "Content-Type: application/json" \-u "[USERNAME]:[PASSWORD]" \-k \-d {"type&…

DeepSeek大模型風靡云平臺,百度智能云、阿里云、騰訊云等多個平臺宣布上線DeepSeek模型

近日&#xff0c;百度智能云、華為云、阿里云、騰訊云、360數字安全、云軸科技等多個平臺紛紛宣布上線DeepSeek大模型&#xff0c;這一消息無疑為AI開發者和企業用戶帶來了全新的機遇和選擇。本文將探討DeepSeek大模型上線的背景、意義以及未來的發展趨勢。 首先&#xff0c;我…

position屬性

文章目錄Position屬性&#x1f9ed; 一、position 屬性的取值&#x1f4dd; 二、各屬性值詳解與示例1. static&#xff08;靜態定位&#xff09;2. relative&#xff08;相對定位&#xff09;3. absolute&#xff08;絕對定位&#xff09;4. fixed&#xff08;固定定位&#xf…

通信中間件 Fast DDS(二) :詳細介紹

目錄 1.引言 2.DDS的基本原理 3.FastDDS 的核心特性 4.FastDDS 的核心架構 5.典型應用場景 6.FastDDS 的安裝與快速上手 7.學習資源與社區 1.引言 FastDDS&#xff08;原稱 Fast RTPS&#xff09;是由西班牙公司 eProsima 開發的一款開源、高性能、實時性強的數據分發服…

【69頁PPT】智慧方案智慧校園解決方案(附下載方式)

篇幅所限&#xff0c;本文只提供部分資料內容&#xff0c;完整資料請看下面鏈接 https://download.csdn.net/download/2501_92808811/91776074 資料解讀&#xff1a;【69頁PPT】智慧方案智慧校園解決方案 詳細資料請看本解讀文章的最后內容 智慧校園的概念與背景 智慧校園是…

FPGA的工作原理

FPGA&#xff08;現場可編程門陣列&#xff09;的核心工作原理是通過可配置的硬件架構&#xff0c;讓用戶在芯片出廠后自主定義電路邏輯&#xff0c;實現從“通用硬件”到“專用硬件”的靈活轉換&#xff0c;本質是用可編程資源搭建出符合特定需求的數字電路。一、核心架構&…

構建生產級RAG系統:從數據處理到智能體的全流程實踐

構建生產級RAG系統&#xff1a;從數據處理到智能體的全流程實踐 檢索增強生成&#xff08;RAG&#xff09;技術已成為打造高級知識問答系統的核心&#xff0c;但從原型到穩定高效的生產級系統&#xff0c;需突破數據處理、檢索優化、智能決策等多重挑戰。本文以某型號工業設備…

Java-代理

在 Java 開發中&#xff0c;代理模式是一種非常重要的設計模式&#xff0c;它通過引入代理對象來控制對目標對象的訪問&#xff0c;從而實現額外功能的增強。一、代理模式的基本概念代理模式的核心思想是&#xff1a;通過一個代理對象來間接訪問目標對象&#xff0c;在不修改目…

【基礎知識】互斥鎖、讀寫鎖、自旋鎖的區別

從定義、工作原理、適用場景和性能開銷四個維度來剖析這三種鎖的區別 核心結論 這三種鎖的核心區別在于它們應對“鎖已被占用”情況時的行為策略不同,而這直接決定了它們的性能和適用場景。 鎖類型 核心策略 適用場景 互斥鎖 (Mutex) 等不到,就睡 通用的獨占訪問,臨界區執行…

智慧清潔革新者:有鹿機器人自述

晨曦微露&#xff0c;當城市還未完全蘇醒&#xff0c;我已悄然完成數萬平方米的清潔工作。作為有鹿智能巡掃機器人&#xff0c;我很榮幸能與您分享如何以科技之力重塑清潔行業的標準與體驗。卓越技術&#xff1a;重新定義清潔新標準我搭載的聰明大腦是基于Master2000通用具身智…

python學習打卡day48

知識點回顧&#xff1a; 隨機張量的生成&#xff1a;torch.randn函數卷積和池化的計算公式&#xff08;可以不掌握&#xff0c;會自動計算的&#xff09;pytorch的廣播機制&#xff1a;加法和乘法的廣播機制 ps&#xff1a;numpy運算也有類似的廣播機制&#xff0c;基本一致 im…