Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Interpretacja kodu gry wisielca


Rekomendowane odpowiedzi

Opublikowano

Witam. Czy moglby ktos napisac komentarze co robi poszczegolna czesc kodu w grze wisielec napisanej w c++? Od tego zalezy czy zdam :( . Bardzo prosze o pomoc panie i panowie.

Kod:
 

#include <iostream>
#include <string>
#include <cstdio>
#include <cstring>
#include <cctype>
#include <algorithm> 

using namespace std;

class Wisielec
{
	private:
				string haslo;
				string zaszyfrowane_haslo;
				string sprawdzone;
				int licznik_pozycji;
				int stan;
				int stan_gry; // 0 - w trakcie, 1 - wygrana, 2 - przegrana
	public:
				Wisielec(string _h = "", string _z = "", string _spr = "", int _s = 0, int _s_g = 0, int _l_p = 0) : haslo(_h), zaszyfrowane_haslo(_z), stan(_s), stan_gry(_s_g), licznik_pozycji(_l_p), sprawdzone(_spr) {}
				~Wisielec();
				void ustaw_haslo(string _h);
				void rysuj_stan_gry();
				void rysuj_stan_hasla();
				bool sprawdz(char _s);
				int zwroc_stan_gry() { return stan_gry; }
				void czysc() { printf("\033[2J"); printf("\033[0;0f"); }
};

Wisielec::~Wisielec()
{
};

void Wisielec::ustaw_haslo(string _h)
{
	haslo = _h;
	transform(haslo.begin(), haslo.end(), haslo.begin(), ::tolower);
	
	for (int i = 0; i < haslo.size(); ++i)
		zaszyfrowane_haslo += "_";
};

void Wisielec::rysuj_stan_hasla()
{
	cout << "Haslo: " << endl;
	cout << zaszyfrowane_haslo << endl;
};

void Wisielec::rysuj_stan_gry()
{
	cout << "   Stan gry  " << endl;
	
	switch (stan)
	{
		case 0: 
				cout << "            " << endl;
				cout << "            " << endl;
				cout << "            " << endl;
				cout << "            " << endl;
				cout << "            " << endl;
				cout << "            " << endl;
				cout <<"             " << endl;
				break;
		case 1:
				cout << "            " << endl;
				cout << "            " << endl;
				cout << "            " << endl;
				cout << "            " << endl;
				cout << "            " << endl;
				cout << "            " << endl;
				cout <<"/            " << endl;
				break;
		case 2:
				cout << "            " << endl;
				cout << "            " << endl;
				cout << "            " << endl;
				cout << "            " << endl;
				cout << "            " << endl;
				cout << "            " << endl;
				cout <<"/\\          " << endl;
				break;
		case 3:
				cout << "|           " << endl;
				cout << "|           " << endl;
				cout << "|           " << endl;
				cout << "|           " << endl;
				cout << "|           " << endl;
				cout << "|           " << endl;
				cout <<"/\\          " << endl;
				break;
		case 4:
				cout << "|---------  " << endl;
				cout << "|           " << endl;
				cout << "|           " << endl;
				cout << "|           " << endl;
				cout << "|           " << endl;
				cout << "|           " << endl;
				cout <<"/\\          " << endl;
				break;
		case 5:
				cout << "|---------  " << endl;
				cout << "|        |  " << endl;
				cout << "|           " << endl;
				cout << "|           " << endl;
				cout << "|           " << endl;
				cout << "|           " << endl;
				cout <<"/\\          " << endl;
				break;
		case 6:
				cout << "|---------  " << endl;
				cout << "|        |  " << endl;
				cout << "|        O  " << endl;
				cout << "|           " << endl;
				cout << "|           " << endl;
				cout << "|           " << endl;
				cout <<"/\\          " << endl;
				break;
		case 7:
				cout << "|---------  " << endl;
				cout << "|        |  " << endl;
				cout << "|        O  " << endl;
				cout << "|        |  " << endl;
				cout << "|           " << endl;
				cout << "|           " << endl;
				cout <<"/\\          " << endl;
				break;
		case 8:
				cout << "|---------  " << endl;
				cout << "|        |  " << endl;
				cout << "|        O  " << endl;
				cout << "|        |\\" << endl;
				cout << "|           " << endl;
				cout << "|           " << endl;
				cout <<"/\\          " << endl;
				break;
		case 9:
				cout << "|---------  " << endl;
				cout << "|        |  " << endl;
				cout << "|        O  " << endl;
				cout << "|       /|\\" << endl;
				cout << "|           " << endl;
				cout << "|           " << endl;
				cout <<"/\\          " << endl;
				break;
		case 10:
			    cout << "|---------  " << endl;
				cout << "|        |  " << endl;
				cout << "|        O  " << endl;
				cout << "|       /|\\" << endl;
				cout << "|         \\" << endl;
				cout << "|           " << endl;
				cout <<"/\\          " << endl;
				break;
		case 11:
				cout << "|---------  " << endl;
				cout << "|        |  " << endl;
				cout << "|        O  " << endl;
				cout << "|       /|\\" << endl;
				cout << "|       / \\" << endl;
				cout << "|           " << endl;
				cout <<"/\\          " << endl;
				break;
	};
};

bool Wisielec::sprawdz(char _s)
{
    bool flaga = false;
    
    for (int i = 0; i < sprawdzone.size(); ++i)
		if (sprawdzone[i] == _s) 
			return false;
	
    for (int i = 0; i < haslo.size(); ++i)
    {
		if (haslo[i] == tolower(_s))
		{
			++licznik_pozycji;
			flaga = true;
			zaszyfrowane_haslo[i] = tolower(_s);
		};
	};
		
	if (flaga == false) 
	{
		++stan;
		if (stan == 11) 
			stan_gry = 2;
	}
	else
		sprawdzone += _s;
	
	if (licznik_pozycji == haslo.size())
		stan_gry = 1;

	return flaga;
};

int main()
{
	int wybor;
	
	do
	{	
		Wisielec game;
	
	    string haslo;
	    
		cout << "            " << endl;
		cout << "  Wisielec  " << endl;
		cout << "Wprowadz haslo: ";
		cin >> haslo;
		cin.get();
		game.ustaw_haslo(haslo);
	
		game.czysc();
	
		char znak;
	
		do
		{
			cout << "            " << endl;
			cout << "  Wisielec  " << endl;
			game.rysuj_stan_hasla();
			game.rysuj_stan_gry();
			cout << "Wprowadz znak: ";
			cin >> znak;
			cin.get();
			game.sprawdz(znak);
			game.czysc();
		} while (game.zwroc_stan_gry() == 0);
	 
		switch (game.zwroc_stan_gry()) 
		{
			case 1:
					cout << " Wygrałeś!  " << endl;
					break;
			case 2:
					cout << "Przegrałeś! " << endl;
					break;
		};
		
		do
		{
			cout << " Chcesz zagrać ponownie?" << endl;
			cout << " 1. Tak " << endl;
			cout << " 2. Nie " << endl;
			cin >> wybor;
			game.czysc();
		} while (wybor != 1 && wybor != 2);
		
	} while (wybor != 2 ); 
	return 0;
}
c34856f7f6ff408cbb8f6ba54fbcfa2c.0.gif
Opublikowano

jaki jest problem dodanie "//" i napisanie obok polskich znaków swój własny komentarz? o.O

Czerwone jest piękne! Kocham <3

Opublikowano

jaki jest problem dodanie "//" i napisanie obok polskich znaków swój własny komentarz? o.O

Taki, że on prawdopodobnie nie rozumie kodu.

 

@AntyWarn

Napisz do kogoś, kto Ci to napisał, chyba że masz to z internetu, to masz problem :/

Opublikowano

Jeden z najgorszych kodów jaki w życiu widziałem...

 

tutaj masz kilka tłumaczeń:

 

 

#include <iostream>
#include <string>
#include <cstdio>



// kilka dyrektyw
#include <cstring>
#include <cctype>
#include <algorithm> 

using namespace std;


// klasa o nazwie wisielec
class Wisielec;




// Funkcja klasy "wisielec" która ustawia haslo"
void Wisielec::ustaw_haslo(string _h);




// Funkcja klasy "wisielec" która rysuje hasło na ekranie
void Wisielec::rysuj_stan_hasla();




/*
:: drogi kochany najświętszy boże co to k***a jest...
funkcja rysująca... stan gry... jprd. gorzej się nie dało ?...

fajna opcja:
void setpos(int x,int y){COORD pos;pos.X=x;pos.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);}

którą mógłbyś autorze w przyszłości użyć...
*/
void Wisielec::rysuj_stan_gry();




/*
:: Funkcja sprawdzajaca czy podany znak jest jednym z poprawnych...
funkcja zwraca w "Flaga" wartość True jeśli poprawny i False jeśli nie
*/
bool Wisielec::sprawdz(char _s);





int main()
{
	int wybor;

// dużo lepszym wyborem jest while(true) oraz if(shouldend)exit(0); ale nie wazne
// pętla do while "podtrzymująca stan gry" do czasu aż użytkownik nie zdecyduje się
// ją wyłączyć poprzez wybranie odpowiedzi "nie" w pytaniu czy kontynuować bosz...
	do
	{
// Tworzenie obiektu klasy wisielec o nazwie "Game"
		Wisielec game;
	
	    string haslo;

		cout << "            " << endl;
		cout << "  Wisielec  " << endl;
		cout << "Wprowadz haslo: ";
		cin >> haslo;
		cin.get();
		game.ustaw_haslo(haslo);
	
		game.czysc();
	
		char znak;
// pętla gry trwająca tak długo jak gracz może jeszcze grać w zależności
// od wartości stanu gry wygrywa się lub przegrywa...
// ofc. wszystko operowane na obiekcie "game" który został stworzony wczesniej
// a co robią poszczególne funkcje opisałem wcześniej
		do
		{
			cout << "            " << endl;
			cout << "  Wisielec  " << endl;
			game.rysuj_stan_hasla();
			game.rysuj_stan_gry();
			cout << "Wprowadz znak: ";
			cin >> znak;
			cin.get();
			game.sprawdz(znak);
			game.czysc();
		} while (game.zwroc_stan_gry() == 0);
// Switch wyświetlający czy się wygrało czy przegrało jprd...
		switch (game.zwroc_stan_gry()) 
		{
			case 1:
					cout << " Wygrałeś!  " << endl;
					break;
			case 2:
					cout << "Przegrałeś! " << endl;
					break;
		};

		do
		{
			cout << " Chcesz zagrać ponownie?" << endl;
			cout << " 1. Tak " << endl;
			cout << " 2. Nie " << endl;
			cin >> wybor;
			game.czysc();
		} while (wybor != 1 && wybor != 2);
		
	} while (wybor != 2 ); 
	return 0;
}

 
 
//Edit2:
Moja wypowiedź pod spoilerem bo uwazam ze jest obecnie zbędna pod ilością obecnego tekstu ^_^

Zaskakujące umiejętności autora ^_^ że chce mu się w taki sposób pisać...
tylko tyle ci mogę pomóc gdyż nie mogę osobiście patrzeć na ten kod :P...
 
gdybym to ja cie uczył to by to raczej było... cóż... czytelniejsze i zdecydowanie mniejsze...
 
prawdę mówiąc nie bardzo wiem co miałbym ci tutaj wytłumaczyć...
są to absolutne podstawy... zwykła konsolowa aplikacja... nawet nie jest napisana zmyślnie ale cóż.. .nie ważne ;x...
 
przynajmniej masz jako taką odpowiedź :P
bo czopki wyżej widocznie umiejo tylko posty nabijać ^_^
 
 
 
 
 
 
jprd. Hej kto mi zrobi prace domowa ?
Wielki Posejdon: idź do nauczyciela on za ciebie ją zrobi...
 
nie wiem czy jest to wielka głupota nieumiejętność czytania czy po prostu... czy po prostu Wielkość...

"od tego zależy czy zdam" <-- czytaj ze zrozumieniem panie wielki

 

 

 

//Edit: 

Zmieniłem nieco wygląd kodu ( tzn. dodałem do <code> ) aby łatwiej się czytało ^_^

//Edit2: ( lel )

 

chciałem ci to napisać ładniej i lepiej... ale jednak mi się nie chce bo dzwonie po Pizzę ;x...

więc jak ktoś chce może mi powiedzieć Smacznego ale to będzie raczej po fakcie...

 

ale jakbyś chciał się czegoś nauczyć albo jakby ktoś chciał dokończyć po mnie... oto kod:

 

 

#include <iostream>
#include <windows.h>
#include <process.h>
#include <conio.h>

/////////////////////////////////////////////////////////////////

	#define CLS system("CLS");
	#define PAU system("pause>nul");
#define RED FOREGROUND_RED
 #define GREEN FOREGROUND_GREEN
  #define BLUE FOREGROUND_BLUE
   #define INS FOREGROUND_INTENSITY
	#define COLOR SetConsoleTextAttribute

/////////////////////////////////////////////////////////////////
	using namespace std;
/////////////////////////////////////////////////////////////////
/////====---- Change Text Color in console ----====/////
/////////////////////////////////////////////////////////////////
void colors(int color)
{
HANDLE clr;clr = GetStdHandle( STD_OUTPUT_HANDLE );
switch(color)
	{///////////////////////////////////////////////////////////////////////
	case 0: COLOR( clr, INS );			break;	// white	//
	case 1: COLOR( clr, GREEN );			break;	// dark green   //
	case 2: COLOR( clr, RED | INS );		break;	// red		//
	case 3: COLOR( clr, GREEN | INS );		break;	// green	//
	case 4: COLOR( clr, RED | BLUE | INS ); 	break;	// pink		//
	case 5: COLOR( clr, RED | GREEN | INS );	break;	// yellow	//
	case 6: COLOR( clr, BLUE | GREEN | INS );	break;	// cyjan	//
	case 7: COLOR( clr, BACKGROUND_GREEN );		break;	// border	//
	}///////////////////////////////////////////////////////////////////////
}
/////////////////////////////////////////////////////////////////
/////===--- Change Text output position in console ---===/////
/////////////////////////////////////////////////////////////////
void setpos(int x,int y){COORD pos;pos.X=x;pos.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);}
/////////////////////////////////////////////////////////////////
/////===--- Text output in console FULL ---===/////
/////////////////////////////////////////////////////////////////
void outtext(int posx,int posy,int color,char* text)
{setpos(posx,posy);colors(color);cout<<text<<endl;}
/////////////////////////////////////////////////////////////////

