Implementación del Juego 4 en Raya en Matlab: Funciones y Lógica

Clasificado en Informática

Escrito el en español con un tamaño de 4,12 KB

Implementación del Juego 4 en Raya en Matlab

Este documento describe la implementación del juego 4 en raya utilizando Matlab, detallando las funciones clave y la lógica del juego.

1. Función para Dibujar un Círculo

Esta función dibuja un círculo de un color diferente dependiendo del jugador que tenga el turno.

function [x,y]= dibujaCirculo(xc,yc,jug)
x=xc+0.4*cos(0:0.01:2.01*pi);
y = yc+0.4*sin(0:0.01 :2.01*pi);
plot(1:0.1:7,0,'y')
hold on
plot(0,1:0.1:6)
hold on
if jug==1 
plot(x,y,'r'); 
axis square;
hold on;
elseif jug==2
plot(x,y,'b');
axis square;
hold on;
end

2. Función para Dibujar el Tablero

Esta función se encarga de dibujar el tablero del juego, utilizando la función dibujaCirculo para representar las fichas.

function x=dibujaTablero(T)
T=T';
K=size(T);
for i = 1:K(1)
for j= 1:K(2)
xc=i;
yc=j;
jug=T(i,j);
dibujaCirculo(xc,yc,jug);
end
end

3. Función para la Jugada en 4 en Raya

Esta función actualiza la matriz del tablero cuando un jugador coloca una ficha en una columna específica.

function x = jugada4enRaya(T,jug,columna)
for fila=1:6
if T(fila,columna)==0
T(fila,columna) =jug;
break;
else
fila=fila+1;
end
end
while fila==7
columna=input ('Introduzca la COLUMNA donde quiere colocar su ficha, esta COLUMNA esta llena: ');
fprintf '\n'
for fila=1:6
if T(fila,columna)==0
T(fila,columna)=jug;
break;
else
fila=fila+1;
end
end
end
x=T;

4. Función para el Juego Simple de 4 en Raya

Esta función implementa la lógica básica del juego, permitiendo a los jugadores colocar fichas por turnos sin detectar un ganador.

function[  ]= cuatroEnRayaSimple
Para=0;
T=zeros(6,7);
contador=0;
jug=0;
while Para==0
if jug==1
jug=2;
else
jug=1;
end
fprintf '\n'
fprintf ('Turno del jugador %1.0f \n', jug);
columna= input ('Introduzca la COLUMNA donde quiere colocar su ficha: ');
fprintf '\n'
while columna>7 || columna<1
columna= input ('Introduzca la COLUMNA donde quiere colocar su ficha: ');
fprintf '\n'
end
[T]=jugada4enRaya (T,jug,columna);
contador=contador+1;
if contador == 42 && Para==0
Para=3;
end
if Para==3
fprintf 'Todo el mundo pierde \n'
end
end

5. Función para Contar Cuatro en Raya

Esta función verifica si un jugador ha logrado conectar cuatro fichas en línea, ya sea horizontal, vertical o diagonalmente.

function [si,p,q] = cuentaCuatro(T,jug)
N=size(T);
si=false;
if si==false
for i=1:N(1)-3
for j=1:N(2)
if T(i,j)==jug && T(i+1,j)==jug && T(i+2,j)==jug && T(i+3,j)==jug
si=true;
p=[i,j];
q=[i+3,j];
Para=jug;
break;
end
end
end
for i=1:N(1)
for j=1:N(2)-3
if T(i,j)==jug && T(i,j+1)==jug && T(i,j+2)==jug && T(i,j+3)==jug
si=true;
p=[i,j];
q=[i,j+3];
Para=jug;
break;
end
end
end
for i=1:N(1)-3
for j=1:N(2)-3
if T(i,j)==jug && T(i+1,j+1)==jug && T(i+2,j+2) ==jug && T(i+3,j+3)==jug
si=true;
p=[i,j];
q=[i+3,j+3];
Para=jug;
break;
end
end
end
for i= 4:N(1)
for j=1:N(2)-3
if T(i,j)==jug && T(i-1,j+1)==jug && T(i-2,j+2)==jug && T(i-3,j+3)==jug
si=true;
p=[i,j];
q=[i-3,j+3];
Para=jug;
break;
end
end
end
else
si=false;
p=[];
q=[];
end

6. Función Principal del Juego 4 en Raya

Esta función integra las funciones anteriores para implementar el juego completo, incluyendo la detección del ganador.

function [x,y] = cuatroEnRaya
Para=0;
T=zeros(6,7);
contador=0;
jug=0;
while Para==0
if jug==1
jug=2;
else
jug=1;
end
fprintf '\n'
fprintf ('Turno del jugador %1.0f \n', jug);
columna= input ('Introduzca  la COLUMNA donde quiere colocar su ficha: ');
fprintf '\n'
while columna>7 || columna<1
columna= input ('Introduzca la COLUMNA donde quiere colocar su ficha: ');
fprintf '\n'
end
[T]=jugada4enRaya(T,jug,columna);
dibujaTablero(T)
[si,p,q] = cuentaCuatro(T,jug);
if si==true
line([p(2),q(2)],[p(1),q(1)])
fprintf '\n'
fprintf ('Gana el jugador%1.0f \n', jug);
hold on
break
end
contador=contador+1;
if contador == 42 && Para==0
Para=3;
end
end
if Para==3
fprintf 'Todo el mundo pierde\n'
end

Entradas relacionadas: