如何让我的 ascii 字符“X”在 C 的数组中移动?

问题描述

1.我手动设置了数组,我需要“X”来移动它,但出于某种原因 2.它没有与 move() 函数正确交互。

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

void printBoard(char board[20][20])
{
    for (int x = 0; x < 20; x++)
    {
        for (int y = 0; y < 20; y++)
        {
            printf("%c",board[x][y]);
        }
        printf("\n");
    }
}

void move(char board[20][20],int Hx,int Hy) {
    Hx=0;
    Hy=0;
    char umove;
    printf("Please enter which direction you would like to move!\n");
    umove=getch();
    if (umove == 'f')
    {
        exit("QUITTER!");
    }
        // f mean finish it
    //return false;

    board[Hx][Hy] = 'O';
    if (umove == 'a')
        { // a mean left
        /*Hy = Hy == 0 ? 20 :*/
        Hy - 1;
        if(Hy<0)
        {
            printf("Game Over!");
        }

        if(board[Hx][Hy]=='S')
        {
            Hy+1;
        }

        }
    else if (umove == 'd'){ // d mean right
        /*Hy = Hy == 20 ? 0 :*/ Hy + 1;
        if(board[Hx][Hy]=='S')
        {
            Hy-1;
        }


        }
    else if (umove == 'w'){ // w mean up
        /*Hx = Hx == 0 ? 19 :*/ Hx - 1;
        if(board[Hx][Hy]=='S')
        {
            Hx+1;
        }
        }
    else if (umove == 's'){  // s mean down
        /*Hx = Hx == 19 ? 0 :*/ Hx + 1;
        if(board[Hx][Hy]=='S')
        {
            Hx-1;
        }
    }
    board[Hx][Hy] = 'X';
    //return true;
}

int main() {
    //char board[20][20];
    int Hx = 0,Hy = 0;
    char S,W,O;
    S='S';
    W='W';
    O='O';
    char board[20][20]={{O,O,S,S},{O,{S,S}};

    board[Hx][Hy] = 'X';
    //bool res = true;
    while (1) {
        printBoard(board);
        move(board,Hx,Hy);
        system("cls");
    }
    printf("Game finished!");
    return 0;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)