char zdanie[255];
char litera;

int qlleng=0;

int main()
{system("color 0F");system("title Wisielec");
while(true)
	{
	outtext(5,0,7,	"                                      ");
	outtext(7,2,3,	"// Witaj ^_^ !..."			);
	outtext(5,4,7,	"                                      ");
	outtext(11,6,3,	":: Wpisz zdanie ::"			);
	outtext(9,7,3,	":: i nacisnij enter ::"		);
	outtext(5,9,7,	"                                      ");
	outtext(5,13,7,	"                                      ");
for(int i=1;i<13;i++){outtext(43,i,7," ");outtext(4,i,7," ");}
	outtext(7,10,3,"Wpisany tekst: ");setpos(5,11);

/////////////////////////////////////////////////////////////////

while(true)
		{
if(qlleng>38)outtext(3,15,2,"ugh... wyszedles poza ramke =.=");else outtext(3,15,2,"                               ");
	
	setpos(5,11);colors(3);
	
for(int i=0;i<qlleng;i++)cout<<zdanie[i];


	litera=getch();
if(litera==13)break;
if(litera==27)exit(0);

if((((litera>64)&&(litera<91))||((litera>96)&&(litera<123))||(litera==32))&&(qlleng<255))
	{
	if(qlleng<255){zdanie[qlleng]=litera;qlleng++;}
	else{MessageBox(NULL,"Max size is 255 !... sorry ;/...","Error",MB_OK|MB_ICONERROR);}
	}
else if((litera==8)&&(qlleng>0)){outtext(qlleng+4,11,0," ");qlleng--;}
		}
CLS outtext(1,1,2,"Udalo sie pobrac haslo !..."); PAU
	}

} 

 

 

