Skip to content

Commit b0bf081

Browse files
committed
Update: memory problem fixed
1 parent ca45995 commit b0bf081

File tree

7 files changed

+24
-153
lines changed

7 files changed

+24
-153
lines changed

BlackJack/BlackJack.depend

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
# depslib dependency file v1.0
2-
1447608720 source:c:\users\v�ctor\documents\github\getstartedwithc-\blackjack\main.cpp
2+
1447611050 source:c:\users\v�ctor\documents\github\getstartedwithc-\blackjack\main.cpp
33
<iostream>
44
"MontonCartas.h"
55
"Player.h"
66

7-
1447606435 c:\users\v�ctor\documents\github\getstartedwithc-\blackjack\montoncartas.h
7+
1447610743 c:\users\v�ctor\documents\github\getstartedwithc-\blackjack\montoncartas.h
88
<iostream>
99
<ctime>
1010
<cstdlib>
1111
"Carta.h"
1212

13-
1447608625 source:c:\users\v�ctor\documents\github\getstartedwithc-\blackjack\montoncartas.cpp
13+
1447611033 source:c:\users\v�ctor\documents\github\getstartedwithc-\blackjack\montoncartas.cpp
1414
"MontonCartas.h"
1515

1616
1447585738 c:\users\v�ctor\documents\github\getstartedwithc-\blackjack\player.h

BlackJack/MontonCartas.cpp

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,14 @@ MontonCartas::MontonCartas(int todas)
1515
Carta *aux;
1616
bool primeraCarta = true;
1717

18-
deleted = 0;
19-
2018
for(int i=0; i<4; i++)
2119
{
2220
char a = pal[3-i];
23-
aux = new Carta;
2421

2522
for(int j=0; j<12; j++)
2623
{
24+
aux = new Carta;
25+
2726
(*aux).palo = a;
2827
(*aux).num = 12-j;
2928

@@ -35,8 +34,6 @@ MontonCartas::MontonCartas(int todas)
3534
(*aux).sig = p;
3635

3736
p = aux;
38-
39-
aux = new Carta;
4037
}
4138
}
4239

@@ -45,28 +42,12 @@ MontonCartas::MontonCartas(int todas)
4542

4643
MontonCartas::~MontonCartas()
4744
{
48-
Carta *aux;
45+
recursiveDelete(p);
46+
recursiveDelete(deleted);
47+
}
4948

50-
aux = (*p).sig;
51-
while(aux != 0)
52-
{
53-
delete p;
54-
p = aux;
55-
aux = (*aux).sig;
56-
}
57-
delete p;
5849

5950

60-
aux = (*deleted).sig;
61-
while(aux != 0)
62-
{
63-
delete deleted;
64-
deleted = aux;
65-
aux = (*aux).sig;
66-
}
67-
delete deleted;
68-
}
69-
7051
MontonCartas& MontonCartas::operator= (const MontonCartas& orig)
7152
{
7253
if(&orig != this)
@@ -119,6 +100,20 @@ MontonCartas& MontonCartas::operator= (const MontonCartas& orig)
119100
return *this;
120101
}
121102

103+
104+
void MontonCartas::recursiveDelete(Carta* &pointer)
105+
{
106+
if(pointer != 0)
107+
{
108+
if(pointer->sig == 0)
109+
{
110+
delete pointer;
111+
}else{
112+
recursiveDelete(pointer->sig);
113+
}
114+
}
115+
}
116+
122117
void MontonCartas::intercambiar(int pos1, int pos2)
123118
{
124119
Carta* aux1;

BlackJack/MontonCartas.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,11 @@ using namespace std;
99
class MontonCartas
1010
{
1111
Carta *p; // this is our stack, a simple pointer. Yeah, amazing xD
12-
Carta *deleted ;
12+
Carta *deleted = 0;
1313

1414
void intercambiar(int pos1, int pos2);
1515
void eliminarCarta(int pos);
16+
void recursiveDelete (Carta* &pointer);
1617

1718
public:
1819
MontonCartas(); // constructor that builds an empty Spanish card stack

BlackJack/bin/Debug/BlackJack.exe

-6.05 KB
Binary file not shown.

BlackJack/main.cpp

Lines changed: 0 additions & 125 deletions
Original file line numberDiff line numberDiff line change
@@ -12,130 +12,6 @@ void on ()
1212
cout << "\t3 - Exit" <<endl;
1313
}
1414

15-
void test1()
16-
{
17-
MontonCartas monton (1);
18-
19-
monton.printMonton();
20-
21-
cout << endl << "Sacamos una carta: ";
22-
Carta* carta = monton.sacarCarta(12);
23-
24-
cout << (*carta).num << (*carta).palo << endl << endl;
25-
if((*carta).sig != 0)
26-
cout << "Apunta a otra carta" << endl << endl;
27-
else
28-
cout << "No apunta a ninguna carta" << endl << endl;
29-
30-
31-
monton.printMonton();
32-
}
33-
34-
void test2 ()
35-
{
36-
MontonCartas monton (1);
37-
38-
monton.printMonton();
39-
40-
int pos = 13;
41-
cout << endl << "Posicion: " << pos << endl;
42-
43-
cout << endl << "Sacamos una carta: ";
44-
Carta* carta = monton.sacarCarta( pos );
45-
46-
cout << (*carta).num << (*carta).palo << endl << endl;
47-
48-
Player player (1, "Victor");
49-
cout << "Se la damos a " << player.getNombre() << endl;
50-
double puntuacion = player.addCarta(carta);
51-
52-
cout<< endl << "Mostramos la mano de " << player.getNombre() << endl;
53-
player.showHand();
54-
55-
cout << endl << "Mostramos la puntuacion de " << player.getNombre() << endl;
56-
cout << puntuacion << " punto/s" << endl << endl;
57-
58-
cout << "Volvemos a mirar el monton" << endl;
59-
monton.printMonton();
60-
}
61-
62-
63-
void test3()
64-
{
65-
MontonCartas monton (1);
66-
67-
monton.printMonton();
68-
69-
int pos = 13;
70-
cout << endl << "Posicion: " << pos << endl;
71-
72-
cout << endl << "Sacamos dos cartas: " << endl;
73-
Carta* carta = monton.sacarCarta( pos );
74-
Carta* carta2 = monton.sacarCarta( pos );
75-
76-
cout << "Carta 1 -> " << (*carta).num << (*carta).palo << endl << endl;
77-
cout << "Carta 2 -> " << (*carta2).num << (*carta2).palo << endl << endl;
78-
79-
Player player (1, "Victor");
80-
cout << "Se las damos a " << player.getNombre() << endl;
81-
double puntuacion = player.addCarta(carta);
82-
puntuacion = player.addCarta(carta2);
83-
84-
cout<< endl << "Mostramos la mano de " << player.getNombre() << endl;
85-
player.showHand();
86-
87-
cout << endl << "Mostramos la puntuacion de " << player.getNombre() << endl;
88-
cout << puntuacion << " punto/s" << endl << endl;
89-
90-
cout << "Volvemos a mirar el monton" << endl;
91-
monton.printMonton();
92-
}
93-
94-
95-
void test4()
96-
{
97-
cout << "Test 4" << endl << endl;
98-
99-
MontonCartas monton (1);
100-
101-
cout << "Monton ordenado" << endl;
102-
monton.printMonton();
103-
104-
cout << "Monton mezclado" << endl;
105-
monton.mezclar();
106-
monton.printMonton();
107-
108-
int pos = 13;
109-
cout << endl << "Posicion: " << pos << endl;
110-
111-
cout << endl << "Sacamos dos cartas: " << endl;
112-
Carta* carta = monton.sacarCarta( pos );
113-
Carta* carta2 = monton.sacarCarta( pos );
114-
115-
cout << "Carta 1 -> " << (*carta).num << (*carta).palo << endl ;
116-
cout << "Carta 2 -> " << (*carta2).num << (*carta2).palo << endl << endl;
117-
118-
Player player (1, "Victor");
119-
cout << "Se las damos a " << player.getNombre() << endl;
120-
double puntuacion = player.addCarta(carta);
121-
puntuacion = player.addCarta(carta2);
122-
123-
cout<< endl << "Mostramos la mano de " << player.getNombre() << endl;
124-
player.showHand();
125-
126-
cout << endl << "Mostramos la puntuacion de " << player.getNombre() << endl;
127-
cout << puntuacion << " punto/s" << endl << endl;
128-
129-
cout << "Volvemos a mirar el monton" << endl;
130-
monton.printMonton();
131-
132-
133-
cout << endl << "Limpiamos la mano de " << player.getNombre() << endl;
134-
player.limpiarMano();
135-
player.showHand();
136-
}
137-
138-
13915
void test5()
14016
{
14117
cout << "Test 5" << endl << endl;
@@ -176,7 +52,6 @@ void test6()
17652
cout << "Test 6" << endl << endl;
17753

17854
MontonCartas monton (1);
179-
18055
monton.printMonton();
18156
}
18257

BlackJack/obj/Debug/MontonCartas.o

231 Bytes
Binary file not shown.

BlackJack/obj/Debug/main.o

-11.6 KB
Binary file not shown.

0 commit comments

Comments
 (0)