Problem with game and cout

Hello.
I am trying to write a game where a dot represents players position and X represent a pickup. For now, the object is static and can be changed only in code. The player moves with arrow keys.
The problem is that when the player and the dot get on the same line, you cant really move the player in X cordinates as he is locked in one position. I cant understand why is that. Here is the code I have done.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#include <cstdlib>
#include <iostream>
#include <conio.h>
#include <windows.h>

using namespace std;

int main(int argc, char *argv[])
{
    int x=40,y=13;
    int objectx=2,objecty=10;
    bool pickup=true;
    bool running=true;
    while(running)
    {
                  if(pickup)
                  {
                            if(objecty<y) // if pickup is above the user
                            {
                                         for(int i=0;i<objecty;i++)
                                         {
                                                 cout << endl;
                                         }
                                         for(int i=1;i<objectx;i++)
                                         {
                                                 cout << " ";
                                         }
                                         cout << "X";
                                         for(int i=0;i<y-objecty;i++)
                                         {
                                                 cout << endl;
                                         }
                                         for(int i=1;i<x;i++)
                                         {
                                                 cout << " ";
                                         }
                                         cout << ".";
                            }
                            if(objecty>y) // if pickup is under the user
                            {
                                          for(int i=0;i<y;i++)
                                          {
                                                  cout << endl;
                                          }
                                          for(int i=1;i<x;i++)
                                          {
                                                  cout << " ";
                                          }
                                          cout << ".";
                                          for(int i=0;i<objecty-y;i++)
                                          {
                                                  cout << endl;
                                          }
                                          for(int i=1;i<objectx;i++)
                                          {
                                                  cout << " ";
                                          }
                                          cout << "X";
                            }
                            if(objecty==y) // pickup and user are on the same line
                            {
                                          for(int i=0;i<y;i++)
                                          {
                                                  cout << endl;
                                          }
                                          if(objectx<x) // if object is before player
                                          {
                                                        for(int i=1;i<objectx;i++)
                                                        {
                                                                cout << " ";
                                                        }
                                                        cout << "X";
                                                        for(int i=2;i<x-objectx;i++);
                                                        {
                                                                cout << " ";
                                                        }
                                                        cout << ".";
                                          }
                                          if(objectx>x) // if object is after player
                                          {
                                                        for(int i=1;i<x;i++)
                                                        {
                                                                cout << " ";
                                                        }
                                                        cout << ".";
                                                        for(int i=2;i<objectx-x;i++)
                                                        {
                                                                cout << " ";
                                                        }
                                                        cout << "X";
                                          }
                                          if(objectx==x)
                                          {
                                                        cout << "You won!!!\n";
                                                        system("pause");
                                                        exit(0);
                                          }
                            }
                  }
                  if(GetAsyncKeyState(VK_LEFT))
                  {
                                               Sleep(100);
                                               x--;
                  }
                  if(GetAsyncKeyState(VK_RIGHT))
                  {
                                                Sleep(100);
                                                x++;
                  }
                  if(GetAsyncKeyState(VK_UP))
                  {
                                               Sleep(100);
                                               y--;
                  }
                  if(GetAsyncKeyState(VK_DOWN))
                  {
                                                Sleep(100);
                                                y++;
                  }
                  if(x>80)
                  {
                          x=0;
                  }
                  if(x<0)
                  {
                         x=80;
                  }
                  if(y>26)
                  {
                          y=0;
                  }
                  if(y<0)
                  {
                         y=26;
                  }
                  system("cls");
    }
}


Thank you in advance :)

EDIT: I had ; on if statement.
Last edited on
Topic archived. No new replies allowed.