Opublikowano

@PanTobi

Ten kod który tutaj podałeś jest kilkanaście razy mniej czytelny i moim zdaniem gorszy.

 

1. Mieszasz polskie i angielskie nazwy zmiennych

2. "Magiczne" numery nie wiadomo skąd, nie wiadomo czemu akurat takie (przynajmniej na pierwszy rzut oka)

3. Używasz winapi, nie wiesz czy ten program ma działać tylko na windowsie, nawet jeśli to nie wiem czy dobrym pomysłem jest używanie winapi do tak prostego w założeniu programu

4. Formatowanie kodu, niepotrzebne nawiasy

Bot do gry NosTale:


[bOT] NosBota 1.3v

Opublikowano

Gdzie masz magiczne numery ? :P...

 

to jest szkolny projekt ^_^ więc służy do nauki... bosz...

... Od tego zalezy czy zdam  ...

Od tego zależy czy zdam...

zdać można najprawdopodobniej w jakiejś szkole... człowiek nie robi sobie takich rzeczy jak system oceniania albo "powtarzanie" klasy

z powodu niezaliczenia materiału z poprzedniej klasy...

 

stwierdzenie że rozwiązanie tego zadania jest wymagane w celu zaliczenia... ZDANIA...

jednocześnie ma zawarte w sobie fakt że jest to projekt SZKOLNY...

 

 

 

 

 

co do pisania po ang. i pl to zgadzam się czasami może być to z mojej strony problem...

kiedy mieszam określenia i słowa... ale dla 2 człowieka nie powinno być to raczej strasznym problemem...

 

jeśli magiczne cyferki to zdanie odnoszace się do funkcji OutText to tutaj masz wyjaśnienie 

outtext( pozycja X , Pozycja Y , kolor tekstu , tekst );

 

wystarczy nauczyć się czytać czyjeś funkcje...

prawdę mówiąc w większości starczy przeczytać jej argumenty oraz opis stworzony przez kolegę / innego programistę

 

 

 

 

tak teraz widzę i patrze żeś się przysrał do niczego...

jedyne polskie nazwy jakich użyłem to zdanie oraz litera... dla 2 zmiennych typu char...

 

no i wiadomo że komentarze też są po polsku ale to dlatego że ten kod wędrował na... "Polskie" forum...

komentarze... raczej bardziej output-y ale jak zwał tak zawał - to a to specjalnie aby upięknić tekst

 

 

 

 

 

pozatym... jestem wrogiem wszystkiego innego co nie jest Windowsem ^_^

pracuję tylko na nim i nie lubię jakiś durnych linuxów czy innego szitu...

 

fakt faktem może i windows nie jest najlepszy we wszystkim... i czasami jest irytujący... a Win10 to jprd.

