Skocz do zawartości
Leogict

[c++] Gra W Statki Obiektowo

Rekomendowane odpowiedzi

Witam, napisałem w C++ grę w statki obiektowo.

1 gracz, komputer ustawia losowo statki a my strzelamy.

 

Plansza: 16x16, rozmieszczanie statków: losowe (w dużej części udało mi się uniknąć krzyżowania i stykania statków), chociaż warunki na krzyżowanie i stykanie nie sa jeszcze idealne, sporadycznie programowi zdarza się stykać statki...

 

Statki: 2 czteromasztowce i 2 trójmasztowce, więcej nie dałem ze względu na rozbudowane warunki dot. nie krzyżowania się statków każdego z każdym...

 

Osobna klasa na maszty (każdy maszt wie, jakiego jest typu), plansze, 4-masztowce i 3-masztowce

 

Gra działa pod Windowsem i Linuxem (wystarczy zmienić jedna zmienna boolowską - ta pod "using namespace...")

 

Opcja testowania (widac statki) i gry (nie widać statków) - również zmiana jednej zmiennej na początku kodu.

 

Graficzna sygnalizacja trafienia (zmiana znaku masztu na "o") oraz zatopienia statku (zmiana znaków w obrębie statku na "\" )

 

Zabezpieczenie przed wprowadzeniem złych współrzędnych.

 

Program po każdym ruchu odświeża plansze i wypisuje ilość pływających statków.

 

Warunek końca programu: wszystkie statki zestrzelone lub użytkownik wciśnie "0".

 

Po zatopieniu wszystkich statków program wyświetla liczbę wykonanych ruchów (strzał 2 razy w to samo pole traktowany jest jako 2 ruchy itd).

 

Numerowanie linii w pionie i poziomie.

Szansa na trafny strzał: ok. 5,5% (obsadzenie planszy: 14/256 pol)

Szczątkowy polimorfizm.

 

 

Kod: http://wklej.org/id/217640/

Binarka: http://www.sendspace.pl/file/1860026a91867a9452c7f1b (skompilowane pod kątem Windowsa, na Linuxie wyświetlanie może się rozjeżdżać - trzeba by przekompilować ze zmianą zmiennej w 27 linii kodu).

 

Czekam na opinie :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

(skompilowane pod kątem Windowsa, na Linuxie wyświetlanie może się rozjeżdżać - trzeba by przekompilować ze zmianą zmiennej w 27 linii kodu).

#ifdef linux//kod dla linuxa#else//kod dla nielinuxa#endif

tablice wskaznikow usuwa sie przez delete []:

plansza::~plansz():

// ...	  delete [] wsk[i];  // ... tablice masztow  }  delete [] wsk;   // ... i tablice tablic  if(!Linux) system("pause");

ja bym calosc pocial jeszcze na kilka plikow, ale to ja

 

edit:

mozna by jeszcze zrobic klase 'gra' i wsadzic tam

pancernik Orzel, Jastrzab;   // dwa cztermosztowcetorpedowiec Hawk,Eagle;	  // dwa trojmasztowce
funkcje, i ten kod z maina, zastapic np statki.graj(); Edytowane przez Drainer

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ę...