Why does my program return the error "ArrayIndex Out Of Bounds Exception: 4"?

like this?

String blocked = "iA";
String inlava = "iB";
String nearsick = "iC";

String moverandom = "oA";
String movewest = "oB";
String moveeast = "oC";
String movenorth = "oD";
String movesouth = "oE";

String[] input = {blocked, inlava, nearsick};

String[] genome = new String[51];

float[] x = new float[51];
float[] y = new float[51];

boolean beingblocked = false;
String[] genpart = new String[204];

void setup() {
  fullScreen();
  for (int i= 0; i<=50; i++) {
    genome[i] = "i"+char(int(random(65, 67))) +"1" + "o"+char(int(random(65, 69))) +"1" + "i"+char(int(random(65, 67))) + "1" + "o"+char(int(random(65, 69)));
  }
  for (int i=0; i<204; i++) {
    int gi=0;
    genpart= split(genome[gi], '1');
    gi++;
    print(genpart[i] + " ");
  }
}

void draw() {
  if (genpart[0]==blocked || genpart[2]==blocked && genpart[1]== moverandom || genpart[3]==moverandom) {
    if (beingblocked) {
      x[0]= x[0]+(int(random(-1, 1)))*10;
    }
  }
}

because this did not work