ale kiedy ja piszę program to z góry zakładam że będzie to pracować tylko na Win. z racji iż wspieram tylko Win ^_^

 

Nigdy nie znajdziesz zdarzenia w którym poniżałbym Win na rzecz innego :P...

 

 

 

 

ale to tak poza tematem ^_^

 

ja rozumiem że może i kod podany przez autora jest bardziej czytelny... ale jest za długi... zwłaszcza wypisywanie obrazka wisielca na ekranie...

niepotrzebnie zawarte aż 3 zmienne dla jednego hasła... gdzie wystarczy jedna max. 2.

 

pozatym zamiast jak dziecko wykłócać sie o to czy zrobiłem dobrze a zrobiłem czy ŹLE

to może byś kurw* udostępnił swoje rozwiązanie zadania a nie pierdolił bez sensu ?...

 

 

 

 

 

ZRÓB najpierw TY... pokaż jak TY to zrobisz... a NIE wpier** sie NIC nie robisz tylko oceniasz tego który POMÓGŁ

bez udzielenia własnego wsparcia w temacie...

 

Nie lubię tego forum... kiedyś w miarę tolerowałem ale obecnie większość użytkowników chyba cofa się w rozwoju...

fajnie by było dodać taką zasadę w regulaminie jak np.

 

- Osoba nie wnosząca odpowiedzi do istniejącego Tematu nie ma prawa głosu w takowym temacie...

