Forum: Problem med loop

Forum huvudsida -> Programmering -> Problem med loop

Sidor: 1

Till botten

Larsson 23:48 - 13:e Augusti 2005 | Post #1
Medlem
Inlägg: 13


Skicka PM
Hej!
Jag har ett problem med en loop i mitt spel. Men ingenting händer när man kommer fram till loopen, och ingenting efter heller. Här är källkoden:

#include <iostream>
#include <ctime>
using namespace std;

int attack()
{
srand(time(0));
int attack_lyckad,attack_target;
cout << "### - Attack! - ###\n\n\n";
cout << "Choose how many troops you want to use in your attack\n\n\n";
cout << "Attacking infantries:\n";
cin >> attackerande_infanteri;
cout << "Attacking tanks:\n";
cin >> attackerande_tanks;
cout << "Attacking bombers:\n";
cin >> attackerande_bombers;
if (attackerande_infanteri>=enheter[0])
{
attackerande_infanteri=enheter[0];
}
if (attackerande_tanks>=enheter[2])
{
attackerande_tanks=enheter[2];
}
if (attackerande_bombers>=enheter[4])
{
attackerande_bombers=enheter[4];
}
system("cls");
cout << "### - Attack! - ###\n\n\n";
cout << "Your " << attackerande_infanteri << " attacking infantries,\n";
cout << " " << attackerande_tanks << " attacking tanks and\n";
cout << " " << attackerande_bombers << " attacking bombers will face\n";
cout << " " << fi_infanteri << " infantries,\n";
cout << " " << fi_tank << " tanks defending the area.\n\n\n";
cout<< "Press [Enter] to engage -->";
cin.get();
//infanteri attack
attack_nummer=attackerande_infanteri;
while (attack_nummer>=0);
{
attack_lyckad = rand() / (RAND_MAX / 2 + 1) + 0;
if (attack_lyckad==1)
{
attack_target = rand() / (RAND_MAX / 2 + 1) + 0;
if (attack_target==1)
{
fi_infanteri=fi_infanteri-1;
doda_infanteri+=+1;
}
else
{
}
}
attack_nummer+=-1;
}
//pansar attack
attack_nummer=attackerande_tanks;
while (attack_nummer>=0);
{
attack_lyckad = rand() / (RAND_MAX / 2 + 1) + 0;
if (attack_lyckad==1)
{
attack_target = rand() / (RAND_MAX / 3 + 1) + 0;
if (attack_target==1)
{
fi_infanteri=fi_infanteri-3;
doda_infanteri+=+3;
}
else if (attack_target==2)
{
fi_tank=fi_tank-1;
doda_tanks+=+1;
}
attack_nummer+=-1;

}

}
//bomber attack
int attack_nummer=attackerande_bombers;
while (attack_nummer>=0);
{
attack_lyckad = rand() / (RAND_MAX / 2 + 1) + 0;
if (attack_lyckad==1)
{
attack_target = rand() / (RAND_MAX / 2 + 1) + 0;
if (attack_target==1)
{
fi_infanteri=fi_infanteri-12;
doda_infanteri+=+12;
}
}
attack_nummer+=-1;
}
system("cls");
stridBattlereport();
}

Vad är fel?

Tack för alla svar!

-------------------------
Ingen signatur!



Celeron 07:24 - 14:e Augusti 2005 | Post #2
Medlem
Inlägg: 418


Skicka PM
Har kollat på det här lite:
  1.  
  2. //infanteri attack
  3. attack_nummer=attackerande_infanteri;
  4. while (attack_nummer>=0);
  5. {
  6. attack_lyckad = rand() / (RAND_MAX / 2 + 1) + 0;
  7. if (attack_lyckad==1)
  8. {
  9. attack_target = rand() / (RAND_MAX / 2 + 1) + 0;
  10. if (attack_target==1)
  11. {
  12. fi_infanteri=fi_infanteri-1;
  13. doda_infanteri+=+1;
  14. }
  15. else
  16. {
  17. }
  18. }
  19. attack_nummer+=-1;
  20. }

och else satsen tycker jag är lite konstig eftersom den inte gör någonting!

else
{
}

Varför finns den där? I pansar loopen så blir attack_nummer bara mindre om attack_lyckad==1. Men nu upptäckte jag plötsligt det riktiga problemet: Du har satt semikolon (;) efter varje while. Det ska det INTE vara. Ta bort dom så funkar det nog.

//Celeron aka cppErik aka Erik Smiley

-------------------------
Det viktigaste är att ha roligt! Har ny hemsida: http://www.freewebs.com/cpperik/



Larsson 23:21 - 14:e Augusti 2005 | Post #3
Medlem
Inlägg: 13


Skicka PM
Tack för svaret!

-------------------------
Ingen signatur!



Sidor: 1

Forum huvudsida -> Programmering -> Problem med loop
Atom feed

Du får inte posta i den här tråden | Till toppen