954,504 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Array Troubles

I'm having troubles with a cin statement in my code and need some guidance. I need my code to refresh an array with completely different ASCII characters, then have the user enter a keystroke and have the refresh speed increase by a few hundred miliseconds every time. Now my C++ teacher gave me a code to use (using the windows.h library) but i have no idea how to apply it or if theres an easier way.

void SetCoord(int x, int y)
{
    COORD thing = (x,y);
    SetConsoleCursorPosition (GetStdHandle ( STD_OUTPUT_HANDLE), thing);
}

that's the code he gave me but i don't know how to apply it to my code. (will post below)
any help would be great! if you have any other questions let me know! this is only the portion of the game that this involves.

void func2()
{
    system("cls");
            cout << "----------------------------------------------------------------------------" << endl;
            cout << "|  You have chosen the Moving Menace game.                                 |" << endl;
            cout << "|  You will be looking for a specific character in this game.              |" << endl;
            cout << "|  When you see the character, enter the key 'G'.                          |" << endl;
            cout << "|  Just as a warning the more you find the character, the faster it moves. |" << endl;
            cout << "|  Are you ready?                                                          |" << endl;
            cout << "----------------------------------------------------------------------------" << endl;
            Sleep(10000);
            //It's over 9000!
            cout << "3" << endl;
            Sleep(1000);
            cout << "2" << endl;;
            Sleep(1000);
            cout << "1" << endl;
            Sleep(1000);
            system("cls");
            cout << "GO!";
            Sleep(1000);
            system("cls");

             // initialize the array
            while(1)
            {

                cout << "Look for this character: '*' \n" << endl;
                char cTest;
                iSize = 16;
                for (int x = 0; x < iSize; x++)
                {
                    for (int y = 0; y < iSize; y++)
                    {
                        cTest = char(rand() % 223 + 33);
                        cArray[x][y] = cTest;
                    }
                }

                // display everything in array
                for (int x = 0; x < iSize; x++)
                {
                    for (int y = 0; y < iSize; y++)
                    {
                        cTest = cArray[x][y];
                        cout<< cTest;
                    }
                    cout << endl;
                }
/*my problems start here! well maybe earlier...*/
                Sleep(1500);
                system("cls");

            }


}
youLostTheGame
Newbie Poster
17 posts since Jan 2011
Reputation Points: 10
Solved Threads: 0
 
that's the code he gave me but i don't know how to apply it to my code. (will post below)


So what's that code do? That the first thing to understand if you want to use it.

WaltP
Posting Sage w/ dash of thyme
Moderator
10,506 posts since May 2006
Reputation Points: 3,348
Solved Threads: 944
 
So what's that code do? That the first thing to understand if you want to use it.


its supposed to display a array (16x16) that has every spot occupied by a random ASCII character and at first every 1.5 seconds the array refreshes itself and all the characters are in a completely different spot. now the user is supposed to be looking for a specific character (for testing purposes '*') and when they see that character they enter a keystroke and the array will start refreshing faster. what i'm having problems with is that keystroke function. if any of that made sense...

youLostTheGame
Newbie Poster
17 posts since Jan 2011
Reputation Points: 10
Solved Threads: 0
 

That's what the code does that your teacher gave you? It doesn't look big enough.

WaltP
Posting Sage w/ dash of thyme
Moderator
10,506 posts since May 2006
Reputation Points: 3,348
Solved Threads: 944
 

the very first 5 lines of code i posted on here (starting with viod SetCoord..) is what he gave me. the rest is MY code that i have written. its a smaller portion of code from a large assignment i'm doing. the code above is all contained with itself. if that makes sense. i can post the entire code but it seems to me that it would be irrelevent(i know i can't spell)

youLostTheGame
Newbie Poster
17 posts since Jan 2011
Reputation Points: 10
Solved Threads: 0
 
That's what the code does that your teacher gave you? It doesn't look big enough.


excuse me i didn't understand what you had said. no what my teacher gave me he said its supposed to help with my cin statement.