a odpowiedzią nie jest "użyj Google" - "Ja bym to zrobił lepiej ale nie zrobię bo nie" <-- w twoim stylu MistrzuMistrzu

czy innego typu uniosłe odpowiedzi... egh ebac...

Opublikowano

@PanTobi

1. Czytanie twoich postów to męka, naprawdę. Gdybyś zaczął używać znaków interpunkcyjnych byłoby miło. "Akapity" dzielone pięcioma znakami nowej linii nie pomagają.

2. W moim poście odniosłem się do fragmentu kodu z twojego ostatniego spoilera, nie do twoich komentarzy.

3. Jeżeli dzięki temu mam zdobyć twoją zgodę na pisanie postów w tym temacie, to proszę, mój kod: https://pastebin.com/p2T6iw5z może jest gorszy, może lepszy, nie wiem.

4. Mimo wszystko autor nie prosił o ulepszanie kodu ani o rady, tylko o napisanie co robią poszczególne części kodu.

Bot do gry NosTale:


[bOT] NosBota 1.3v

Opublikowano

Gdzie masz magiczne numery ? :P...

 

to jest szkolny projekt ^_^ więc służy do nauki... bosz...

 

... Od tego zalezy czy zdam  ...
Od tego zależy czy zdam...

zdać można najprawdopodobniej w jakiejś szkole... człowiek nie robi sobie takich rzeczy jak system oceniania albo "powtarzanie" klasy

z powodu niezaliczenia materiału z poprzedniej klasy...

 

stwierdzenie że rozwiązanie tego zadania jest wymagane w celu zaliczenia... ZDANIA...

jednocześnie ma zawarte w sobie fakt że jest to projekt SZKOLNY...

 

 

 

 

 

co do pisania po ang. i pl to zgadzam się czasami może być to z mojej strony problem...

kiedy mieszam określenia i słowa... ale dla 2 człowieka nie powinno być to raczej strasznym problemem...

 

jeśli magiczne cyferki to zdanie odnoszace się do funkcji OutText to tutaj masz wyjaśnienie

outtext( pozycja X , Pozycja Y , kolor tekstu , tekst );

 

wystarczy nauczyć się czytać czyjeś funkcje...

prawdę mówiąc w większości starczy przeczytać jej argumenty oraz opis stworzony przez kolegę / innego programistę

 

 

 

 

tak teraz widzę i patrze żeś się przysrał do niczego...

jedyne polskie nazwy jakich użyłem to zdanie oraz litera... dla 2 zmiennych typu char...

 

no i wiadomo że komentarze też są po polsku ale to dlatego że ten kod wędrował na... "Polskie" forum...

komentarze... raczej bardziej output-y ale jak zwał tak zawał - to a to specjalnie aby upięknić tekst

 

 

 

 

 

pozatym... jestem wrogiem wszystkiego innego co nie jest Windowsem ^_^

pracuję tylko na nim i nie lubię jakiś durnych linuxów czy innego szitu...

 

fakt faktem może i windows nie jest najlepszy we wszystkim... i czasami jest irytujący... a Win10 to jprd.

ale kiedy ja piszę program to z góry zakładam że będzie to pracować tylko na Win. z racji iż wspieram tylko Win ^_^

 

Nigdy nie znajdziesz zdarzenia w którym poniżałbym Win na rzecz innego :P...

 

 

 

 

ale to tak poza tematem ^_^

 

ja rozumiem że może i kod podany przez autora jest bardziej czytelny... ale jest za długi... zwłaszcza wypisywanie obrazka wisielca na ekranie...

niepotrzebnie zawarte aż 3 zmienne dla jednego hasła... gdzie wystarczy jedna max. 2.

 

pozatym zamiast jak dziecko wykłócać sie o to czy zrobiłem dobrze a zrobiłem czy ŹLE

