[C++] Gra w statki - obiektowo

Forum dotyczące ogólnie pojętego programowania - algorytmów, struktur danych, narzędzi programistycznych, itp - głównie w kontekście komputerów PC.
ODPOWIEDZ
Awatar użytkownika
Luminofor
Użytkownik
Posty: 1375
Rejestracja: 27 lis 2007, 17:17
Lokalizacja: Polska

[C++] Gra w statki - obiektowo

Post autor: Luminofor » 27 lis 2009, 20:03

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 :)

Awatar użytkownika
olo16
Użytkownik
Posty: 396
Rejestracja: 12 paź 2007, 16:37
Lokalizacja: w-wa

Post autor: olo16 » 28 lis 2009, 10:09

Jak chcesz grę w statki, to ściągnij pierwszą lepszą z 4programmers, i nie chwal się na forum ELEKTRONICZNYM, że wyważyłeś otwarte drzwi, i dodatkowo popełiłeś masę błędów.
Luminofor pisze:chociaż warunki na krzyżowanie i stykanie nie sa jeszcze idealne, sporadycznie programowi zdarza się stykać statki...
To znaczy, że twój algorytm jest nic nie warty, bo prawdopodbnie podeszłeś do problemu tak, jakby to było skomplikowane niewiadomo co.

I mam głęboko gdzieś, że najprawdoodobniej dostanę bana za tą wypowiedź. Kolega prosił o ocenę, to oceniłem jego beznadziejny pomysł.

kaliska5
Użytkownik
Posty: 348
Rejestracja: 01 maja 2008, 8:24
Lokalizacja: z nienacka
Kontakt:

Post autor: kaliska5 » 28 lis 2009, 10:25

Czepiasz sie Luminofora ze napisał badziewie a ty coś sam w życiu zrobiłeś ? Nie ma to jak zmieszać z błotem kogoś a samemu nic nie robić.

Awatar użytkownika
przemotronik
Użytkownik
Posty: 252
Rejestracja: 18 paź 2006, 19:30
Lokalizacja: Wrocław

Post autor: przemotronik » 28 lis 2009, 10:26

olo16 pisze:To znaczy, że twój algorytm jest nic nie warty, bo prawdopodbnie podeszłeś do problemu tak (...)
Polecam słownik ortograficzny albo chociaż sprawdzanie pisowni - czasem nawet się przydaje.
olo16 pisze:Jak chcesz grę w statki, to ściągnij pierwszą lepszą z 4programmers, i nie chwal się na forum ELEKTRONICZNYM, że wyważyłeś otwarte drzwi, i dodatkowo popełiłeś masę błędów.
Jest taka zasada, że krytykując innych w podobny sposób wypada przynajmniej pokazać, co zrobiło się samemu. Krytyka jest najłatwiejsza - nie wymaga nakładu wiedzy ani pracy...
:arrow: Do Kolegi Luminofora - nie przejmuj się niekulturalnymi "krytykami" i dalej rób to, co robisz - pisząc programy, spędzając czas nad swoimi zainteresowaniami osiągniesz dużo więcej, niż "czepiając się" innych "dla zasady".
Pozdrawiam i życzę powodzenia w zmaganiach z C++ ;)

alaris
Użytkownik
Posty: 531
Rejestracja: 21 lut 2006, 14:56
Lokalizacja: Gorzow/Poznan

Post autor: alaris » 28 lis 2009, 13:25

olo16 pisze:I mam głęboko gdzieś, że najprawdoodobniej dostanę bana za tą wypowiedź.
Heh, szczerze mnie to rozbawilo :D Ja to odczytalem jako: "wiem, ze jestem zly, ale prosze nie bijcie mnie" :lol:
olo16 pisze:nie chwal się na forum ELEKTRONICZNYM, że wyważyłeś otwarte drzwi
Rozumiem, ze piszesz lepsze rzeczy? Czy po prostu jest Ci zal, ze ktos potrafi cos zrobic i musisz to zniszczyc? Zeby nie czuc sie gorszym? Poza tym formulowanie tak krytycznych sadow bez znajomosci dodatkowych realiow jest po prostu nieodpowiedzialne. Widzisz, ja np. wiem, ze kolega Luminofor ma taki przedmiot jak C++ i np. wiem, ze ma go z czlowiekiem, ktory BARDZO duzo wymaga i uwala przynajmniej polowe roku, czasami nawet wiecej. Wtedy calosc mozna odczytac jako prosbe o wychwycenie bledow i pooc w nauczeniu sie czegos nowego. A ze pojawia sie "wskaźnik na wskaźnik do wskaźnika" - skoro jest to na egzaminie, to jakos trzeba to przecwiczyc.
Zycze wiecej dystansu, mniej frustracji i zalecam pozytywne myslenie - zlosc niszczy serce :twisted:

[ Dodano: 2009-11-28, 13:28 ]
I relacje z ludzmi :mrgreen:

Awatar użytkownika
Kulpina
Użytkownik
Posty: 2040
Rejestracja: 28 lip 2005, 16:57
Lokalizacja: Sanok
Kontakt:

Post autor: Kulpina » 28 lis 2009, 14:44

kaliska5 pisze:Nie ma to jak zmieszać z błotem kogoś a samemu nic nie robić.
alaris pisze:zlosc niszczy serce

[ Dodano: 2009-11-28, 13:28 ]
I relacje z ludzmi
Olo, a twój post raportowałem, bo robisz oborę już od dość dawna :mrgreen:
Myślę, że jemu zależało na innej opinii niż 'jaki badziew' albo 'jakie cudo'.
Niestety i ja nie pomogę, bo w C++ jestem teraz na instrukcjach sterujących (po roku nic nie pisania muszę sobie wszystko przypomnieć).
Pozostaje mi tylko zapytać.
:arrow: Luminofor,
Jakiego kompilatora używasz? Bo ja pierwsze programy piszę na DevC++, ale mi go odradzono ;)

Awatar użytkownika
Luminofor
Użytkownik
Posty: 1375
Rejestracja: 27 lis 2007, 17:17
Lokalizacja: Polska

Post autor: Luminofor » 28 lis 2009, 15:09

Kulpina pisze:Jakiego kompilatora używasz? Bo ja pierwsze programy piszę na DevC++, ale mi go odradzono ;)
Chodzi Ci o IDE?
Pracuję na Microsoft Visual C++ Express Edition 2008 SP1 (darmowa wersja do ściągnięcia ze strony MS, zacne IDE - ma cudny debugger).

A Dev-C++ odradzam - nie rozwijane od wielu lat, zabugowane IDE, spolszczone (wada w programowaniu)...

ODPOWIEDZ