youLostTheGame
Newbie Poster
17 posts since Jan 2011
Reputation Points: 10
Solved Threads: 0
 
excuse me i didn't understand what you had said. no what my teacher gave me he said its supposed to help with my cin statement.

OK, continue with the pulling of teeth:So what's that code do? That's the first thing to understand if you want to use it.
Look at the code. Look up the parts you don't already know. You need to understand the code he gave you. Use your book and GOOGLE.

WaltP
Posting Sage w/ dash of thyme
Moderator
10,506 posts since May 2006
Reputation Points: 3,348
Solved Threads: 944
 

i do know it's supposed to print each line of my array simoltaneously which leaves my cin statement free from cls functons but i don't know how to apply what he gave me to my code. i understand what he gave me, i just don't how to apply it or if there might be an easier way.

youLostTheGame
Newbie Poster
17 posts since Jan 2011
Reputation Points: 10
Solved Threads: 0
 
i do know it's supposed to print each line of my array...


No it doesn't.i understand what he gave me...
No you don't.

Look at it again.

WaltP
Posting Sage w/ dash of thyme
Moderator
10,506 posts since May 2006
Reputation Points: 3,348
Solved Threads: 944
 

my teacher just explained it to me again but in more detail this time which helped alot and now i understand what that does. but i still don't know how to get the code too do 2 things at once which is what i need help with..

youLostTheGame
Newbie Poster
17 posts since Jan 2011
Reputation Points: 10
Solved Threads: 0
 

Code cannot do 2 things at once. I can only do one thing then the other. If you would stop being cryptic and give us the necessary details to understand your specific question, we would probably be able to help.

But this "I know what I'm doing but it doesn't work" gives us nothing to go on.

WaltP
Posting Sage w/ dash of thyme
Moderator
10,506 posts since May 2006
Reputation Points: 3,348
Solved Threads: 944
 

the code is supposed is supposed to display an 2-d array (16x16) of completely different ASCII characters and to start refresh and reposition all of the ASCII characters randomly every 1500 miliseconds. the user is supposed to be looking for a specific character and when they see it they are supposed to enter the keystroke 'G'. when they do this the array will start refreshing faster. where i am stuck is getting the input from the user so the refresh on the array speeds up.
me and my teacher talked everything over and we figured out how to get it to run the 2 processes at once but i need to know how to write a code to check the cin buffer. anyone know how to do this??
we were talking about making it so that it keeps checking the cin buffer for input and at the end of it's current sleep period if there in no inout it will refresh. if there is input it will speed up the refresh. does this make sense?

youLostTheGame
Newbie Poster
17 posts since Jan 2011
Reputation Points: 10
Solved Threads: 0
 

Now you're making sense. This is only possible with certain compilers because asynchronous input is not part of the C++ Standard. What'cha usin'?

WaltP
Posting Sage w/ dash of thyme
Moderator
10,506 posts since May 2006
Reputation Points: 3,348
Solved Threads: 944
 

Uh, I think I know what you're doing. Assuming what you want is actually to replace the characters every cycle, then I believe I can help you. Make sure that you have the rand() headers. In your main() function, have the code..

int main()
{
  srand(time(NULL));

  return 0;
}


Make sure this is not in any loop, or the "random" won't change. Also, don't declare any variables in a loop that you are "randoming". This has helped me when I've tried to do similar things.

Hope this helped,

- TZ

TotalZombie
Newbie Poster
3 posts since Mar 2011
Reputation Points: 10
Solved Threads: 0
 

You said that your teacher gave you code that contains the line:

COORD thing = (x, y);

Either you are mistaken or you should get another teacher. Because this line of code has the same effect as writing

COORD thing = y;

but the form in which it is written suggests that whoever wrote it thought it would do something different--otherwise, why write it that way?

I am guessing that your teacher actually wrote either

COORD thing(x, y);

or

COORD thing = {x, y};

but either way, something is definitely not right about the version you posted.

arkoenig
Master Poster
703 posts since Jun 2010
Reputation Points: 359
Solved Threads: 109
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You
View similar articles that have also been tagged: