case 31: { // Assimilate to plurality of neighborhood 48 // if locally myType < TrackBar count48HomeNeighbors(); count8HomeNeighbors(); // If CYAN plurality, then change me to CYAN if (num48HomeNeighborsOfType[CYAN] > num48HomeNeighborsOfType[MAGENTA] && num48HomeNeighborsOfType[CYAN] > num48HomeNeighborsOfType[YELLOW] && num48HomeNeighborsOfType[CYAN] > num48HomeNeighborsOfType[SILVER]) { if (myType != CYAN) changeMeTo(CYAN); // If my local neighbors are >= trackBar, change me back to what I was if (num8HomeNeighborsOfType[myType] >= trackBar) changeMeTo(myType); break; } // If MAGENTA plurality, then change me to MAGENTA if (num48HomeNeighborsOfType[MAGENTA] > num48HomeNeighborsOfType[CYAN] && num48HomeNeighborsOfType[MAGENTA] > num48HomeNeighborsOfType[YELLOW] && num48HomeNeighborsOfType[MAGENTA] > num48HomeNeighborsOfType[SILVER]) { if (myType != MAGENTA) changeMeTo(MAGENTA); // If my local neighbors are >= trackBar, change me back to what I was if (num8HomeNeighborsOfType[myType] >= trackBar) changeMeTo(myType); break; } // If YELLOW plurality, then change me to YELLOW if (num48HomeNeighborsOfType[YELLOW] > num48HomeNeighborsOfType[MAGENTA] && num48HomeNeighborsOfType[YELLOW] > num48HomeNeighborsOfType[CYAN] && num48HomeNeighborsOfType[YELLOW] > num48HomeNeighborsOfType[SILVER]) { if (myType != YELLOW) changeMeTo(YELLOW); // If my local neighbors are >= trackBar, change me back to what I was if (num8HomeNeighborsOfType[myType] >= trackBar) changeMeTo(myType); break; } // If SILVER plurality, then change me to SILVER if (num48HomeNeighborsOfType[SILVER] > num48HomeNeighborsOfType[MAGENTA] && num48HomeNeighborsOfType[SILVER] > num48HomeNeighborsOfType[YELLOW] && num48HomeNeighborsOfType[SILVER] > num48HomeNeighborsOfType[CYAN]) { if (myType != SILVER) changeMeTo(SILVER); // If my local neighbors are >= trackBar, change me back to what I was if (num8HomeNeighborsOfType[myType] >= trackBar) changeMeTo(myType); break; } // If NO plurality, then change me randomly changeMeTo(random(4) + 1); break; } case 32: { // Move if d24-Ring has more of you than TrackBar // and h24-Ring has less of you than TrackBar count24RingHomeNeighbors(); count24RingDestNeighbors(); if (num24RingDestNeighborsOfType[myType] >= trackBar && num24RingHomeNeighborsOfType[myType] < trackBar) moveAndRender(); break; } case 33: { // Move if d24-Ring has more of you than h24-Ring count24RingHomeNeighbors(); count24RingDestNeighbors(); if (num24RingDestNeighborsOfType[myType] > num24RingHomeNeighborsOfType[myType]) moveAndRender(); break; } case 34: { // Move if d24-Ring has more of you than h24-Ring // otherwise change randomly count24RingHomeNeighbors(); count24RingDestNeighbors(); if (num24RingDestNeighborsOfType[myType] > num24RingHomeNeighborsOfType[myType]) moveAndRender(); else changeMeTo(random(4) + 1); break; }