Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
150 views
in Technique[技术] by (71.8m points)

How can I make my ascii character 'X' move in my array in C?

1.I have the array set manually and I need the 'X' to move through it, but for some reason 2.it doesn't interact properly with the move() function.

#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("
");
    }
}

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!
");
    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,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S},
                        {O,O,O,O,O,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S},
                        {S,S,S,S,O,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S},
                        {S,S,S,S,O,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S},
                        {S,S,S,S,O,O,W,S,S,S,S,S,S,S,S,S,S,S,S,S},
                        {S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S},
                        {S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S},
                        {S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S},
                        {S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S},
                        {S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S},
                        {S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S},
                        {S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S},
                        {S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S},
                        {S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S},
                        {S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S},
                        {S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S},
                        {S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S},
                        {S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S},
                        {S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S},
                        {S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S}};

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
...