mmorpg.pl


Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
**
Avatar użytkownika

Posty: 9587
Dołączył(a): 9.02.2004
Offline
PostNapisane: 26 mar 2012, 07:56 
Cytuj  
Mam do napisania program, który będzię grą planszową. Ogólnie nie jest to masakrycznie trudne ale mam jeden problem. Domyślnie program ma zawierać 3 klasy : gra, gracz, plansza

Ja mam problem z klasą plansza. Ta część programu na po pierwsze rysować planszę wyglądającą tak:

|
|||
|||||
|||||||

Taką funkcję napisałem rzecz jasna. Problem jednak w tym, że muszę też napisać funkcję, której zadaniem będzie skreślenie odpowiednich kresek z odpowiedniego wiersza(można skreślać tylko z jednego). Domyślam się, że skreślanie mogłoby się odbywać poprzez modyfikowanie wartości tablicy "stangry" ale nie mam pomysłu jak to zrobić. Dodatkowo założenie jest takie, że żadna z dunkcji nie przyjmuje wartości z klawiatury. Ona ma tylko skreślać (mowa o klasie "plansza"). Jest ktoś w stanie pomóc z forumowych speców od programowania? Oczywiście trzeba się pobawić z zwracaniem parametrów przez tą funkcję żeby to w ogóle działało. Pewnie pierdoła jakaś



Cytuj:
#include <iostream>

using namespace std;

class plansza
{

int stangry [4];

public:
plansza();
void wyswietl();
int skresl(int k, int r);
};

plansza::plansza()
{


stangry[0]=1;
stangry[1]=3;
stangry[2]=5;
stangry[3]=9;
}
int plansza::skresl(?????)
{

?????

}

void plansza::wyswietl()
{
for (int i=0; i< 4; i ++)
{
for (int j=0; j< stangry[i]; j++)
{
cout <<" | ";
}
cout<<endl;
}
int main()
{

plansza a;
a.wyswietl();
a.skresl();



return 0;
}


_________________
Gramsajt.pl - głupawy blog o grach

*****
Avatar użytkownika

Posty: 2252
Dołączył(a): 10.12.2001
Offline
PostNapisane: 26 mar 2012, 10:52 
Cytuj  
Hint: przechowuj gdzies wartosc czy dana kreska jest skreslona czy nie. ;)

Jesli plansze wyswietlasz w konsoli to po prostu przerysuj calosc jesli cos sie zmieni.


_________________
Obrazek

**
Avatar użytkownika

Posty: 9587
Dołączył(a): 9.02.2004
Offline
PostNapisane: 26 mar 2012, 12:05 
Cytuj  
No tam myślałem, żeby to zrobić za pomocą modyfikacji zawartości tablicy "stangry" ale nie wiem jak to zrobić. Może jakoś w ten sposób plansza[r] -= k; ale nie wiem czy to coś da. I czy mam jakoś zmieniać konstruktor.


_________________
Gramsajt.pl - głupawy blog o grach

**
Avatar użytkownika

Posty: 8166
Dołączył(a): 10.05.2011
Offline
PostNapisane: 26 mar 2012, 13:04 
Cytuj  
zrob sobie tablice 4x9 i teraz:
0 - brak kreski
1- kreska normalna
-1 - kreska przekreslona

*****
Avatar użytkownika

Posty: 2609
Dołączył(a): 12.11.2001
Offline
PostNapisane: 27 mar 2012, 22:06 
Cytuj  
W ramach oszczednosci pamieci to mozesz to zaimplementowac nawet na jednowymiarowej tablicy. Jezeli plansza ma (1+3+5+9) 18 pol, to wystarczy
int plansza[18]
Ty juz bedziesz wiedzial ze indeks 0 to pole 1 na gorze, indeksy 1-3 to 3 pola w drugim rzedzie itp.
Teoretycznie nie ma to znaczenia, ale jakbys chcial pozniej zrobic do tego jakiegos solvera, to wtedy sie przyda.

**
Avatar użytkownika

Posty: 8166
Dołączył(a): 10.05.2011
Offline
PostNapisane: 28 mar 2012, 06:18 
Cytuj  
teoretycznie nie ma znaczenia, w praktyce spada czytelnosc;)
Ja mysle, ze zaboleq juz to dawno zrobil. A jesli nie...
http://demotywatory.pl/1012259/Koszula-flanelowa

Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów

Szukaj:
Skocz do:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group | Theme based on Zarron Media theme | Copyright © 2001-2012 MMORPG.pl Team
Redakcja MMORPG.pl nie ponosi odpowiedzialnosci za tresc komentarzy i odpowiedzi umieszczanych przez uzytkownikow.