[C++] Gra w statki, c++ nieobiektowy

transatlantyk a
Użytkownik
Użytkownik
Posty: 15
Rejestracja: 2 gru 2015, o 18:53
Płeć: Kobieta
Lokalizacja: Polska

[C++] Gra w statki, c++ nieobiektowy

Post autor: transatlantyk a »

Witam,
Potrzebuję pomocy pasjonata, który napisze ze mną kod gry w statki. kod ma być napisany nieobiektowo w języku c++, gra ma uwzględniać rozgrywkę między dwoma osobami oraz między osobą a komputerem, dodatkowo ma być możliwe stosowanie ułatwień a w rundzie z komputerem powinny być możliwe do wybrania strategie, między innymi losowa.
Szukałam wskazówek w internecie, ale jedyne kody które znalazłam były w c++ obiektowym.
Jestem nieobeznana w języku c++, te zadanie jest moim projektem na zajęcia i kompletnie nie wiem od czego zacząć. Do tej pory poznałam c++ do poziomu tworzenia struktur.
Pisze w visual studio od microsoft.
Nie mam dużo czasu na napisanie tej gry, a chciałabym dogłębnie zrozumieć temat.
Czy znajdzie się ktoś pomocny?(:
Ostatnio zmieniony 3 gru 2015, o 07:07 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Awatar użytkownika
jarzabek89
Użytkownik
Użytkownik
Posty: 1337
Rejestracja: 11 lis 2007, o 21:36
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 4 razy
Pomógł: 181 razy

[C++] Gra w statki, c++ nieobiektowy

Post autor: jarzabek89 »

Tutaj kompletnie nie trzeba szukać żadnych wskazówek w internecie. Aplikacja taka ogranicza się do umiejętności posługiwania się pętlami, instrukcjami warunkowymi, tablicami(dla ułatwienia strukturami, czy klasami). Już nie będę mówić o jakiś cout'ach czy cin'ach.

Ideą pomagania nie jest zrobienie za kogoś zadania, zwłaszcza akademickiego zaliczenia.
transatlantyk a
Użytkownik
Użytkownik
Posty: 15
Rejestracja: 2 gru 2015, o 18:53
Płeć: Kobieta
Lokalizacja: Polska

[C++] Gra w statki, c++ nieobiektowy

Post autor: transatlantyk a »

Nie proszę o napisanie za mnie kodu, tylko o pomoc w jego pisaniu, mi samej zalezy, żeby to przede wszystkim zrozumieć. Nie pisałam nigdy aplikacji i nie mam do kogo zwrócić się o pomoc. Każdy od czegoś zaczynał, prawda? Każdy otrzymał na początku jakąś pomoc

Nie rozumiem skąd tak nieprzyjemna odpowiedź, nie chcę kupić pracy licencjackiej tylko dostać wskazówki jak napisać grę w ramach cząstkowej oceny semestralnej.
Awatar użytkownika
morsisko
Użytkownik
Użytkownik
Posty: 9
Rejestracja: 10 lut 2015, o 17:46
Płeć: Mężczyzna
Lokalizacja: Antarktyda

[C++] Gra w statki, c++ nieobiektowy

Post autor: morsisko »

Struktury to przecież lekko zmodyfikowane klasy, więc w czym problem? Jednak jeśli usilnie nie chcesz korzystać z obiektów, to na sam początek napisz wersję gracz kontra gracz, algorytm jest bardzo prosty(choć na pewno można zrobić to bardziej optymalnie)

1. Prosisz użytkowników o podanie koordynatów statków, za każdym razem sprawdzasz czy żaden element statku nie wychodzi poza obszar tablicy lub czy nie stoi na nim żaden element innego statku
2. Deklarujesz dwie(dla dwóch graczy, jeśli chcesz to możesz tą liczbę zwiększyć, żeby móc drukować gdzie dany gracz strzelał) tablice intów lub coś z listy wyliczeniowej (przyjemnej pracowałoby się na dwuwymiarowej)
3. W pętli:
-Prosisz gracza o podanie koordynatów strzału
-Sprawdzasz czy są poprawne(nie wychodzą poza indeks tablicy lub czy już tam nie strzelał, jeśli jakiś warunek został spełniony to ponownie prosisz o podanie koordynatów i tak do skutku)
-Po podaniu współrzędnych patrzysz na element tablicy przeciwnika o takich koordynatach i odczytujesz wartość, jeśli nie ma tam statku to wypisujesz "Pudło", zmieniasz wartość elementu na taki, żeby było wiadomo że dany gracz już tam strzelał i prosisz następnego gracza o podanie koordynatów, jeśli gracz trafił to prosisz tego samego gracza o ponowne podanie współrzędnych i tak do skutku.
Opcjonalnie możesz drukować tablice z polami w które dany gracz już strzelał
4. Pętla wykonuje się, do momentu kiedy jeden z graczy zestrzeli wszystkie statki.
Awatar użytkownika
jarzabek89
Użytkownik
Użytkownik
Posty: 1337
Rejestracja: 11 lis 2007, o 21:36
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 4 razy
Pomógł: 181 razy

[C++] Gra w statki, c++ nieobiektowy

Post autor: jarzabek89 »

Struktury to bardziej pozostałość po C niż zmodyfikowana klasa, bo nie wiem czym to się różni
Awatar użytkownika
morsisko
Użytkownik
Użytkownik
Posty: 9
Rejestracja: 10 lut 2015, o 17:46
Płeć: Mężczyzna
Lokalizacja: Antarktyda

[C++] Gra w statki, c++ nieobiektowy

Post autor: morsisko »

Struktury mają domyślnie publiczny dostęp do wszystkiego, a klasy prywatny, i odrobinę inaczej zachowują się przy dziedziczeniu.
Awatar użytkownika
jarzabek89
Użytkownik
Użytkownik
Posty: 1337
Rejestracja: 11 lis 2007, o 21:36
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 4 razy
Pomógł: 181 razy

[C++] Gra w statki, c++ nieobiektowy

Post autor: jarzabek89 »

A masz rację. Faktycznie.
To tak bardziej w ramach ciekawostek, bo zwykła tablica nam i tak załatwi tutaj sprawę.
transatlantyk a
Użytkownik
Użytkownik
Posty: 15
Rejestracja: 2 gru 2015, o 18:53
Płeć: Kobieta
Lokalizacja: Polska

[C++] Gra w statki, c++ nieobiektowy

Post autor: transatlantyk a »

Okej, a jak zastrzec, żeby statków była określona ilość, miały określony wymiar i nie stykały się?
Awatar użytkownika
jarzabek89
Użytkownik
Użytkownik
Posty: 1337
Rejestracja: 11 lis 2007, o 21:36
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 4 razy
Pomógł: 181 razy

[C++] Gra w statki, c++ nieobiektowy

Post autor: jarzabek89 »

Chyba każdy z nas grał w statki.
Liczba statków jest stała. Dajesz statków tyle ile musisz.
Wymiary są też ściśle określone
Żeby się nie stykała, to przed wstawieniem trzeba sprawdzić, czy po wstawieniu będzie się stykać.
Problemem tutaj będzie bardziej logiczne myślenie i algorytm niż znajomość języka programowania.
Zakładając że:
0-nie ma statka
1-jest statek
Majać tablice 8x8 powiedzmy

Kod: Zaznacz cały

00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
Wygenerowanie tablicy to wstawienie odpowiednie miejsca jedynek.
Zakładamy, że wstawiamy sobie pojedynczy statek

Kod: Zaznacz cały

00000000
00000000
000XXX00
000X1X00
000XXX00
00000000
00000000
00000000
to oznacza, że w miejscach gdzie wstawiłem X nie może byś statku. Zwykłe instrukcje warunkowe i pętle.
ODPOWIEDZ