You are on page 1of 7

UNIVERSIDAD NACIONAL DE SAN AGUSTN

ESCUELA PROFESIONAL DE INGENERIA


INDUSTRIAL



CURSO: LENGUAJE DE PROGRAMACION
JUEGO DE TRES EN RAYA CON INTELIGENCIA
ARTIFICIAL
ALUMNA:



AREQUIPA, 2014
1. OBJETIVOS:
Aplicar los conceptosde leguaje de programacin a problemas de
autmatas celular.
Determinar una aplicacin de autmatas celulares.

2. CONCEPTOS GENERALES


CODIGO EN VISUAL BASIC DEL JUEGO TRES EN RAYA
CLASE CODIGO.VB
Public Class Codigo
Private nTablero(2, 2) As Integer
Private nGanador As Integer = -1
Private nContar As Integer = 0
Private ub(2) As Integer

Public Function getTabler()
Return nTablero
End Function

Public Function EmpezarPartida()
For x As Integer = 0 To 2
For y As Integer = 0 To 2
nTablero(x, y) = -1
Next
Next
nGanador = -1
Return ""
End Function

Public Function pulsaBoton(ByVal n, ByVal m)
If n >= 0 And n < 3 And m < 3 And nTablero(n, m) = -1 Then
If nGanador = -1 Then
nTablero(n, m) = 0
nGanador = GanarPartida()
PonerFichaOrdenador()
End If
End If
End Function

Public Function GanarPartida()
'Diagonal \
If nTablero(0, 0) <> -1 And nTablero(0, 0) = nTablero(1, 1) And
nTablero(0, 0) = nTablero(2, 2) Then
Return nTablero(0, 0)
End If
'Diagonal /
If nTablero(0, 2) <> -1 And nTablero(0, 2) = nTablero(1, 1) And
nTablero(0, 2) = nTablero(2, 0) Then
Return nTablero(0, 2)
End If
'Filas horizontales y verticales
For n As Integer = 0 To 2

If nTablero(n, 0) <> -1 And nTablero(n, 0) = nTablero(n, 1) And
nTablero(n, 0) = nTablero(n, 2) Then
Return nTablero(n, 0)
End If
If nTablero(0, n) <> -1 And nTablero(0, n) = nTablero(1, n) And
nTablero(0, n) = nTablero(2, n) Then
Return nTablero(0, n)
End If
Next
Return -1
End Function
Public Function GetGanador()
Return nGanador
End Function
Public Function GetUltimoBoton()
Return ub
End Function
'MINIMAX
Public Function TableroCompleto()
For x As Integer = 0 To 2
For y As Integer = 0 To 2
If nTablero(x, y) = -1 Then
Return False
End If
Next
Next
Return True
End Function
Public Function FinPartida()
Return TableroCompleto() Or GanarPartida() <> -1
End Function
Public Function PonerFichaOrdenador()
If Not FinPartida() Then
Dim f As Integer = 0
Dim c As Integer = 0
Dim v As Integer = Integer.MinValue
Dim aux As Integer
For x As Integer = 0 To 2
For y As Integer = 0 To 2
If nTablero(x, y) = -1 Then
nTablero(x, y) = 1
aux = Min()
If aux > v Then
v = aux
f = x
c = y
End If
nTablero(x, y) = -1
End If
Next
Next
nTablero(f, c) = 1
ub(0) = f
ub(1) = c
End If
End Function

Private Function Max()
If FinPartida() Then
If GanarPartida() <> -1 Then
Return -1
Else
Return 0
End If
End If
Dim v As Integer = Integer.MinValue
Dim aux As Integer
For x As Integer = 0 To 2
For y As Integer = 0 To 2
If nTablero(x, y) = -1 Then
nTablero(x, y) = 1
aux = Min()
If aux > v Then
v = aux
End If
nTablero(x, y) = -1
End If
Next
Next
Return v
End Function

Private Function Min()
If FinPartida() Then
If GanarPartida() <> -1 Then
Return 1
Else
Return 0
End If
End If
Dim v As Integer = Integer.MaxValue
Dim aux As Integer
For x As Integer = 0 To 2
For y As Integer = 0 To 2
If nTablero(x, y) = -1 Then
nTablero(x, y) = 0
aux = Max()
If aux < v Then
v = aux
End If
nTablero(x, y) = -1
End If
Next
Next
Return v
End Function
End Class

