Neopixel coding help!

Hello!

I was hoping someone could help me. I am completely new to coding and using the Arduino IDE but I have bought and wired up my first project! I have 2x Adafruit GEMMA's and 2x 16 Neopixel rings (both wire individually not together), they are both wired up and working like in the diagram I have attached. I would like to code my lights like in the diagram! 3 pixels on, 2 pixels off, 3 pixels on, 2 pixels off, 3 pixels on and 3 pixels off and I would like 1 of my Neopixels to rotate clockwise and the 2nd one to rotate counterclockwise!

Thank you for your time,
Lizzy.

Here is a modified version of their example code that should meet your needs. Please read the code comments carefully. You can change the speed and direction with a couple simple changes.

// NeoPixel Ring simple sketch (c) 2013 Shae Erisson
// released under the GPLv3 license to match the rest of the AdaFruit NeoPixel library

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
  #include <avr/power.h>
#endif

// Which pin on the Arduino is connected to the NeoPixels?
// On a Trinket or Gemma we suggest changing this to 1
#define PIN            1

// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS      16

// When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.
// Note that for older NeoPixel strips you might need to change the third parameter--see the strandtest
// example for more information on possible values.
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

int delayval = 500; // Adjust me for speed, 500 = 1/2 second
int pinNum = 0;

void setup() {
  pixels.begin(); // This initializes the NeoPixel library.
}

void loop() {
  pinNum++;      //Change me to pinNum--; for reverse direction

  for(int i=0;i<NUMPIXELS;i++){
    pinNum++;       //Change me to pinNum--; for reverse direcction
    if(pinNum > 15){
      pinNum = 0;
    }
    if(i==0 | i==1 | i==2){
      // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
      pixels.setPixelColor(pinNum, pixels.Color(255,255,255)); // White
      pixels.show(); // This sends the updated pixel color to the hardware.
    }
    if(i==3 | i==4 | i==5){
      // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
      pixels.setPixelColor(pinNum, pixels.Color(0,0,0)); // Off
      pixels.show(); // This sends the updated pixel color to the hardware.
    }
    if(i==6 | i==7 | i==8){
      // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
      pixels.setPixelColor(pinNum, pixels.Color(255,255,255)); // White
      pixels.show(); // This sends the updated pixel color to the hardware.
    }
    if(i==9 | i==10){
      // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
      pixels.setPixelColor(pinNum, pixels.Color(0,0,0)); // Off
      pixels.show(); // This sends the updated pixel color to the hardware.
    }
    if(i==11 | i==12 | i==13){
      // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
      pixels.setPixelColor(pinNum, pixels.Color(255,255,255)); // White
      pixels.show(); // This sends the updated pixel color to the hardware.
    }
    if(i==14 | i==15){
      // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
      pixels.setPixelColor(pinNum, pixels.Color(0,0,0)); // Off
      pixels.show(); // This sends the updated pixel color to the hardware.
    }
  }
delay(delayval);
}

Thank you so much for getting back to me you've been incredibly helpful! The code is almost perfect however it spins around roughly once and then stops completely.

How can I make it spin continuously?