ola pessoal!!!
há horas estou batendo cabeça aqui mas num sai mais nada então resolvi compartilhar isso com vocês, porque em JAVA tudo se compartilha!!!rsrsrsrs... :D
pois bem eo seguinte:
estou tentando implementar um algoritmo que que simule a falha bizantina, acho que a maioria ja deve ter ouvido falar ou estudado isso !!!
porem estou tentando fazer com matrizes, e estou apanhando muito porque sou totalmente"virgem" em java, o codigo abaixo foi tudo o que consegui fazer ate agora, mas ainda tem uns erros que não tá dando para implementar.
por isso peço humildemente a ajuda de vocês para resolução desse algoritmo!!!!
public class Generais {
int msgComandante;
int[][] m = new int[4][4];
public Generais() {
Scanner sc = new Scanner(System.in);
if (msgComandante == 1 || msgComandante == 0) {
System.out.print("Informe a mensagem do comandante: 1 para ATACAR ou 0 para RECUAR:\t");
msgComandante = sc.nextInt();
System.out.println("A mensagem do comandante é: " + (msgComandante == 1 ? "ATACAR" : "RECUAR"));// essa mensagem aqui vai para todos!!!
}
if (m[0][0] == 1 || m[0][0] == 0) {
System.out.print("Informe o carater do comandante: 1 para LEAL ou 0 para TRAIDOR:\t");
m[0][0] = sc.nextInt();
System.out.println("O carater do comandante é: " + (m[0][0] == 1 ? "LEAL" : "TRAIDOR"));
}
for (int i = 1; i <= 4; i++) {
do {
System.out.print("Informe o carater do general " + i + ": 1 para FIEL ou 0 para TRAIDOR\t");
m[i][0] = sc.nextInt();
} while (m[i][0] != 0 && m[i][0] != 1);
System.out.println("O general " + i + " é: " + (m[i][0] == 1 ? "FIEL" : "TRAIDOR"));
//? aqui esta o problema da recursividade como faço para que o general receba a mensagem e //transfira para os outros sem enviar para ele mesmo e para que envio-lhe a mensagem???
}
}
public void enviarMsgComandante() {
if (m[0][0] == 1) { //se o comandante for fiel
for (int i = m[1][0]; i < 5; i++) {
m[i][1] = msgComandante; //envia a mensagem do comandante para todos os generais
}
} else {// se nao for fiel
for (int i = 1; i < 5; i++) {
m[i][1] = Math.random(); //envia a mensagem do comandante para todos os generais randomizada para todos os nodos mas nao ta dando certo!!!
}
}
}
complicado não é!!!
a logica e assim:
A envia mensagem p/ B,C,D
B envia mensagem p/ C,D
C envia mensagem p/ B,D
D envia mensagem p/ B,C
depois mostra a quantidade de msg e execulta a ação!!!"atacar" ou "recuar"