Forum huvudsida -> Programmering -> Problem med loop
Sidor: 1
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:
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 ------------------------- 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
Du får inte posta i den här tråden | Till toppen
Datum
2025-01-02 16:25
Vecka: 01
Besökare
Inloggade: 0
Gäster: 605
Medlemmar
Medlemmar: 53576
Forum
Senaste inlägget: HAHA MÄNNISKAN LEVER ÄN (13:45 - 18:e Januari 2019, av Hetzz)
Wiki
Senaste ändringen:
3D (rev: 1, tid: 09:40 - 13:e November 2015)
Chatt
#blinkenlights @ Libera.Chat
Gratis shellkonton för IRC, webbsidor mm.