to może byś kurw* udostępnił swoje rozwiązanie zadania a nie pierdolił bez sensu ?...

 

 

 

 

 

ZRÓB najpierw TY... pokaż jak TY to zrobisz... a NIE wpier** sie NIC nie robisz tylko oceniasz tego który POMÓGŁ

bez udzielenia własnego wsparcia w temacie...

 

Nie lubię tego forum... kiedyś w miarę tolerowałem ale obecnie większość użytkowników chyba cofa się w rozwoju...

fajnie by było dodać taką zasadę w regulaminie jak np.

 

- Osoba nie wnosząca odpowiedzi do istniejącego Tematu nie ma prawa głosu w takowym temacie...

a odpowiedzią nie jest "użyj Google" - "Ja bym to zrobił lepiej ale nie zrobię bo nie" <-- w twoim stylu MistrzuMistrzu

czy innego typu uniosłe odpowiedzi... egh ebac...

Wiem że poza tematem , ale naucz się normalnie układać zdania. Twój sposób pisania , aż razi w oczy.
nostaleh.png
Opublikowano

Wiem że poza tematem , ale naucz się normalnie układać zdania. Twój sposób pisania , aż razi w oczy.

 

Spacja przed przecinkiem ;(

TuByłaSygnatura.png

  • 4 tygodnie później...
Opublikowano

nie czytałem postów wyżej, ale masz code review ode mnie
- using namespace std nie jest najlepszą praktyką, ze względu na możliwość wystąpienia potencjalnych kolizji nazw funkcji na przykład.

- cstdio, cstring, cctype - piszesz w C czy C++? Bo z jednej strony kod masz napisany w C++ a korzystasz z funkcji ze standardu C.

- długie linijki rozdzielaj na kilka mniejszych

- generalnie formatowanie tego kodu jest mocno do dupy

- masz iostream w headerach, używasz prinft, patrz wyżej - C czy C++?

- Samo w sobie czyszczenie konsoli w C++ nie jest możliwe, bo jest mocno uzależnione od systemu ("konsola" to po prostu strumień wejścia i wyjścia). Tutaj, jeśli zależy ci na wieloplatformowości możesz użyć winapi i unistd razem z paroma makrami.

- Klasę wywal do osobnych plików. Deklaracja w nagłówku .hpp, definicje metod w pliku .cpp

- nazwy argumentów absolutnie niezrozumiałe

- metoda Wisielec::ustaw_haslo - ładniej byłoby użyć range-based fora, i jeśli dodajesz jeden znak, używaj pojedynczych apostrofów (char zamiast stringa, efektywniejsze rozwiązanie)

- przemyśl rysowanie stanu gry, bo jest wybitnie sztywno napisane

- cin >> haslo, a zaraz potem cin.get() - po co? dlaczego? Poza tym, nie obsługujesz tym wielowyrazowych haseł.

- dobrą praktyką jest pisanie kodu po angielsku

 

tragedii nie ma, ale moim zdaniem większość kodu do przeróbki. Obiektówka jest bardzo słabo napisana, gra jest sztywna. Trójka za starania.

846331404756772371599.jpeg
Opublikowano

nie czytałem postów wyżej, ale masz code review ode mnie

- using namespace std nie jest najlepszą praktyką, ze względu na możliwość wystąpienia potencjalnych kolizji nazw funkcji na przykład.

 

Póki jest to prymitywny projekcik bazowany na standardowym wyjściu/wejściu, i using namespace nie jest użyte w pliku nagłówkowym, nie każ mu się męczyć z wpisywaniem std:: w każdej jednej linijce kodu. Dobry programista powinien wiedzieć gdzie używać using namespace, a gdzie nie.

 

Ogólnie rzecz biorąc, jemu nie chodziło chyba o code review tylko o komentarze, prawdopodobnie ściągnął kod od znajomego i ma się z niego wytłumaczyć.


Pomagam w projektach dotyczących programowania (C++/C/Java/C#/inne). Jak masz jakiś problem, napisz do mnie, wspólnie poszukamy rozwiązania ;).

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...