Ruanes
Power Member
OI, fiz um codigo que (supostamente)baralha cartas. O problema é que o programa tá sempre a dizer "A baralhar cartas..." Mas depois nunca mais acaba.
Aqui está o codigo
Só aqui uma explicações:
- n_cartas é um inteiro que diz quando é que já não sobram cartas para baralhar.
- Inic_Random() é uma função com o seguinte corpo:
- cartas_o é um vector em que as cartas estão substituidas por numeros e está organizado por naipes (ou seja 40 cartas -> 10 cartas pelos 4 naipes).
- 50 é o valor que atribui para dizer que a carta "já foi baralhada"
- cartas_d é um vector com todas as 40 cartas
Aqui está o codigo
Código:
[SIZE=2]
[LEFT][/SIZE][B][SIZE=2][COLOR=#7f0055]while[/B][/COLOR][/SIZE][SIZE=2](1)
{
[/SIZE][B][SIZE=2][COLOR=#7f0055]if[/B][/COLOR][/SIZE][SIZE=2](n_cartas==0) [/SIZE][B][SIZE=2][COLOR=#7f0055]break[/B][/COLOR][/SIZE][SIZE=2];[/SIZE]
[SIZE=2]Inic_Random();
v1=[/SIZE][B][SIZE=2][COLOR=#642880]rand[/B][/COLOR][/SIZE][SIZE=2]()%4;
v2=[/SIZE][B][SIZE=2][COLOR=#642880]rand[/B][/COLOR][/SIZE][SIZE=2]()%10;
[/SIZE][B][SIZE=2][COLOR=#7f0055]if[/B][/COLOR][/SIZE][SIZE=2](cartas_o[v2][v1]==50) [/SIZE][B][SIZE=2][COLOR=#7f0055]continue[/B][/COLOR][/SIZE][SIZE=2];
[/SIZE][B][SIZE=2][COLOR=#7f0055]else[/LEFT]
[/B][/COLOR][/SIZE][SIZE=2][LEFT]{
cartas_d[i]=cartas_o[v2][v1];[/SIZE][SIZE=2][COLOR=#3f7f5f]//Coloca a carta no baralho das cartas baralhadas[/LEFT]
[/COLOR][/SIZE][SIZE=2][LEFT]cartas_o[v2][v1]=50;
n_cartas--;
}
i++;[/LEFT]
}
[/SIZE]
- n_cartas é um inteiro que diz quando é que já não sobram cartas para baralhar.
- Inic_Random() é uma função com o seguinte corpo:
Código:
[B][SIZE=2][COLOR=#7f0055]
[LEFT]void[/B][/COLOR][/SIZE][SIZE=2][COLOR=#000000] [B]Inic_Random[/B]()[/COLOR][/SIZE][SIZE=2][COLOR=#3f7f5f]//Inicia o baralhador de cartas[/LEFT]
[/COLOR][/SIZE][SIZE=2][LEFT]{
[/SIZE][B][SIZE=2][COLOR=#7f0055]long[/B][/COLOR][/SIZE][SIZE=2] ultime;
[/SIZE][B][SIZE=2][COLOR=#642880]time[/B][/COLOR][/SIZE][SIZE=2](&ultime);
[/SIZE][B][SIZE=2][COLOR=#642880]srand[/B][/COLOR][/SIZE][SIZE=2](([/SIZE][B][SIZE=2][COLOR=#7f0055]unsigned[/B][/COLOR][/SIZE][SIZE=2]) ultime);[/LEFT]
}
[/SIZE]
- 50 é o valor que atribui para dizer que a carta "já foi baralhada"
- cartas_d é um vector com todas as 40 cartas