c++自编1号游戏:
#include <stdio.h>
#include <conio.h>
#include <windows.h>
// 游戏区域的宽度和高度
const int WIDTH = 80;
const int HEIGHT = 20;
// 小恐龙结构体
struct Dino {
int x;
int y;
bool isJumping;
int jumpHeight;
};
// 障碍物结构体
struct Obstacle {
int x;
int y;
};
void drawScene(Dino dino, Obstacle obstacle) {
system("cls");
for (int i = 0; i < HEIGHT; i++) {
for (int j = 0; j < WIDTH; j++) {
if (i == dino.y && j == dino.x) {
printf("R"); // 小恐龙
} else if (i == obstacle.y && j == obstacle.x) {
printf("O"); // 障碍物
} else {
printf(" ");
}
}
printf("\n");
}
}
void updateDino(Dino *dino) {
if (dino->isJumping) {
dino->y--;
dino->jumpHeight--;
if (dino->jumpHeight <= 0) {
dino->isJumping = false;
dino->jumpHeight = 10;
}
} else {
dino->y++;
if (dino->y >= HEIGHT - 1) {
dino->y = HEIGHT - 1;
}
}
}
void updateObstacle(Obstacle *obstacle) {
obstacle->x--;
if (obstacle->x < 0) {
obstacle->x = WIDTH - 1;
obstacle->y = rand() % (HEIGHT - 2) + 1;
}
}
bool checkCollision(Dino dino, Obstacle obstacle) {
return dino.x == obstacle.x && dino.y == obstacle.y;
}
int main() {
Dino dino = {10, HEIGHT - 1, false, 10};
Obstacle obstacle = {WIDTH - 1, rand() % (HEIGHT - 2) + 1};
while (true) {
if (_kbhit()) {
char key = _getch();
if (key == ' ' &&!dino.isJumping) {
dino.isJumping = true;
}
}
updateDino(&dino);
updateObstacle(&obstacle);
if (checkCollision(dino, obstacle)) {
printf("游戏结束!\n");
break;
}
drawScene(dino, obstacle);
Sleep(10);
}
return 0;
}