# ResolvedTest code with loops not working.

Status
Not open for further replies.

#### Polski Arrow

##### New member
Hi, I wrote that code below and built and compiled it to console program.
That's my test code for strategy game in console. There I have to choose area by typing X and Y coordinates. Areas are int variables which can represent empty area (0) ad area with number of pawn (1-25).

How should it work?
When I choose area[x][y] int by typing coordinates, program checks is that area value. If empty (0), program gives error info and repeats question. If value is 1 to 25, program check empty areas around chosen one to give me a choice of way to move.

How it actually works?
When I choose area[x][y], program gives me info message about error no matter I choose empty area or 1-25.

Thanks to all who help me. Code below:
C#:
``````#include <iostream>
#include <cstdlib>
#include <windows.h>
#include <time.h>
#include <stdio.h>
#include <iomanip>
#include <conio.h>

using namespace std;

int area;
int armour;
int damage;
int soldier;
int vehicle;
int tank;
int cannon;
int rocket;
int counter, i, x, y;
bool up;
bool down;
bool l;
bool r;
bool lup;
bool rup;
bool ldown;
bool rdown;

int main()
{
for (counter = 0; counter <= 4; counter += 1)
{
soldier[counter] = counter + 1;
vehicle[counter] = counter + 6;
tank[counter] = counter + 11;
cannon[counter] = counter + 16;
rocket[counter] = counter + 21;
}

for (x = 0; x <= 14; x += 1)
{
area[x] = 1;
}

for (x = 0; x <= 2; x += 1)
{
area[x] = 6;
}

for (x = 3; x <= 4; x += 1)
{
area[x] = 11;
}

for (x = 5; x <= 6; x += 1)
{
area[x] = 16;
}

area = 21;

for (x = 8; x <= 9; x += 1)
{
area[x] = 16;
}

for (x = 10; x <= 11; x += 1)
{
area[x] = 11;
}

for (x = 12; x <= 14; x += 1)
{
area[x] = 6;
}

for (y = 0; y <= 14; y += 1)
{
if (y < 10)
{
cout << "| Y" << y << "  |";
}
else
{
cout << "| Y" << y << " |";
}
for (x = 0; x <= 14; x += 1)
{
if (area[x][y] < 10)
{
cout << "| " << area[x][y] << "  |";
}
else
{
cout << "| " << area[x][y] << " |";
}
}
cout << endl;
}
cout << endl << "       ";
for (x = 0; x <= 14; x += 1)
{
if (x < 10)
{
cout << "| X" << x << " |";
}
else
{
cout << "| X" << x << "|";
}
}
cout << endl << endl;

for (y = 0; y <= 14; y += 1)
{
for (x = 0; x <= 14; x += 1)
{
if (area[x][y] = 0)
{
armour[x][y] = 0;
damage[x][y] = 0;
}
else if (area[x][y] >= 1 && area[x][y] <= 5)
{
armour[x][y] = area[x][y];
damage[x][y] = area[x][y];
}
else if (area[x][y] >= 6 && area[x][y] <= 10)
{
armour[x][y] = (area[x][y] - 6) * 2;
damage[x][y] = (area[x][y] - 6) * 2;
}
else if (area[x][y] >= 11 && area[x][y] <= 15)
{
armour[x][y] = (area[x][y] - 11) * 3;
damage[x][y] = (area[x][y] - 11) * 3;
}
else if (area[x][y] >= 16 && area[x][y] <= 20)
{
armour[x][y] = (area[x][y] - 16) * 4;
damage[x][y] = (area[x][y] - 16) * 4;
}
else if (area[x][y] >= 21 && area[x][y] <= 25)
{
armour[x][y] = (area[x][y] - 21) * 5;
damage[x][y] = (area[x][y] - 21) * 5;
}
}
}

cout << "Choose area (X): ";
cin >> x;
cout << endl;
cout << "Choose area (Y): ";
cin >> y;
cout << endl << endl;

while (area[x][y] == 0)
{
cout << "ERROR! Chosen area can not be equal to 0!" << endl << endl;
cout << "Choose area (X): ";
cin >> x;
cout << endl;
cout << "Choose area (Y): ";
cin >> y;
cout << endl << endl;
}

if (area[x][y] > 0 && area[x][y] <= 20)
{
up = false;
down = false;
l = false;
r = false;
lup = false;
rup = false;
ldown = false;
rdown = false;
if (area[x][y-1] == 0)
{
up = true;
}
if (area[x+1][y-1] == 0)
{
rup = true;
}
if (area[x+1][y] == 0)
{
r = true;
}
if (area[x+1][y+1] == 0)
{
rdown = true;
}
if (area[x][y+1] == 0)
{
down = true;
}
if (area[x-1][y+1] == 0)
{
ldown = true;
}
if (area[x-1][y] == 0)
{
l = true;
}
if (area[x-1][y-1] == 0)
{
lup = true;
}
}

cout << "You can move: " << endl;

if (up == true)
{
cout << "up" << endl;
}
if (rup == true)
{
cout << "up right" << endl;
}
if (r == true)
{
cout << "right" << endl;
}
if (rdown == true)
{
cout << "down right" << endl;
}
if (down == true)
{
cout << "down" << endl;
}
if (ldown == true)
{
cout << "down left" << endl;
}
if (l == true)
{
cout << "left" << endl;
}
if (lup == true)
{
cout << "up left" << endl;
}
return 0;
}``````

Additional info:
Coding program: Code::Blocks v20.03
Chosen language: C++
Compiler: GNU GCC Compiler

#### jmcilhinney

##### C# Forum Moderator
Staff member
This is a C# forum. Questions about languages other than C# are off-topic for this site.

#### Skydiver

Staff member
C# and C++ is the same language but they both are different VERSIONS of THE SAME language. If this moderator doesn't unlock further replies, I stop using this site and I will also do everything to take reputation of this site down as much as possible. I would not like to do that but I feel it will be necessary. Closing threads for no reason is not fair.

Saying that C# and C++ are the same language is like saying that French and Spanish are version of the same Romance/Latin language. Yes, C# and C++ may both have originated from the C, but both languages have diverged enough that you wouldn't expect a French speaker to automatically understand Spanish and vice versa. In reality, though, a lot of the C# concepts draw more from Java rather than C.

• Sheepings
Status
Not open for further replies.

Replies
3
Views
309
Replies
8
Views
5K
Replies
1
Views
307
Replies
2
Views
1K
Replies
5
Views
702