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.
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


0