Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
Warming_Up_Tarea_001
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Cristhian Ortellado
Warming_Up_Tarea_001
Commits
2c4780ff
Commit
2c4780ff
authored
Sep 01, 2020
by
Cristhian Ortellado
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Se termino la tarea nro 1
parents
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
189 additions
and
0 deletions
+189
-0
README.md
+0
-0
Tateti.java
+189
-0
No files found.
README.md
0 → 100644
View file @
2c4780ff
Tateti.java
0 → 100644
View file @
2c4780ff
import
java.io.*
;
import
java.util.Scanner
;
public
class
Tateti
{
private
String
matriz
[][]
=
new
String
[
3
][
3
];
//tabla principal
private
char
turno
[]
=
{
'X'
,
'O'
};
//el turno 0 == primer jugador(X) 1 == Segundo Jugador (O)
private
char
numeroJugada
[]={
'a'
,
'b'
,
'c'
,
'd'
,
'e'
,
'f'
,
'g'
,
'h'
,
'i'
};
//indica la jugada actual
private
String
jugadaGanadora
[][]
=
{{
""
,
""
,
""
},{
""
,
""
,
""
}};
//colores que agregaremos a la salida de consola
private
static
final
String
ANSI_RED
=
"\u001B[31m"
;
//error
private
static
final
String
ANSI_RESET
=
"\u001B[0m"
;
//color entrada
private
static
final
String
ANSI_GREEN
=
"\u001B[32m"
;
//ganador
private
static
final
String
ANSI_YELLOW
=
"\u001B[33m"
;
//matriz
Tateti
(){
for
(
int
i
=
0
;
i
<
matriz
.
length
;
i
++)
{
for
(
int
j
=
0
;
j
<
matriz
.
length
;
j
++)
{
matriz
[
i
][
j
]=
""
;
}
}
}
public
void
jugar
(){
//creamos un scanner para ingresar los datos
Scanner
entrada
=
new
Scanner
(
System
.
in
);
int
nroJugada
=
0
;
System
.
out
.
println
(
"Bienvenidos al TA-TE-TI de Cristhian Ortellado del Bootcamp 004 de Roshka (Filas = {A, B, C})"
);
do
{
System
.
out
.
println
(
numeroJugada
[
nroJugada
]
+
". "
+
turno
[
nroJugada
%
2
]+
" -> Ingrese una jugada:"
);
String
movimiento
=
entrada
.
nextLine
();
//si la entrada y jugada es valida entonces rellenamos la matriz
if
(
comprobarEntrada
(
movimiento
)
&&
comprobarMovimiento
(
movimiento
)){
int
fila
=
casillaActual
(
movimiento
.
charAt
(
0
));
int
columna
=
(
int
)
casillaActual
(
movimiento
.
charAt
(
1
));
matriz
[
fila
][
columna
]
=
turno
[
nroJugada
%
2
]+
""
;
//guardamos la jugada
jugadaGanadora
[
nroJugada
%
2
][
nroJugada
/
2
]=
movimiento
;
imprimirMatriz
();
if
(
ganador
())
{
System
.
out
.
printf
(
"%s%s%s%s"
,
ANSI_GREEN
,
" GANADOR "
,
turno
[
nroJugada
%
2
],
" :"
);
if
(
jugadaGanadora
[
1
][
2
].
length
()==
0
)
System
.
out
.
printf
(
"%s"
,
jugadaGanadora
[
0
][
0
]+
"-"
+
jugadaGanadora
[
0
][
1
]+
"-"
+
jugadaGanadora
[
0
][
2
]+
"\n"
);
else
System
.
out
.
printf
(
"%s"
,
jugadaGanadora
[
1
][
0
]+
"-"
+
jugadaGanadora
[
1
][
1
]+
"-"
+
jugadaGanadora
[
1
][
2
]+
"\n"
);
System
.
out
.
println
(
ANSI_GREEN
+
" JUEGO FINALIZADO"
);
return
;
}
nroJugada
++;
if
(
nroJugada
==
9
)
{
System
.
out
.
println
(
ANSI_GREEN
+
" EMPATE "
+
turno
[
nroJugada
%
2
]
+
ANSI_RESET
);
System
.
out
.
println
(
ANSI_GREEN
+
" JUEGO FINALIZADO"
);
return
;
}
}
}
while
(
true
);
}
/**
* Funcion que comprueba si la matriz posee algun ganador
* @return retorna true si hubo algun ganador
*/
private
boolean
ganador
(){
//comprueba si alguien gano
//diagonales
if
(
matriz
[
0
][
0
].
equals
(
matriz
[
1
][
1
])
&&
matriz
[
0
][
0
].
equals
(
matriz
[
2
][
2
])
&&
matriz
[
0
][
0
].
length
()>
0
)
return
true
;
if
(
matriz
[
0
][
2
].
equals
(
matriz
[
1
][
1
])
&&
matriz
[
0
][
2
].
equals
(
matriz
[
2
][
0
])
&&
matriz
[
0
][
2
].
length
()>
0
)
return
true
;
//columnas
if
(
matriz
[
0
][
0
].
equals
(
matriz
[
1
][
0
])
&&
matriz
[
0
][
0
].
equals
(
matriz
[
2
][
0
])
&&
matriz
[
0
][
0
].
length
()>
0
)
return
true
;
if
(
matriz
[
0
][
1
].
equals
(
matriz
[
1
][
1
])
&&
matriz
[
0
][
1
].
equals
(
matriz
[
2
][
1
])
&&
matriz
[
0
][
1
].
length
()>
0
)
return
true
;
if
(
matriz
[
0
][
2
].
equals
(
matriz
[
1
][
2
])
&&
matriz
[
0
][
2
].
equals
(
matriz
[
2
][
2
])
&&
matriz
[
0
][
2
].
length
()>
0
)
return
true
;
//filas
if
(
matriz
[
0
][
0
].
equals
(
matriz
[
0
][
1
])
&&
matriz
[
0
][
0
].
equals
(
matriz
[
0
][
2
])
&&
matriz
[
0
][
0
].
length
()>
0
)
return
true
;
if
(
matriz
[
1
][
0
].
equals
(
matriz
[
1
][
1
])
&&
matriz
[
1
][
0
].
equals
(
matriz
[
1
][
2
])
&&
matriz
[
1
][
0
].
length
()>
0
)
return
true
;
if
(
matriz
[
2
][
0
].
equals
(
matriz
[
2
][
1
])
&&
matriz
[
2
][
0
].
equals
(
matriz
[
2
][
2
])
&&
matriz
[
2
][
0
].
length
()>
0
)
return
true
;
return
false
;
}
private
void
imprimirMatriz
(){
for
(
int
i
=
0
;
i
<
3
;
i
++)
{
for
(
int
j
=
0
;
j
<
3
;
j
++){
if
(
matriz
[
i
][
j
].
length
()==
0
)
{
System
.
out
.
printf
(
"%s|--%s"
,
ANSI_YELLOW
,
matriz
[
i
][
j
]);
}
else
{
System
.
out
.
printf
(
"%s|%s"
,
ANSI_YELLOW
,
matriz
[
i
][
j
]);
}
}
System
.
out
.
println
(
"|"
);
}
System
.
out
.
println
(
ANSI_RESET
);
}
/**
* @param entrada es el movimiento el cual el jugador desea realizar
* @return retorna true si es una jugada valida
*/
private
boolean
comprobarEntrada
(
String
entrada
){
if
(
entrada
.
length
()!=
2
)
{
System
.
out
.
println
(
ANSI_RED
+
"Error: Jugada Inválida - Solo ingrese el numero de caracteres solicitados"
+
ANSI_RESET
);
return
false
;
}
char
fila
=
entrada
.
charAt
(
0
);
char
columna
=
entrada
.
charAt
(
1
);
//comprobamos el primer y segundo caracter
if
(
fila
!=
'A'
&&
fila
!=
'B'
&&
fila
!=
'C'
||
columna
!=
'1'
&&
columna
!=
'2'
&&
columna
!=
'3'
){
System
.
out
.
println
(
ANSI_RED
+
"ERROR :Jugada Invalida - Formato Invalido"
+
ANSI_RESET
);
return
false
;
}
if
(
fila
!=
'A'
&
fila
!=
'B'
&&
fila
!=
'C'
&&
columna
!=
'1'
&&
columna
!=
'B'
&&
columna
!=
'3'
){
System
.
out
.
println
(
ANSI_RED
+
"Error: Jugada Invalida - Fila y Columna Invalidas"
+
ANSI_RESET
);
return
false
;
}
if
(
fila
!=
'A'
&&
fila
!=
'B'
&&
fila
!=
'C'
){
System
.
out
.
println
(
ANSI_RED
+
"Error: Jugada Inválida - Fila Invalida"
+
ANSI_RESET
);
return
false
;
}
if
(
columna
!=
'1'
&
columna
!=
'2'
&&
columna
!=
'3'
){
System
.
out
.
println
(
ANSI_RED
+
"Error: Jugada Inválida - Columna Invalida"
+
ANSI_RESET
);
return
false
;
}
return
true
;
}
/**
*
* @param jugada es una entrada valida en formato y rango
* @return retorna true si la jugada insertada se puede realizar
*/
private
boolean
comprobarMovimiento
(
String
jugada
){
//comprobamos la jugada con los criterios correspondientes
int
fila
=
casillaActual
(
jugada
.
charAt
(
0
));
int
columna
=
(
int
)
casillaActual
(
jugada
.
charAt
(
1
));
//casteamos la columna
//comprobamos si la casilla esta ocupada
if
(
matriz
[
fila
][
columna
].
length
()!=
0
)
{
System
.
out
.
println
(
ANSI_RED
+
"Jugada Invalida - Casilla Ocupada"
+
ANSI_RESET
);
return
false
;
}
return
true
;
}
/**
* @param jugada es la columna que ingreso el jugador
* @return retorna el indice de la columna
*/
private
int
casillaActual
(
char
jugada
){
switch
(
jugada
)
{
case
'A'
:
return
0
;
case
'B'
:
return
1
;
case
'C'
:
return
2
;
case
'1'
:
return
0
;
case
'2'
:
return
1
;
case
'3'
:
return
2
;
default
:
break
;
}
return
0
;
}
public
static
void
main
(
String
[]
args
)
{
Tateti
tateti
=
new
Tateti
();
tateti
.
jugar
();
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment