编辑代码

#include <stdio.h>
#include <stdlib.h>

// 屏幕的宽度和高度
#define SCREEN_WIDTH 80
#define SCREEN_HEIGHT 20

// 玩家的初始位置
#define PLAYER_X 40
#define PLAYER_Y 18

// 玩家的移动速度
#define SPEED 1

// 玩家结构体
typedef struct {
    int x;
    int y;
} Player;

// 初始化玩家
void initPlayer(Player *player) {
    player->x = PLAYER_X;
    player->y = PLAYER_Y;
}

// 处理玩家移动
void movePlayer(Player *player, char key) {
    switch (key) {
        case 'w':
            if (player->y > 0) player->y -= SPEED;
            break;
        case 's':
            if (player->y < SCREEN_HEIGHT - 1) player->y += SPEED;
            break;
        case 'a':
            if (player->x > 0) player->x -= SPEED;
            break;
        case 'd':
            if (player->x < SCREEN_WIDTH - 1) player->x += SPEED;
            break;
    }
}

// 绘制游戏场景
void draw(Player *player) {
    system("cls");  // 清屏

    for (int i = 0; i < SCREEN_HEIGHT; i++) {
        for (int j = 0; j < SCREEN_WIDTH; j++) {
            if (i == player->y && j == player->x) {
                printf("P");  // 玩家
            } else {
                printf(" ");  // 空白
            }
        }
        printf("\n");
    }
}

int main() {
    Player player;
    initPlayer(&player);

    char key;
    while (1) {
        key = getchar();  // 使用 getchar 获取输入
        movePlayer(&player, key);
        draw(&player);
    }

    return 0;
}