Leogict Opublikowano 27 Listopada 2009 Zgłoś Opublikowano 27 Listopada 2009 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 :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Drainer Opublikowano 28 Listopada 2009 Zgłoś Opublikowano 28 Listopada 2009 (edytowane) (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 28 Listopada 2009 przez Drainer Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...