Pascal/Turbo Pascal - Solitario

 
Vista:

Solitario

Publicado por ghap (3 intervenciones) el 22/06/2007 11:46:14
Hola necesito ayuda para terminar este subprograma k se supone k tiene k hacer el barajado de un mazo de cartas, lo k hace es dividir l mazo en dos kedando dos mazos entonces la primera carta del primer monton se introduce a continuacion de la k ocupa en el segundo monton la posicion k coincide con el numero de acciones de barajado.

Vale yo lo e exo pero me da error de type mismatch ese y ya no se k hacer

Program Solitario;

Const
maxCarta=40;

Type
TPalo= (oros,copas,espadas,bastos);
TValores=(as,dos,tres,cuatro,cinco,sota,caballo,rey);
TCarta= record
palo:TPalo;
valor:TValores;
end;
TBaraja= array[1..maxCarta] of TCarta;
TMonton= record
info:TBaraja;
ultimo:0..maxCarta;
end;
TColumna=TMonton;
TTodasColumnas= array[1..5] of TColumna;

Procedure Inicializar(var baraja:TBaraja);

var
palo:TPalo;
valor:TValores;
carta1:integer;

begin
carta1:=1;
for palo:= oros to bastos do
for valor:=as to rey do
begin
baraja[carta1].palo:=palo;
baraja[carta1].valor:=valor;
carta1:=carta1 +1;
end;
end;

Procedure Barajar(var baraja:TBaraja;num:integer);

var
mitad,mitad1,mitad2:integer;
aux:TBaraja;

begin
while num>0 do
begin
mitad:=(maxCarta div 2);
for mitad1:=1 to mitad do
begin
aux:=baraja[mitad1];
for mitad2:=mitad+1 to mitad+num do
begin
baraja[mitad1]:=baraja[mitad1+1];
end;
baraja[mitad+num]:=aux;
end;
end;
end;

BEGIN
END.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Solitario

Publicado por micropais (209 intervenciones) el 22/06/2007 20:45:16
hola ghap, la mayoria de las veces , tenemos el error delante de nuestras narices y no lo vemos - por culpa de nuestro ego (que bueno soy , soy el mejor etc)-

- Como el compilador carece de "ego" y nos muetra la linea o lineas de error
debemos prestar atencion y ver que es lo que sucede sin dar por echo nada.

En tu caso , en el procedimiento barajar AUX es del tipo Tbaraja que es un array
del mismo tipo que baraja , de tal modo que debes tratarlos a los dos por igual,

aux [esto es lo que te falta]:=baraja[ ];
______________________

por si sigues sin verlo:
______________________

aux:=baraja ; ok del mismo tipo los dos sin [ ]
baraja[numero]:=aux[numero]; {ok los dos con [] : }
baraja[numero]:=aux; { a aux le falta referenciar [ ] o le sobra a baraja [] }

¿OK? vaya despiste ehh?.
si es otra cosa postea : pues lo unico que he visto que tu Braja no contiene seises y sietes pero seguro que eso carece de importancia pues hay 40 cartas . JE,JE,JE.

SALUDOS.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar