Conway’s Game of Life (Java)

This program is attempting to recreate Conway’s Game of Life.

The rules that this code is trying to apply:

  • Empty cells with 3 neighbors come to life
  • Live cells with <2 or >3 neighbors die
  • All births / deaths occur simultaneously

The issue is the my code outputs no change among the different iterations, even though there is obviously supposed to be.

Any help or ideas with some of the logic being used in the portion that updates the cells would be greatly appreciated.

Thanks!


public class Game_Of_Life { public static void main(String[] args) throws IOException {

    final int runs = 5;     int organisms;     String[][] real = new String[20][20];     String[][] test = new String[20][20];     Scanner reader = new Scanner(new File("life100.txt"));      for(int i = 0; i < real.length; i++) {         for(int g = 0; g < real.length; g++) {             real[i][g] = test[i][g] = " ";         }     }      while(reader.hasNext()) {         real[reader.nextInt()-1][reader.nextInt()-1] = "*";         test[reader.nextInt()-1][reader.nextInt()-1] = "*";     }     reader.close();      for(int j=0; j<runs; j++) {           for(int i = 0; i < real.length; i++) { //updates live and dead cells             for(int g = 0; g < real.length; g++) {                  int neigh = neighbors(real, i, g);                 if(test[i][g].equals("*")) {                     if(neigh<2 || neigh>3) {                         real[i][g] = " ";                     }                 }                 else {                     if(neigh == 3) {                         real[i][g] = "*";                     }                 }             }         }          for(int i = 0; i < real.length; i++) {             for(int g = 0; g < real.length; g++) {                 real[i][g] = test[i][g];             }         }          System.out.println("     1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20\n");         for(int i = 0; i < real.length; i++) {             System.out.print((i+1) + "   ");             for(int g = 0; g < real.length; g++) {                 System.out.print(" " + test[i][g] + " ");             }             System.out.println();         }      }  }  public static boolean able(int row, int col, int N) { // checks boundaries     if (row >= 0 && col >= 0 && row < N && col < N) {         return true;     }     else {         return false;     } }  public static int neighbors(String[][] ray, int row, int col) { // checks neighboring cells       int neighbor=0;     int[] rows = {row-1, row-1, row-1, row, row, row+1, row+1, row+1};     int[] cols = {col-1, col, col+1, col-1, col+1, col-1, col, col+1};      for(int i=0; i<8; i++) {         if(able(rows[i], cols[i], 20) && ray[rows[i]][cols[i]].equals("*")) {             neighbor++;         }     }      return neighbor; } 

}

How to find in Java if a Cipher needs an IV or not?

I’m building a stream server that leverages in cryptography to protect the data being transfered. The cipher suit is being loaded from a configuration file that allows the user to insert the algorithm + cipher mode (ECB, CBC, CTR, … ) + padding that they want.

The problem is that some modes, like ECB, or stream cipher algorithms don’t require IV which gives an error when I try to init the cipher. Therefore, my code is not dynamic enough to deal with this situations. I already tried to look online for a way to find if a given algirthm/mode needs IV or not but found nothing.

Does anyone know how to do this?

Thanks in advance

Java program skipping the string statement second time of the execution

I am new to programming , & have just started learning c++,python & java side by side. While working in java on making the railway ticket account program the problem arrives in the output the program is working properly till when we enter 1 passenger is travelling but the problem arises when we enter multiple ( 2 )or more than two passenger were travelling, In the case of first passenger, it work’s properly but for the second passenger, it skip’s the first_name string statement and directly executes last_name string statement. Here is the main class….. `

 public static void main(String[] args) { Scanner inpu=new Scanner(System.in); String fi_name=null,li_name=null,cn_name=null,first_name=null,last_name=null,cnic_number=null; int Age=0,passenger=0,i=1,age_name=0,age_price=0,total=0 ;         System.out.println("Enter the number of Passenger Travelling"); passenger=inpu.nextInt(); passenger_attributes ob=new passenger_attributes(); while(passenger>=i) {    first_name=ob.fname(fi_name); last_name=ob.lname(li_name);    cnic_number=ob.cnum(cn_name);    Age=ob.age(age_name);  age_price=ob.age_checker(Age);     System.out.println("passenger "+i+" First name is :=" +first_name);     System.out.println("passenger "+i+" Last name is :=" +last_name);     System.out.println("passenger "+i+" cnic number is :=" +cnic_number);     System.out.println("passenger "+i+" Age is :=" +Age);     System.out.println("passenger "+i+" total price ticket is  :=" +age_price);  total=total+age_price;    i++;}         System.out.println("the total price of all the passenger is :=" +total);     }    } 

& that was my class program

  public class passenger_attributes {     Scanner input=new Scanner(System.in);     public String fname(String fi_name)     {         System.out.println("ENTER PASSENGER FIRST NAME :=");         fi_name=input.nextLine();         return fi_name;       }      public String lname(String la_name)     {         System.out.println("ENTER PASSENGER LAST NAME :=");         la_name=input.nextLine();         return la_name;       }       public String cnum(String cn_num)     {         System.out.println("ENTER PASSENGER Cnic Number :=");         cn_num=input.nextLine();         return cn_num;       }        public int age(int age_num)     {         System.out.println("ENTER PASSENGER Age :=");         age_num=input.nextInt();         return age_num;       }        public int age_checker(int Age)       {           int price_age;           if(Age<=12)           {              price_age=500;              return price_age;           }           else if (Age<=15 && Age>12)           {               price_age=1000;           return price_age;           }           else if(Age>15)           {               price_age=1500;           return price_age;           }           else{               return 0;           }        } } 

Statement, Java y MySQL método poco eficiente

Tengo un método que asigna el siguiente número dependiendo de los números de fila que hay en la base de datos, lo que me parece que es gastar recursos por gastar y me gustaría cambiarlo, pero no he localizado en la documentación algo que me permita hacerlo. Utilizo XAMPP con mysql para las pruebas.

El método abre la conexión con la base de datos, realiza la sentencia SELECT * FROmM tabla; posteriormente se guarda en un ResultSet con un bucle WHILE se recorren todas las filas, se coge el último número introducido, se le suma uno y se asigna a un jTextField para que introduzca el siguiente. Lo que me parece absurdo imaginando que puede haber más de 1000 filas me gustaría cambiar la sentencia por un SELECT count(codigo) FROM tabla; y así me cuente directamente cuantas filas hay y sume uno. Esto me presenta dos problemas: el primero es que si alguna fila ha sido borrada tendré problemas ya que se intentará insertar un número que es clave primaria repetido, el segundo problema es que no quiero utilizar ResultSet para no tener que recorrer todas las filas.

Una solución sería buscar si el número ya ha sido introducido, pero volvemos al problema de que tendrá que recorrer todas las filas y es lo que quiero evitar.

¿Se os ocurre como hacer más eficiente este método?

   private void asignarCodigo() throws ClassNotFoundException, SQLException {      //Cargo driver     Class.forName("com.mysql.jdbc.Driver");     //Creo conexión     Connection cnx = DriverManager.getConnection(ruta, usuario, pass);     //Creo sentencia     Statement sentencia = cnx.createStatement();      //Ejecuto sentencia sobre un resultset     ResultSet resultado = sentencia.executeQuery("SELECT * FROM tabla;");     //Variable para saber e ltamaño de ResultSet     int ultimo = 0;     //Recorro el bucle para saber el último código de departamento     while (resultado.next()) {         ultimo = resultado.getInt(1);     }     // Sumo uno al último código de departamento      ultimo++;     //Asigno el nuevo id al campo de texto     jTextFieldCodigo.setText(String.valueOf(ultimo));     //Libero recursos     ////resultado.close();     sentencia.close();     cnx.close();  } 

Tabla: introducir la descripción de la imagen aquí

Keycloak : authenticating a Rest API written in JAVA

I’d like to authenticate a Rest service (RS) against a Keycloak server (KS).

RS is accessed via an application (APP) and not a browser for example.

So far, I’ve understood the way to proceed is as following:

  1. APP is authenticating against KS and get an ACCESS_TOKEN.
  2. APP is sending a request to the RS passing somehow the ACCESS_TOKEN.
  3. RS is extracting the ACCESS_TOKEN and validate / decode it to get the required information associated with the user.

I’ve hard time finding the right JAVA API to perform the step (3).

So far, I’ve “verified” the token using a TokenVerifier (setup using the RSA public key of the KS) => TokenVerifier.verify(). Once verified, I’m parsing it to decode it using. So far so good.

One extra step I’d like to achieve is ensuring the ACCESS_TOKEN is still valid in KS. But I did not find any JAVA API for that purpose. So instead, I’ve issued a regular HTTP request to the UserInfo endpoint using the ACCESS_TOKEN.

So is there any JAVA API to check the validity of the ACCESS_TOKEN ?

Am I doing the thing right for this kind of scenario ?

Mostrar informacion de alimentos en java

Hice un programa que tiene como finalidad la gestión alimentaria, aplicando herencia. Tengo tres tipos de alimentos que son subclases:

1.- Alimentos congelados 2.- Alimentos Refrigererados 3.- Alimentos Frescos 

Cada una lleva atributos propios y extienden de mi clase padre, Producto, 2 atributos, los cuales son Fecha de caducidad y numero de lote.

Finalmente, tengo una última subclase, TesHerencia3, que está destinada para testeo porque así me lo solicitan y es la que hace que todos los datos se muestren por pantalla. Esta última subclase no hereda, si no que es mi clase Main, y los datos se muestran bajo consola al ejecutar.

Lo que busco hacer es exactamente lo mismo, pero ya no bajo consola, si no que en un JFrame, es decir, que cuando le de clic a un botón, muestre la misma respuesta de consola, pero en un TextBox o TextArea.

He estado tratando envanamente de conseguirlo pero, simplemente, no logro conseguirlo.

Código:

public class TestHerencia3 {      public static void main(String[]args){         ProductoCongelado nuggets = new ProductoCongelado("16-10-2016","L1603004");         ProductoFresco lechuga = new ProductoFresco("20-10-2016","L1610005");         ProductoRefrigerado jugo = new ProductoRefrigerado("25-10-2016","L1609006");         nuggets.setTemperaturaRecomendada(-18);         lechuga.setFechaEnvasado("03-10-2015");         lechuga.setPaisDeOrigen("Panamá");         jugo.setCodigoSupervisionAlimentaria("B#6745");         System.out.println("Producto Congelado: ");         nuggets.imprimirDatos();         System.out.println("Producto Fresco: ");         lechuga.imprimirDatos();         System.out.println("Producto Refrigerado: ");         jugo.imprimirDatos();     } 

Si es necesario todas las clases, me lo hacen saber.

Java: receber um arquivo de configurações e printar um automato

Eu estou fazendo um programinha que recebe um arquivo de texto com parametros de um automato não determinístico, a partir dele são criadas regras para esse automato, com ifs para onde deverá ir cada estado. Entanto no fim deverei montar um automato e printar toda a árvore dele. Como poderia fazer essa parte desde print? alguma ideia de que pelo que buscar?