Matlab - Evitar repetición

 
Vista:
sin imagen de perfil

Evitar repetición

Publicado por isaias (21 intervenciones) el 02/07/2015 23:30:07
Saludos a todos hice una funcion para que me de 5 cartas aleatorias de un juego de poker , mi duda es la siguiente
el codigo que tengo es grande se puede reducir, como ? y quisiera que no haya repeticion cuando salgan las 5 cartas
muchas gracias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
function cartas
A=randi(13,1,1);
switch A;
    case 1
        A=('1E');
    case 2
        A=('2E');
    case 3
        A=('3E');
    case 4
        A=('4E');
    case 5
        A=('5E');
    case 6
        A=('6E');
    case 7
        A=('7E');
    case 8
        A=('8E');
    case 9
        A=('9E');
    case 10
        A=('10E');
    case 11
        A=('JE');
    case 12
        A=('QE');
    case 13
        A=('KE');
 
end
B=randi(13,1,1);
switch B;
    case 1
        B=('1C');
    case 2
        B=('2C');
    case 3
        B=('3C');
    case 4
        B=('4C');
    case 5
        B=('5C');
    case 6
        B=('6C');
    case 7
        B=('7C');
    case 8
        B=('8C');
    case 9
        B=('9C');
    case 10
        B=('10C');
    case 11
        B=('JC');
    case 12
        B=('QC');
    case 13
        B=('KC');
end
m=0;
C=randi(13,1,1);
switch C;
    case 1
        C=('1D');
    case 2
        C=('2D');
    case 3
        C=('3D');
    case 4
        C=('4D');
    case 5
        C=('5D');
    case 6
        C=('6D');
    case 7
        C=('7D');
    case 8
        C=('8D');
    case 9
        C=('9D');
    case 10
        C=('10D');
    case 11
        C=('JD');
    case 12
        C=('QD');
    case 13
        C=('KD');
end
D=randi(13,1,1);
switch D;
    case 1
        D=('1T');
    case 2
        D=('2T');
    case 3
        D=('3T');
    case 4
        D=('4T');
    case 5
        D=('5T');
    case 6
        D=('6T');
    case 7
        D=('7T');
    case 8
        D=('8T');
    case 9
        D=('9T');
    case 10
        D=('10T');
    case 11
        D=('JT');
    case 12
        D=('QT');
    case 13
        D=('KT');
end
a=[];b=[];c=[];d=[];
a=cellstr(A);
b=cellstr(B);
c=cellstr(C);
d=cellstr(D);
e=cellstr(C);
x=randsample([a b c d e],5)
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
Imágen de perfil de Daniel
Val: 269
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Evitar repetición

Publicado por Daniel (264 intervenciones) el 03/07/2015 17:36:25
te dejo aqui un código mas reducido que tiene en cuenta que las cartas no pueden repetirse

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
clear all
clc
numeros={'1','2','3','4','5','6','7','8','9','10','J','Q','K'};
tipo={'E','C','D','T'};
j=1;
for a=1:13
    for b=1:4
 
        d(j)=strcat(numeros(a),tipo(b));
        j=j+1;
    end
end
 
eleccion=randperm(52);
disp((d(eleccion(1:5))))


Contame después como te fue

Saludos

Daniel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Evitar repetición

Publicado por isaias (21 intervenciones) el 04/07/2015 05:15:40
muchas gracias por la ayuda si me sirvió mucho
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