• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ "Inteligentna" gra w statki

VPS Starter Arubacloud
0 głosów
1,221 wizyt
pytanie zadane 16 stycznia 2019 w Nasze projekty przez Mavannkas Bywalec (2,290 p.)
Hej, parę dni temu uznałem, że napiszę sobie grę w statki w konsoli za pomocą c++. Z biegiem czasu uznałem, że warto byłoby oprzeć ją na mechanizmie uczenia się od człowieka. Chciałem to zaimplementować w wybieraniu planszy do rozgrywki i strzelania w przeciwnika :). Tu zgłaszam się z prośbą do was. Moglibyście podesłać mi jakieś swoje kombinacje ułożenia statków? Mam jeden pięciomasztowiec jeden cztero dwa trzy dwa dwu i dwa jedno. Mogą być ułożone dowolnie byleby stykaly się bokiem pola i jeden nie znajdował się bezpośrednio obok. Pragnę zaznaczyć, że dopiero uczę się programować i ten projekt jest w gruncie rzeczy jednym ze sposobów na pogłębienie zrozumienia :) jeśli ktoś to ciekawi to tu możecie zobaczyć aktualny stan kodu github.com/Mavannkas . Wszelkie sugestie, uwagi, podpowiedzi z chęcią będą przezemnie wysłuchanie :). Dzięki za pomoc!

2 odpowiedzi

+2 głosów
odpowiedź 16 stycznia 2019 przez Michał Gibas Pasjonat (19,610 p.)
Ogólnie mam trochę uwag do samej struktury projektu:

- Czemu repozytorium nazywa się master? Powinno nazywać się "ShipWars", "Statki" albo coś w tym stylu. - Pilk źródłowy nazywa się "Statki .cpp" (ze spacją między nazwą a rozszerzeniem) - tu nie powinno być tej spacji.

- Nie powinieneś umieszczać pilków obiektowych (".o") w repozytorium, a jeśli chodzi o ".exe" to też raczej nie powinno tam tego być. Polecam poczytać o dobrych praktykach (np. SOLID) w programowaniu. Widzę, że jesteś początkujący, ale im wcześniej zacznie się wdrażać te dobre praktyki tym lepiej. Mimo iż jest to polskojęzyczny projekt, to pliki nie powinny mieć polskich nazw, a szczególnie pliki źródłowe.

Co do kodu to:

- Dobrze by było podzielić wszystko ta kilka plików - Nazwa obiektu klasy std::ifstream, nie powinna być jedną wielką literą "F" (pradopodobnie jakiś nawyk z C, albo podglądnięte na jakieś stronce), nazwy powinny być raczej w pełni opisowe i objaśniające przeznaczenie. Nazwy pisane wielkimi literami np. "FILE" używamy do stałych.

- Przydałoby się trochę to zautomatyzować, bo ten wielki switch case i te zagnieżdżone if'y rażą trochę w oczy. Dobrze by było jakbyś nad tym pomyślał i spróbował to jakoś skrócić. Na początku większość osób tak pisze, więc nie ma się czym przejmować (nie mniej jednak trzeba to poprawić) ;)

Pozdrawiam!
komentarz 16 stycznia 2019 przez Mavannkas Bywalec (2,290 p.)
Bardzo dziękuje za tak rozbudowaną opinię i zwracanie uwagi na takie szczegóły :). Już wszystko co mogłem zrobić od ręki poprawiłem. (If'y zrobię jutro przez zwykłe lenistwo zrobiłem tak) a co do dobrych praktyk to staram się stosować do tych które znam lecz jestem na tyle nowy w temacie programowania (taka normalna nauka od miesiąca) to uznałem, że nie będę się wczytywać w szczegóły dobrych praktyk. Znając mnie bardziej bym się zastanawiał nad tym czy dobrze coś nazywam niż pisał kolejne segmenty programu :D. Na pewno w wolnej chwili dokształcę się w tą stronę. I w przyszłości planuje zająć się sztuczną inteligencją ponieważ strasznie ciekawią mnie rzeczy których do końca nie rozumiem. Polecisz może jakieś strony czy książki traktujące o tym (sieci neuronowe algorytmy genetyczne itd)? Byłbym bardzo wdzięczny.
komentarz 17 stycznia 2019 przez Michał Gibas Pasjonat (19,610 p.)
Osobiście nie znam się na AI, więc niewiele ci podpowiem. Zanim zabierzesz się za AI, podszlifuj trochę programowanie i zrób trochę prostszych projektów.
+1 głos
odpowiedź 16 stycznia 2019 przez mokrowski Mędrzec (155,460 p.)
Popraw mnie ale nie widzę przeszkód byś wygenerował je losowo (ustawienia) wg. swoich wymagań. Bo pytasz o stan planszy a nie o strategię rozgrywki.
komentarz 16 stycznia 2019 przez Mavannkas Bywalec (2,290 p.)
Wiem, że mogę je generować losowo. Lecz chce aby to brało wzorce od człowieka. Trochę dziwnie ale mam taki zamysł

Podobne pytania

+7 głosów
5 odpowiedzi 7,413 wizyt
pytanie zadane 14 października 2015 w Nasze projekty przez emSon Stary wyjadacz (10,480 p.)
0 głosów
3 odpowiedzi 1,778 wizyt
pytanie zadane 20 maja 2016 w C i C++ przez mat07 Nowicjusz (160 p.)
0 głosów
2 odpowiedzi 462 wizyt
pytanie zadane 13 listopada 2018 w C i C++ przez Mariusz Maik Nowicjusz (220 p.)

92,452 zapytań

141,262 odpowiedzi

319,074 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...