CODIGO FORM1.VB
Public Class Form1
Dim c As New Codigo
Dim nGanador As Integer = -1
Dim nTablero(2, 2) As Integer

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
c.EmpezarPartida()
nTablero = c.getTabler
End Sub
Private Sub CheckGanador()
Dim ub(2) As Integer
ub = c.GetUltimoBoton
If ub(0) = 0 And ub(1) = 0 Then
B1.Text = "O"
End If
If ub(0) = 0 And ub(1) = 1 Then
B2.Text = "O"
End If
If ub(0) = 0 And ub(1) = 2 Then
B3.Text = "O"
End If
If ub(0) = 1 And ub(1) = 0 Then
B4.Text = "O"
End If
If ub(0) = 1 And ub(1) = 1 Then
B5.Text = "O"
End If
If ub(0) = 1 And ub(1) = 2 Then
B6.Text = "O"
End If
If ub(0) = 2 And ub(1) = 0 Then
B7.Text = "O"
End If
If ub(0) = 2 And ub(1) = 1 Then
B8.Text = "O"
End If
If ub(0) = 2 And ub(1) = 2 Then
B9.Text = "O"
End If
If nGanador = 0 Then
Label2.Text = "HAS GANADO =D"
End If
If nGanador = 1 Then
Label2.Text = "HAS PERDIDO =C"
End If
If nGanador = -1 Then
If c.TableroCompleto() = True Then
Label2.Text = "EMPATE"
End If
End If
End Sub

Private Sub B1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles B1.Click
If nTablero(0, 0) = -1 Then
B1.Text = "X"
c.pulsaBoton(0, 0)
nGanador = c.GanarPartida()
Call CheckGanador()
B1.ForeColor = Color.Red
End If
End Sub

Private Sub B2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles B2.Click
If nTablero(0, 1) = -1 Then
B2.Text = "X"
c.pulsaBoton(0, 1)
nGanador = c.GanarPartida()
Call CheckGanador()
B2.ForeColor = Color.Red
End If
End Sub

Private Sub B3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles B3.Click
If nTablero(0, 2) = -1 Then
B3.Text = "X"
c.pulsaBoton(0, 2)
nGanador = c.GanarPartida()
Call CheckGanador()
B3.ForeColor = Color.Red
End If
End Sub

Private Sub B4_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles B4.Click
If nTablero(1, 0) = -1 Then
B4.Text = "X"
c.pulsaBoton(1, 0)
nGanador = c.GanarPartida()
Call CheckGanador()
B4.ForeColor = Color.Red
End If
End Sub

Private Sub B5_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles B5.Click
If nTablero(1, 1) = -1 Then
B5.Text = "X"
c.pulsaBoton(1, 1)
nGanador = c.GanarPartida()
Call CheckGanador()
B5.ForeColor = Color.Red
End If
End Sub

Private Sub B6_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles B6.Click
If nTablero(1, 2) = -1 Then
B6.Text = "X"
c.pulsaBoton(1, 2)
nGanador = c.GanarPartida()
Call CheckGanador()
B6.ForeColor = Color.Red
End If
End Sub

Private Sub B7_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles B7.Click
If nTablero(2, 0) = -1 Then
B7.Text = "X"
c.pulsaBoton(2, 0)
nGanador = c.GanarPartida()
Call CheckGanador()
B7.ForeColor = Color.Red
End If
End Sub

Private Sub B8_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles B8.Click
If nTablero(2, 1) = -1 Then
B8.Text = "X"
c.pulsaBoton(2, 1)
nGanador = c.GanarPartida()
Call CheckGanador()
B8.ForeColor = Color.Red
End If
End Sub

Private Sub B9_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles B9.Click
If nTablero(2, 2) = -1 Then
B9.Text = "X"
c.pulsaBoton(2, 2)
nGanador = c.GanarPartida()
Call CheckGanador()
B9.ForeColor = Color.Red
End If
End Sub

Private Sub BtnReiniciar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnReiniciar.Click
c = New Codigo
c.EmpezarPartida()
nTablero = c.getTabler
nGanador = -1
B1.Text = ""
B2.Text = ""
B3.Text = ""
B4.Text = ""
B5.Text = ""
B6.Text = ""
B7.Text = ""
B8.Text = ""
B9.Text = ""
B1.ForeColor = Color.Black
B2.ForeColor = Color.Black
B3.ForeColor = Color.Black
B4.ForeColor = Color.Black
B5.ForeColor = Color.Black
B6.ForeColor = Color.Black
B7.ForeColor = Color.Black
B8.ForeColor = Color.Black
B9.ForeColor = Color.Black
End Sub
End Class

You might also like