Dwa warunki w pętli while

0

Siemka.

Jak zrobić tak aby pętla się kończyła gdy któryś z graczy osiągnie pole o numerze 20? Działa mi z jednym graczem, ale przy dwóch gra ciągnie się w nieskończoność.

 #include <iostream>
#include <cstdlib>
#include <cstdio>
#include <ctime>

using namespace std;

int main() 
{
	int kostka,pole1,pole2,meta;
	string nazwa1,nazwa2;
	srand(time(NULL));
	pole1=1;
	pole2=1;
	cout<<"Podaj nazwe 1 gracza: "<<endl;
	cin>>nazwa1;
	cout<<"Podaj nazwe 2 gracza: "<<endl;
	cin>>nazwa2;
	do
	{
		cout<<"Gracz "<<nazwa1<<" rzuca kostka. Nacisnij ENTER"<<endl;
		cin.get();
		kostka=(rand()%5)+1;
		cout<<"Wylosowales "<<kostka<<endl;
		pole1=pole1+kostka;
		cout<<"Przesuwasz sie na pole "<<pole1<<endl;
		cout<<endl;
		cout<<endl;
		cout<<"Gracz "<<nazwa2<<" rzuca kostka. Nacisnij ENTER"<<endl;
		cin.get();
		kostka=(rand()%5)+1;
		cout<<"Wylosowales "<<kostka<<endl;
		pole2=pole2+kostka;
		cout<<"Przesuwasz sie na pole "<<pole2<<endl;
		pole2=20;
	}while (pole1!=20 || pole2!=20);
	
	cout<<"Wygral gracz 2"<<endl;
	
	
	system("PAUSE");
	return 0;
} 
1

A czy napisałbyś ten kod tak samo gdybyś chciał mieć 1000 graczy? Nie? To przepisz to po ludzku.

0

Nie rozumiem pytania. Gra z zalozenia ma byc na 2 graczy.

0
  1. po co dales pole2=20(chyba ze dla przykladu)
  2. moze dlatego Ci sie ciagnie w nieskonczonosc bo masz randoma, wiec moze np przeskoczyc pole 21(!=20) i tak bedzie z graczem 1 i 2, no i bedziesz gral i gral
0

No pole2=20 jest właśnie po to aby gra sie zakonczyla.

0

nie za bardzo wiem o co Ci chodzi ;)
pokaż kod w ktorym nie dziala Ci gra na dwie osoby ;) bo tu dziala, tylko trzeba wywalic to pole=20

0

&& zamiast || w warunku :)
W Twoim wypadku z || warunek brzmi "... dopóki OBAJ gracze nie staną na polu 20".

1 użytkowników online, w tym zalogowanych: 0, gości: 1