Ukryta treść:
Kod: Zaznacz cały
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include <string>
#include <fstream>
using namespace std;
/* Tworzenie klasy statek od ktorej bedziemy pozniej dziedziczyc */
class statek
{
public:
int wspolrzednex,wspolrzedney,wspolrzednekompx,wspolrzednekompy,x,y;
int strzelx,strzely,okret;
int iloscteraz,nrokretu,wynik;
int punktygracza,punktykomputera;
int wylosujx,wylosujy;
int iloscstatkowgracza,iloscstatkowkomputera;
int mapgracza[10][10],mapkomputera[10][10];
int spacja;
statek();
[/hide]
/* Wyswietlanie punktacji ilosci statkow. */
void status()
{
cout<<"Punkty gracza:"<<punktygracza<<endl;
cout<<"Liczba statkow gracza:"<<iloscstatkowgracza<<endl;
cout<<"Punkty komputera:"<<punktykomputera<<endl;
cout<<"Liczba statkow komputera:"<<iloscstatkowkomputera<<endl;
cout<<"==============="<<endl;
}
/* Ustawienie swoich okretow oraz okretow komputeraz */
void wprowadzdane_i_ustaw()
{
do
{
system("cls");
status();
printf("0 1 2 3 4 5 6 7 8 9
");
for(int i=1; i<10; i++)
{
printf("%d", i);
for (int j=1;j<10;j++)
{
printf(" %d", mapgracza[i][j]);
}
printf("
");
}
printf("=========
Podaj wspolrzedne statkow, najpierw parametr x potem y
");
cin>>wspolrzednex;
cin>>wspolrzedney;
printf("=========
");
okret = 1;
switch(okret)
{
case 1:
mapgracza[wspolrzednex][wspolrzedney]=1;
break;
};
iloscstatkowgracza++;
iloscstatkowkomputera++;
x=rand()%(8)+1;
y=rand()%(8)+1;
mapkomputera[x][y]=4;
}
while(iloscstatkowgracza!=4);
}
/* Strzaly na przemian komputera i gracza */
bool sprawdz_i_wylosuj()
{
system("cls");
while (true) {
status();
printf("0 1 2 3 4 5 6 7 8 9
");
for(int i=1; i<10; i++)
{
printf("%d", i);
for (int j=1;j<10;j++)
{
printf(" %d", mapgracza[i][j]);
}
printf("
");
}
srand(time(NULL));
wspolrzednekompx=rand()%1+(8);
wspolrzednekompy=rand()%(8)+1;
if (mapgracza [wspolrzednekompx][wspolrzednekompy]==1)
{
cout<<"komputer trafil"<<endl;
mapgracza [wspolrzednekompx][wspolrzednekompy]=6;
punktykomputera = punktykomputera+100;
iloscstatkowgracza=iloscstatkowgracza-1;
if (iloscstatkowgracza==0) {
system ("cls");
status();
cout<<"KOMPUTER WYGRAL"<<endl;
return false;
}
}
else
{
cout<<"pudlo komputera"<<endl;
cout<<"Wybierz gdzie chcesz strzelic najpierw parametr x potem y:
";
cin>>strzelx;
cin>>strzely;
if(mapkomputera[strzelx][strzely]==4)
{
cout <<"trafiles"<<endl;
iloscstatkowkomputera=iloscstatkowkomputera-1;
punktygracza = punktygracza +100;
if (iloscstatkowkomputera==0){
return false;
}
}
else
{
cout<<"pudlo"<<endl;
punktygracza = punktygracza - 4;
}
}
}
return false;
};
void menu_i_gra()
{
cout<<"--------------------"<<endl;
cout<<"Witaj w grze w statki!"<<endl;
wprowadzdane_i_ustaw();
sprawdz_i_wylosuj();
iloscteraz++;
}
};
/* Dziedziczenie */
class kolega : public statek
{
public:
int wspolrzednex,wspolrzedney,wspolrzednekolx,wspolrzednekoly;
int mapkolega[10][10];
kolega();
/* Informacje ogolne */
void status()
{
cout<<"Punkty gracza1:"<<punktygracza<<endl;
cout<<"Ruchy gracza:"<<iloscstatkowgracza<<endl;
cout<<"Punkty gracza2:"<<punktykomputera<<endl;
cout<<"Statki gracza2:"<<iloscstatkowkomputera<<endl;
cout<<"==============="<<endl;
}
/* Ustawienie statkow uzytkownika 1 i uzytkownika 2*/
void wprowadzdane_i_ustaw()
{
do
{
status();
printf("0 1 2 3 4 5 6 7 8 9
");
for(int i=1; i<10; i++)
{
printf("%d", i);
for (int j=1;j<10;j++)
{
printf(" %d", mapgracza[i][j]);
}
printf("
");
system("cls");
}
printf("=========
Gracz1: Podaj wspolrzedne statkow najpierw parametr x potem y:
");
cin>>wspolrzednex;
cin>>wspolrzedney;
printf("=========
");
okret = 1;
switch(okret)
{
case 1:
mapgracza[wspolrzednex][wspolrzedney]=1;
break;
};
iloscstatkowgracza++;
cout<<"Gracz2: Podaj wspolrzedne statkow najpierw parametr x potem y:"<<endl;
cin>>x;
cin>>y;
mapkolega[x][y]=4;
iloscstatkowkomputera++;
}
while(iloscstatkowgracza!=6);
}
/*strzaly graczy na przemian */
bool sprawdz_i_wylosuj()
{
system("cls");
while (true) {
status();
cout<<"Gracz 2 gdzie chcesz strzelic, najpierw parametr x potem y:
";
cin>>wspolrzednekolx;
cin>>wspolrzednekoly;
if (mapgracza [wspolrzednekolx][wspolrzednekoly]==1)
{
cout<<"Gracz 2 trafiles"<<endl;
mapgracza [wspolrzednekolx][wspolrzednekoly]=6;
punktykomputera = punktykomputera+100;
iloscstatkowgracza=iloscstatkowgracza-1;
if (iloscstatkowgracza==0) {
system ("cls");
status();
cout<<"Gracz 2 WYGRAL"<<endl;
return false;
}
}
else
{
cout<<"Gracz1 Wybierz gdzie chcesz strzelic najpierw parametr x potem y:
";
cin>>strzelx;
cin>>strzely;
if(mapkomputera[strzelx][strzely]==4)
{
cout <<"trafiles Gracz 1"<<endl;
iloscstatkowkomputera=iloscstatkowkomputera-1;
punktygracza = punktygracza +100;
if (iloscstatkowkomputera==0){
cout<<"GRACZ 1 wygrales"<<endl;
return false;
}
}
else
{
cout<<"pudlo"<<endl;
punktygracza = punktygracza - 4;
}
}
}
return false;
};
void menu_i_gra()
{
cout<<"--------------------"<<endl;
cout<<"Witaj w grze w statki!"<<endl;
wprowadzdane_i_ustaw();
sprawdz_i_wylosuj();
iloscteraz++;
}
};
/* konstruktor */
statek::statek():
wspolrzednex(0),
wspolrzedney(0),
wspolrzednekompx(0),
wspolrzednekompy(0)
{
for(int i=0; i<10; i++)
{
for(int j=0; j<10; j++)
{
mapgracza[i][j]=0;
mapkomputera[i][j]=0;
}
}
}
/*konstruktor*/
kolega::kolega():
wspolrzednex(0),
wspolrzedney(0),
wspolrzednekolx(0),
wspolrzednekoly(0)
{
for(int i=0; i<10; i++)
{
for(int j=0; j<10; j++)
{
mapgracza[i][j]=0;
mapkolega[i][j]=0;
}
}
};
statek uruchom;
kolega wlacz;
/*wybor trybu gry */
int main()
{
int a;
cout<<"Wybierz tryb gry w statki: 1- z komputerem, 2 - ze znajomym, Aby zakonczyc gre nacisnij dowolnie inny przycisk. "<<endl;
cin>>a;
switch(a){
case 1:
cout<<"Tryb gry z komputerem"<<endl;
cout<<"Wybrales tryb z komputerem. Zasady: Ustaw swoje statki na planszy 9x9, nastepnie strzelaj.!"
uruchom.menu_i_gra();
break;
case 2:
cout<<"Wybrales tryb ze znajomym. Zasady: Ustawcie swoje statki na planszy 9x9, nastepnie strzelajcie. Kazdy trafiony statek daje bonus w postaci dodatkowego strzalu.!"<<endl;
cout<<"Wygrywa ten kto zestrzeli wszystkie statki przeciwnika"<<endl;
wlacz.menu_i_gra();
break;
default:
cout<<"Wylaczyles gre. Nacisnij jakis przycisk."<<endl;
break;
}
return 0;
}