pessoal no esquema eh o seguinte… preciso desenvolver uma aplicação em java para Inteligencia artificial… nesta aplicação tenho q usar o algoritmo de Hebb… tipo preciso criar uma matriz 5X5 de String q represente a letra X do alfabeto e outra q represente a lera O… mais ou menos assim:
#…# .###.
.#.#. #…#
…#… #…#
.#.#. #…#
#…# .###.
essas são as formas das letras, depois atribuir o valor 1 para cada #…
e o valor -1 para cada .(ponto)…
depois criar uma outra matriz de teste de tamanho igual para verificar se ela eh mais parecida com o X ou com o O, se digitado qq outro caracter a aplicação deve reconhe-lo como 0(zero) jah tenho o codigo quase pronto preciso de ajuda pra melhorar-lo e encrementa-lo
codio:
import javax.swing.*;
import java.awt.Container;
public class Projeto extends JApplet {
public static void main(String[] args) {
int cont=0;
int cont1=0;
//Cria Vetor X com posicoes definidas.
String X[][] = { { “#”, “.”, “.”, “.”, “#” },
{ “.”, “#”, “.”, “#”, “.” }, { “.”, “.”, “#”, “.”, “.” },
{ “.”, “#”, “.”, “#”, “.” }, { “#”, “.”, “.”, “.”, “#” } };
//Cria Vetor Auxiliar para X.
int Aux1[][] = new int[5][5];
//Cria Vetor O com posicoes definidas.
String O[][] = { { “.”, “#”, “#”, “#”, “.” },
{ “#”, “.”, “.”, “.”, “#” }, { “#”, “.”, “.”, “.”, “#” },
{ “#”, “.”, “.”, “.”, “#” }, { “.”, “#”, “#”, “#”, “.” } };
//Cria Vetor Auxiliar para O.
int Aux2[][] = new int[5][5];
//Cria Vetor de Teste.
String Teste[][] = new String[5][5];
//Cria Vetor Auxiliar de Teste.
int Aux3[][] = new int[5][5];
//Imprime saida Vetor X em uma caixa de dialogo 5x5.
String SaidaX = “”;
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
SaidaX = SaidaX + " " + X[i][j];
}
SaidaX = SaidaX + “\n”;
}
//Imprime saida Vetor O em uma caixa de dialogo 5x5.
String SaidaO = “”;
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
SaidaO = SaidaO + " " + O[i][j];
}
SaidaO = SaidaO + “\n”;
}
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (X[i][j].equals("#")) {
Aux1[i][j] = 1;
}else{
if(X[i][j].equals(".")) {
Aux1[i][j] = -1;
} else {
Aux1[i][j] = 0;
}
}
}
}
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (O[i][j].equals("#")) {
Aux2[i][j] = 1;
} else {
if (O[i][j].equals(".")) {
Aux2[i][j] = -1;
} else {
Aux2[i][j] = 0;
}
}
}
}
String ResultadoX = “”;
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
ResultadoX=ResultadoX+" “+Aux1[i][j];
}
ResultadoX=ResultadoX+”\n";
}
String ResultadoO = “”;
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
ResultadoO=ResultadoO+" “+Aux2[i][j];
}
ResultadoO=ResultadoO+”\n";
}
JOptionPane.showMessageDialog(null, “\n” + SaidaX);
JOptionPane.showMessageDialog(null, “\n” + SaidaO);
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
}
}
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
}
}
JOptionPane.showMessageDialog(null,"\n “+ResultadoX);
JOptionPane.showMessageDialog(null,”\n "+ResultadoO);
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
Teste[i][j] = JOptionPane.showInputDialog(“Valores para Teste”+i+"\n"+j);
}
}
String SaidaTeste="";
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
SaidaTeste = SaidaTeste + " " + Teste[i][j];
}
SaidaTeste = SaidaTeste + “\n”;
}
int j=4;
int cont2=0;
for(int i=0;i<5;i++){
if(Teste[i][i].equals("#")){
cont=cont+1;
}else{
if(Teste[i][j].equals("#")){
cont=cont+1;
}
j=j-1;
}
}
//int y=0;
for(int i=1;i<5;i++){
if((Teste[i][0].equals("#"))||(Teste[i][4].equals("#"))||(Teste[0][i].equals("#"))||(Teste[4][i]).equals("#")){
cont1=cont1+1;
}
//y=y+1;
}
JOptionPane.showMessageDialog(null," "+SaidaTeste);
if(cont>cont1){
JOptionPane.showMessageDialog(null,“Esta letra é mais parecida com X”);
}else{
JOptionPane.showMessageDialog(null,“Esta letra é mais parecida com O”);
}
System.exit(0);
}
}
se alguem puder analizar e me dar uma luz eu agradeço mto