-
Lenguaje
PSeInt (Pseudocódigo)
-
Descripción
Juego conocido como TicTacToe, Gato, Triqui, Tres en Raya o TaTeTi. Usario juega con el caracter 'X' vs Computadora que juega con el caracter 'O'.
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
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
Algoritmo ProcesoTicTacToe
Dimension tictactoe(3,3);
Para i<-1 Hasta 3 Con Paso 1 Hacer
Para j<-1 Hasta 3 Con Paso 1 Hacer
tictactoe[i,j] <- ' ';
FinPara
FinPara
ganador <- ' ';
juega_cpu <- AZAR(2)=1;
turnos <- 0;
Mientras turnos<9 Y ganador <> 'O' Y ganador <> 'X' Hacer
Si juega_cpu Entonces
Repetir
i <- 1+AZAR(3);
j <- 1+AZAR(3);
Hasta Que tictactoe[i,j] = ' ';
tictactoe[i,j] <- 'O';
Sino
imprimir_cuadricula(tictactoe);
Repetir
i <- leer_numero("renglón");
j <- leer_numero("columna");
Si tictactoe[i,j] <> ' ' Entonces
Escribir "La casilla seleccionada ya está ocupada.";
Escribir "";
FinSi
Hasta Que tictactoe[i,j] = ' ';
tictactoe[i,j] <- 'X';
FinSi
i <- 1;
Mientras ganador = ' ' Y i <= 3 Hacer
Si tictactoe[i,1] <> ' ' Y tictactoe[i,1] = tictactoe[i,2] Y tictactoe[i,2] = tictactoe[i,3] Entonces
ganador <- tictactoe[i,1];
FinSi
i <- i + 1;
FinMientras
i <- 1;
Mientras ganador = ' ' Y i <= 3 Hacer
Si tictactoe[1,i] <> ' ' Y tictactoe[1,i] = tictactoe[2,i] Y tictactoe[2,i] = tictactoe[3,i] Entonces
ganador <- tictactoe[1,i];
FinSi
i <- i + 1;
FinMientras
Si ganador = ' ' Y tictactoe[1,1] <> ' ' Y tictactoe[1,1] = tictactoe[2,2] Y tictactoe[2,2] = tictactoe[3,3] Entonces
ganador <- tictactoe[1,1];
FinSi
Si ganador = ' ' Y tictactoe[1,3] <> ' ' Y tictactoe[1,3] = tictactoe[2,2] Y tictactoe[2,2] = tictactoe[3,1] Entonces
ganador <- tictactoe[1,3];
FinSi
juega_cpu <- No juega_cpu;
turnos <- turnos + 1;
FinMientras
imprimir_cuadricula(tictactoe);
Segun ganador Hacer
'O':
Escribir "La computadora ha ganado.";
'X':
Escribir "El usuario ha ganado.";
' ':
Escribir "Empate.";
FinSegun
FinAlgoritmo
SubProceso imprimir_cuadricula(tictactoe)
Borrar Pantalla;
Escribir " +---+---+---+";
Escribir " | 1 | 2 | 3 |";
Escribir " +---+---+---+";
Escribir "";
Escribir "+-+ +---+---+---+";
Para i<-1 Hasta 3 Con Paso 1 Hacer
Si i <> 1 Entonces
Escribir "+-+ +---+---+---+";
FinSi
Escribir Sin Saltar "|", i, "| |";
Para j<-1 Hasta 3 Con Paso 1 Hacer
Escribir Sin Saltar " ", tictactoe[i,j], " |";
FinPara
Escribir "";
FinPara
Escribir "+-+ +---+---+---+";
Escribir "";
FinSubProceso
SubProceso numero <- leer_numero(variable)
Repetir
Escribir Sin Saltar "Seleccione el número de ", variable, ":";
Leer numero;
Si numero<1 O numero>3 Entonces
Escribir "Número no válido";
FinSi
Hasta Que numero=1 O numero=2 O numero=3;
FinSubProceso
Dimension tictactoe(3,3);
Para i<-1 Hasta 3 Con Paso 1 Hacer
Para j<-1 Hasta 3 Con Paso 1 Hacer
tictactoe[i,j] <- ' ';
FinPara
FinPara
ganador <- ' ';
juega_cpu <- AZAR(2)=1;
turnos <- 0;
Mientras turnos<9 Y ganador <> 'O' Y ganador <> 'X' Hacer
Si juega_cpu Entonces
Repetir
i <- 1+AZAR(3);
j <- 1+AZAR(3);
Hasta Que tictactoe[i,j] = ' ';
tictactoe[i,j] <- 'O';
Sino
imprimir_cuadricula(tictactoe);
Repetir
i <- leer_numero("renglón");
j <- leer_numero("columna");
Si tictactoe[i,j] <> ' ' Entonces
Escribir "La casilla seleccionada ya está ocupada.";
Escribir "";
FinSi
Hasta Que tictactoe[i,j] = ' ';
tictactoe[i,j] <- 'X';
FinSi
i <- 1;
Mientras ganador = ' ' Y i <= 3 Hacer
Si tictactoe[i,1] <> ' ' Y tictactoe[i,1] = tictactoe[i,2] Y tictactoe[i,2] = tictactoe[i,3] Entonces
ganador <- tictactoe[i,1];
FinSi
i <- i + 1;
FinMientras
i <- 1;
Mientras ganador = ' ' Y i <= 3 Hacer
Si tictactoe[1,i] <> ' ' Y tictactoe[1,i] = tictactoe[2,i] Y tictactoe[2,i] = tictactoe[3,i] Entonces
ganador <- tictactoe[1,i];
FinSi
i <- i + 1;
FinMientras
Si ganador = ' ' Y tictactoe[1,1] <> ' ' Y tictactoe[1,1] = tictactoe[2,2] Y tictactoe[2,2] = tictactoe[3,3] Entonces
ganador <- tictactoe[1,1];
FinSi
Si ganador = ' ' Y tictactoe[1,3] <> ' ' Y tictactoe[1,3] = tictactoe[2,2] Y tictactoe[2,2] = tictactoe[3,1] Entonces
ganador <- tictactoe[1,3];
FinSi
juega_cpu <- No juega_cpu;
turnos <- turnos + 1;
FinMientras
imprimir_cuadricula(tictactoe);
Segun ganador Hacer
'O':
Escribir "La computadora ha ganado.";
'X':
Escribir "El usuario ha ganado.";
' ':
Escribir "Empate.";
FinSegun
FinAlgoritmo
SubProceso imprimir_cuadricula(tictactoe)
Borrar Pantalla;
Escribir " +---+---+---+";
Escribir " | 1 | 2 | 3 |";
Escribir " +---+---+---+";
Escribir "";
Escribir "+-+ +---+---+---+";
Para i<-1 Hasta 3 Con Paso 1 Hacer
Si i <> 1 Entonces
Escribir "+-+ +---+---+---+";
FinSi
Escribir Sin Saltar "|", i, "| |";
Para j<-1 Hasta 3 Con Paso 1 Hacer
Escribir Sin Saltar " ", tictactoe[i,j], " |";
FinPara
Escribir "";
FinPara
Escribir "+-+ +---+---+---+";
Escribir "";
FinSubProceso
SubProceso numero <- leer_numero(variable)
Repetir
Escribir Sin Saltar "Seleccione el número de ", variable, ":";
Leer numero;
Si numero<1 O numero>3 Entonces
Escribir "Número no válido";
FinSi
Hasta Que numero=1 O numero=2 O numero=3;
FinSubProceso