[Plain Text] 噶 →→→→→进入此内容的聊天室

来自 币阳, 2024-10-25, 写在 Plain Text, 查看 57 次.
URL http://www.code666.cn/view/f827383c
  1. #include <stdio.h>
  2. #include <conio.h> // Windows下使用getch(),Linux下可以使用ncurses库
  3. #include <stdlib.h>
  4. #include <time.h>
  5. #include <windows.h> // 用于Windows下的Sleep()函数
  6.  
  7. #define WIDTH 30
  8. #define HEIGHT 10
  9. #define GROUND_HEIGHT (HEIGHT - 1)
  10.  
  11. int dino_position = GROUND_HEIGHT; // 恐龙的位置
  12. int obstacle_position = WIDTH - 1; // 障碍物的起始位置
  13. int score = 0;
  14. int is_jumping = 0; // 是否在跳跃状态
  15. int jump_height = 3; // 跳跃高度
  16. int jump_progress = 0; // 当前跳跃进度
  17.  
  18. void draw() {
  19.     system("cls"); // 清屏
  20.  
  21.     for (int i = 0; i < HEIGHT; i++) {
  22.         for (int j = 0; j < WIDTH; j++) {
  23.             if (i == dino_position && j == 1) {
  24.                 printf("D"); // 用D代表小恐龙
  25.             } else if (i == GROUND_HEIGHT && j == obstacle_position) {
  26.                 printf("|"); // 用|代表障碍物
  27.             } else if (i == GROUND_HEIGHT) {
  28.                 printf("_"); // 地面
  29.             } else {
  30.                 printf(" "); // 空白
  31.             }
  32.         }
  33.         printf("\n");
  34.     }
  35.  
  36.     printf("Score: %d\n", score);
  37. }
  38.  
  39. void update() {
  40.     // 障碍物向左移动
  41.     obstacle_position--;
  42.     if (obstacle_position < 0) {
  43.         obstacle_position = WIDTH - 1;
  44.         score++; // 每当避开一个障碍物,得分+1
  45.     }
  46.  
  47.     // 处理跳跃逻辑
  48.     if (is_jumping) {
  49.         if (jump_progress < jump_height) {
  50.             dino_position--;
  51.             jump_progress++;
  52.         } else {
  53.             dino_position++;
  54.             if (dino_position >= GROUND_HEIGHT) {
  55.                 dino_position = GROUND_HEIGHT;
  56.                 is_jumping = 0; // 跳跃结束
  57.                 jump_progress = 0;
  58.             }
  59.         }
  60.     }
  61.  
  62.     // 检查碰撞
  63.     if (obstacle_position == 1 && dino_position == GROUND_HEIGHT) {
  64.         printf("Game Over! Final Score: %d\n", score);
  65.         exit(0); // 游戏结束
  66.     }
  67. }
  68.  
  69. void jump() {
  70.     if (!is_jumping) {
  71.         is_jumping = 1;
  72.     }
  73. }
  74.  
  75. int main() {
  76.     srand(time(0)); // 随机数种子
  77.  
  78.     while (1) {
  79.         if (_kbhit()) { // 检测键盘输入
  80.             char ch = _getch();
  81.             if (ch == ' ') { // 按空格键跳跃
  82.                 jump();
  83.             }
  84.         }
  85.  
  86.         update(); // 更新游戏状态
  87.         draw();   // 绘制游戏画面
  88.         Sleep(100); // 控制游戏速度
  89.     }
  90.  
  91.     return 0;
  92. }

回复 "噶"

这儿你可以回复上面这条便签

captcha