Skocz do zawartości
tom3k90

[c++] Gra Saper Prosze O Pomoc

Rekomendowane odpowiedzi

witam prosze o pomoc w rozbudowie sapera konkretnie muszę dorobić do niego :

1) możliwość wprowadzania rozmiaru planszy przez użytkownika

2) odsłanianie jak w prawdziwym saperze tzn jak jest 0 bomb w otoczeniu danego pola to zeby sie automatycznie odsłaniały

 

kod jest nastepujacy

 

#include<iostream>#include<stdio.h>#include<sstream>#include<time.h>using namespace std;char konwersja(int ilosc){	int ile=ilosc;						stringstream ss;				//konwersja int-->string	string wokol;	ss << ile;			ss >> wokol;	std::string str(wokol);			//konwersja string-->char	char znak = str[0];			return znak;}void wyswietl2(int x, int y, char zakryj[11][11]){	for (int i=1;i<=10;i++){		cout<<endl;		for(int j=1;j<=10;j++){			zakryj[y][x]='B';			cout<<zakryj[i][j]<<"  ";		}	}}void wyswietl(int x, int y, char zakryj[11][11], int ilosc){	cout<<endl;	for (int i=1;i<=10;i++){		cout<<endl;		for(int j=1;j<=10;j++){			zakryj[y][x]=konwersja(ilosc);			cout<<zakryj[i][j]<<"  ";		}	}}void gra(){	int n,x,y,s,d,puste;	while(1){		cout<<"Podaj ilosc bomb max[99]: ";			//podajemy ilosc bomb		cin>>n;		if (n>=100)continue;		else break;	}	srand(time(0));	int tab[11][11];					//generowanie pustych pól	for (int i=1;i<=10;i++){		for(int j=1;j<=10;j++){			tab[i][j]=0;					}	}		for(int k=0;k<n;k++){				s=1+rand()%10;			//losowanie bomb na planszy				d=1+rand()%10;				tab[s][d]=1;   		}	puste=100-n;	cout<<"Ilosc bomb na planszy: "<<n<<endl;		char zakryj[11][11];	for (int i=1;i<=10;i++){		cout<<endl;		for(int j=1;j<=10;j++){			zakryj[i][j]='-';			//zakrywanie bomb znakiem '-'			cout<<zakryj[i][j]<<"  ";		}	}	while(1){		cout<<endl<<endl;		int ilosc=0;	cout<<"Podaj wspolrzedne punktu: "<<endl;	cout<<"x= ";	cin>>x;	cout<<"y= ";	cin>>y;	if(zakryj[y][x]!='-')continue;		if(tab[y][x]==1){			wyswietl2(x,y,zakryj);			cout<<endl<<endl;			cout<<"Bomba!!! Przegrales!"<<endl<<endl;			break;		}		if (x<=10 && y<=10){			if(tab[y][x]==0){				if(tab[y][x-1]==1)ilosc++;				if(tab[y-1][x]==1)ilosc++;				if(tab[y-1][x-1]==1)ilosc++;			//sprawdzanie				if(tab[y+1][x-1]==1)ilosc++;			//czy wokół punktu				if(tab[y+1][x]==1)ilosc++;			//znajdujš się bomby				if(tab[y-1][x+1]==1)ilosc++;				if(tab[y][x+1]==1)ilosc++;				if(tab[y+1][x+1]==1)ilosc++;								wyswietl(x,y,zakryj,ilosc);				puste--;				if(puste==0){cout<<endl<<"Brawo!!! Wygrales"<<endl<<endl;break;}				cout<<endl<<endl;				cout<<"Pozostalo "<<puste<<" pol do odkrycia";				continue;			}		}	}}int main(){	char kont;cout<<"**** SAPER ****"<<endl<<endl<<endl;	while(1){		gra();		cout<<"Grasz jeszcze raz?"<<endl<<"t - aby grac dalej..."<<endl<<"n - aby zakonczyc..."<<endl;		cin>>kont;		if (kont=='t' || kont=='T'){system("cls");continue;}		else break;	}	cout<<endl;	system("pause");	return 0;}
Edytowane przez tom3k90

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...