#!/usr/bin/python

import opc, time, random
#LED 341 not used

numLEDs = 987
client = opc.Client('localhost:7890')

sideRight = [[341,341,341,341,341,341,341,341,341,341,341,341,341,399,400,413,414,427,428,441,524,525,538,539,552,553,566,567,480,481,494,495,508,341,341,341,341,341,341,341,341,341,341],
			[341,341,341,341,341,341,341,341,341,341,375,386,387,398,401,412,415,426,429,440,523,526,537,540,551,554,565,468,479,482,493,496,507,509,341,341,341,341,341,341,341,341,341],
			[341,341,341,341,341,341,341,341,365,374,376,385,388,397,402,411,416,425,430,439,522,527,536,541,550,555,564,469,478,483,492,497,506,510,443,444,341,341,341,341,341,341,341],
			[341,341,341,341,341,356,357,364,366,373,377,384,389,396,403,410,417,424,431,438,521,528,535,542,549,556,563,470,477,484,491,498,505,511,442,445,452,453,341,341,341,341,341],
			[341,341,341,349,350,355,358,363,367,372,378,383,390,395,404,409,418,423,432,437,520,529,534,543,548,557,562,471,476,485,490,499,504,512,517,446,451,454,459,460,341,341,341],
			[341,344,345,348,351,354,359,362,368,371,379,382,391,394,405,408,419,422,433,436,519,530,533,544,547,558,561,472,475,486,489,500,503,513,516,447,450,455,458,461,464,465,341],
			[342,343,346,347,352,353,360,361,369,370,380,381,392,393,406,407,420,421,434,435,518,531,532,545,546,559,560,473,474,487,488,501,502,514,515,448,449,456,457,462,463,466,467]]
#43

sideLeft = [[341,341,341,341,341,341,341,341,341,341,320,333,334,60,47,46,74,73,72,71,70,69,68,67,66,65,64,63,62,61,229,341,341,341,341,341,341,341,341,341,341,341,341,341,341],
			[341,341,341,341,341,341,341,341,308,319,321,332,335,59,48,45,75,76,77,78,79,80,81,82,83,84,85,86,87,88,228,217,216,341,341,341,341,341,341,341,341,341,341,341,341],
			[341,341,341,341,341,341,298,307,309,318,322,331,336,58,49,44,102,101,100,99,98,97,96,95,94,93,92,91,90,89,227,218,215,206,205,196,341,341,341,341,341,341,341,341,341],
			[341,341,341,341,290,297,299,306,310,317,323,330,337,57,50,43,103,104,105,106,107,108,109,110,230,231,232,233,234,235,226,219,214,207,204,197,195,188,341,341,341,341,341,341,341],
			[341,341,284,289,291,296,300,305,311,316,324,329,338,56,51,42,249,248,247,246,245,244,243,242,241,240,239,238,237,236,225,220,213,208,203,198,194,189,187,182,341,341,341,341,341],
			[280,283,285,288,292,295,301,304,312,315,325,328,339,55,52,41,250,251,252,253,254,255,256,257,258,259,260,261,262,263,224,221,212,209,202,199,193,190,186,183,181,178,177,341,341],
			[281,282,286,287,293,294,302,303,313,314,326,327,340,54,53,40,277,276,275,274,273,272,271,270,269,268,267,266,265,264,223,222,211,210,201,200,192,191,185,184,180,179,176,175,174]]
#45
FrontRight=[[695,679,680,681,682,683,684,685,686,399,400,413,414,427,428,441,524,525,538,539,552,553,566,567,480,481,494,495,508,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341],
            [719,720,721,722,723,724,725,726,375,386,387,398,401,412,415,426,429,440,523,526,537,540,551,554,565,468,479,482,493,496,507,509,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341],
            [761,762,763,764,765,766,365,374,376,385,388,397,402,411,416,425,430,439,522,527,536,541,550,555,564,469,478,483,492,497,506,510,443,444,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341],
            [771,770,769,768,767,356,357,364,366,373,377,384,389,396,403,410,417,424,431,438,521,528,535,542,549,556,563,470,477,484,491,498,505,511,442,445,452,453,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341],
            [842,843,844,845,846,349,350,355,358,363,367,372,378,383,390,395,404,409,418,423,432,437,520,529,534,543,548,557,562,471,476,485,490,499,504,512,517,446,451,454,459,460,341,341,341,341,341,341,341,341,341,341,341,341,341],
            [918,919,920,921,922,923,924,925,926,344,345,348,351,354,359,362,368,371,379,382,391,394,405,408,419,422,433,436,519,530,533,544,547,558,561,472,475,486,489,500,503,513,516,447,450,455,458,461,464,465,341,341,341,341,341],
            [936,958,974,973,972,971,970,969,968,967,342,343,346,347,352,353,360,361,369,370,380,381,392,393,406,407,420,421,434,435,518,531,532,545,546,559,560,473,474,487,488,501,502,514,515,448,449,456,457,462,463,466,467 ,341,341]]

FrontLeft=[[698,674,673,672,671,670,669,668,667,229,61,62,63,64,65,66,67,68,69,70,71,72,73,74,46,47,60,334,333,320,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341],
           [714,713,712,711,710,709,708,707,332,321,216,217,228,88,87,86,85,84,82,83,81,80,79,78,77,76,75,45,48,59,335,319,308,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341],
           [752,751,750,749,748,747,196,206,205,215,218,227,89,90,91,92,93,94,95,96,97,98,99,100,101,102,44,49,58,336,331,322,318,309,307,298,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341],
           [791,790,789,788,787,197,188,195,204,207,214,219,226,235,234,233,232,231,230,110,109,108,107,106,105,104,103,43,50,57,337,330,323,317,310,306,299,297,290,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341,341],
           [861,862,863,864,865,866,182,187,189,194,198,203,208,213,220,225,236,237,238,239,240,241,242,243,244,245,246,247,248,249,42,51,56,338,329,324,316,311,305,300,296,291,289,284,341,341,341,341,341,341,341,341,341,341,341],
           [915,914,913,912,911,910,909,908,907,177,178,181,183,186,190,193,199,202,209,212,221,224,263,262,261,260,259,258,257,256,255,254,253,252,251,250,41,52,55,339,328,325,315,312,304,301,295,292,288,285,283,280,341,341,341],
           [937,955,979,980,981,982,983,984,985,986,174,175,176,179,180,184,185,191,192,200,201,210,211,222,223,264,265,266,267,268,269,270,271,272,273,274,275,276,277,40,53,54,340,327,326,314,313,303,302,294,293,287,286,282,281]]
#55

front = [[667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686],
                        [706,705,704,703,702,701,700,699,698,697,696,695,694,693,692,691,690,689,688,687],
                        [707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726],
                        [746,745,744,743,742,741,740,739,738,737,736,735,734,733,732,731,730,729,728,727],
                        [747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766],
                        [786,785,784,783,782,781,780,779,778,777,776,775,774,773,772,771,770,769,768,767],
                        [787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806],
                        [826,825,824,823,822,821,820,819,818,817,816,815,814,813,812,811,810,809,808,807],
                        [827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846],
                        [866,865,864,863,862,861,860,859,858,857,856,855,854,853,852,851,850,849,848,847],
                        [867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886],
                        [906,905,904,903,902,901,900,899,898,897,896,895,894,893,892,891,890,889,888,887],
                        [907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926],
                        [946,945,944,943,942,941,940,939,938,937,936,935,934,933,932,931,930,929,928,927],
                        [947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966],
                        [986,985,984,983,982,981,980,979,978,977,976,975,974,973,972,971,970,969,968,967]]
trinket = [[796,797,817,816,838,854,775,759,778,754,835,859],
           [796,797,817,816,815,814,776,757,795,794,836,857],
           [796,797,817,816,798,799,777,756,818,819,837,856]]
hearts = [782,791,822,741,752,781,792,821,832,861,713,740,753,780,793,820,833,860,873,900,674,699,714,739,754,779,794,819,834,859,874,899,914,675,698,715,738,755,778,795,818,835,858,875,898,915,938,716,737,756,777,796,817,836,857,876,897,916,937,956,757,776,797,816,837,856,877,896,917,936,957,976,758,775,798,815,838,855,878,895,918,935,958,975,719,734,759,774,799,814,839,854,879,894,919,934,959,680,693,720,6733,760,773,800,813,840,853,880,893,920,933,681,692,721,732,761,772,801,812,841,852,881,892,921,722,731,762,771,802,811,842,851,882,891,730,763,770,803,8810,843,850,769,804,809]
FrontCircle = [697,696,718,734,760,772,801,812,841,853,879,895,917,916,898,874,860,832,821,781,792,753,739,739,715]
FrontSparkle = [907,889,730,705,711,960,684,749,851,948,685,827,800,943,671,883,675,910,805,785,963,744,704,880,700,986,730,784,945,728,677,784,965,908,889,750,966]

widthRight = len(sideRight[1])
widthLeft = len(sideLeft[1])
clearall = [ (0, 0, 0)] * numLEDs




row1 = [320,333,334,60,47,46,74,73,72,71,70,69,68,67,66,65,64,63,62,61,229,399,400,413,414,427,428,441,524,525,538,539,552,553,566,567,480,481,494,495,508]
row2 = [308,319,321,332,335,59,48,45,75,76,77,78,79,80,81,82,83,84,85,86,87,88,228,217,216,375,386,387,398,401,412,415,426,429,440,523,526,537,540,551,554,565,468,479,482,493,496,507,509]
row3 = [298,307,309,318,322,331,336,58,49,44,102,101,100,99,98,97,96,95,94,93,92,91,90,89,227,218,215,206,205,196,365,374,376,385,388,397,402,411,416,425,430,439,522,527,536,541,550,555,564,469,478,483,492,497,506,510,443,444]
row4 = [290,297,299,306,310,317,323,330,337,57,50,43,103,104,105,106,107,108,109,110,230,231,232,233,234,235,226,219,214,207,204,197,195,188,356,357,364,366,373,377,384,389,396,403,410,417,424,431,438,521,528,535,542,549,556,563,470,477,484,491,498,505,511,442,445,452,453]
row5 = [284,289,291,296,300,305,311,316,324,329,338,56,51,42,249,248,247,246,245,244,243,242,241,240,239,238,237,236,225,220,213,208,203,198,194,189,187,182,349,350,355,358,363,367,372,378,383,390,395,404,409,418,423,432,437,520,529,534,543,548,557,562,471,476,485,490,499,504,512,517,446,451,454,459,460]
row6 = [280,283,285,288,292,295,301,304,312,315,325,328,339,55,52,41,250,251,252,253,254,255,256,257,258,259,260,261,262,263,224,221,212,209,202,199,193,190,186,183,181,178,177,344,345,348,351,354,359,362,368,371,379,382,391,394,405,408,419,422,433,436,519,530,533,544,547,558,561,472,475,486,489,500,503,513,516,447,450,455,458,461,464,465]
row7 = [281,282,286,287,293,294,302,303,313,314,326,327,340,54,53,40,277,276,275,274,273,272,271,270,269,268,267,266,265,264,223,222,211,210,201,200,192,191,185,184,180,179,176,175,174,342,343,346,347,352,353,360,361,369,370,380,381,392,393,406,407,420,421,434,435,518,531,532,545,546,559,560,473,474,487,488,501,502,514,515,448,449,456,457,462,463,466,467]
GD1 = [332,335,59,331,330,329,328,339,55,56,45,44,43,42,41,250,77,100,105,247,252,253,254,255,244,108,97,80,79,82,95,110,242,257,258,240,230,93,83,91,233,238,261,87,237,89,235,236,263,217,218,219,220,221,212,209,426,430,431,423,432,433,523,522,521,520,519,527,535,543,547,548,549,550,551,468,565,563,562,561,472,475,493,492,491,490,289,496,507,509,498,500,503]
GD2 = [397,396,395,394,401,411,410,409,405,425,424,423,422,429,439,431,437,436,526,527,528,529,530,536,542,548,558,557,556,555,554,482,479,468,469,470,471,472,475,486,509,507,496,497,498,505,499,500,503,513]
track1 = [137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,123,124,125,126,127,128,129,130,131,132,133,134,135,136,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,278,279,111,112,113,114,115,116,117,118,119,120,121,122]              
track1 = list(reversed(track1))
track2 = [568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,666,665,664,663,662,661,660,659,658,657,656,655,654,653,652,651,650,649,648,647,646,645,644,643,642,641,640,639,638,637,636,635,634,633,632,631,630,629,628,627,626,625,624,623,622,621,620,619,618,617]                

pixels = [ (0,0,0) ] * numLEDs
def vertLines():
	temp = clearall[:]

	client.put_pixels(temp)
	
	while True:
		color = random.randint(1,255)

		client.put_pixels(clearall)

		for i in range(7):
			for j in range(widthRight):
				temp[sideRight[i][j]] = wheel(color)
				color = color % 255
			for j in range(widthLeft):
				temp[sideLeft[i][j]] = wheel(color)
				color = color % 255
			client.put_pixels(temp)
			time.sleep(.1)
			temp = clearall[:]


def tank2(loopcount):
        
        z = 0
        pixels = [ (0,0,0) ] * numLEDs
        color  = random.randint(33, 255)
        for i in range(loopcount):
                
                
                for a in range(len(GD1)):
                      pixels[GD1[a]] = wheel(i)

                for a in range(len(GD2)):
                      pixels[GD2[a]] = wheel(i)
                for q in range(len(track1)):
                    if q%5==0:
                      pixels[track1[q - z]] = wheel(color)
                      pixels[track1[q - (z - 1)]] = wheel(color - 20)
                for q in range(len(track2)):
                    if q%5==0:
                      pixels[track2[q - z]] = wheel(color)
                      pixels[track2[q - (z-1)]] = wheel(color-20)
                      pixels[983] = wheel(color)
                client.put_pixels(pixels)
                time.sleep(.1)
                z += 1
                if z > 4:
                    z = 0
                
               

                color += 1
                if color > 255:
                    color = 20


def tank3(loopcount):
    print loopcount
    z = 0
    p = 0
    n = 0
    j  = 0
    b = 0
    direction1 = 1
    direction2 = 1
    color4 = random.randint(0,255)
    color3 = 0
    color = random.randint(33, 255)
    for i in range(loopcount):

        pixels = [(0, 0, 0)] * numLEDs
        for k in range(0, 16):
            for u in range(20):
                if k == p:
                    pixels[front[k][u]] = wheel(color3)

        for k in range(7):
            for u in range(45):
                if n == k:
                    pixels[sideLeft[k][u]] = wheel(color3)
        for k in range(7):
            for u in range(43):
                if n == k:
                    pixels[sideRight[k][u]] = wheel(color3)
        for k in range(45):
                if j == k:
                    pixels[sideLeft[2][k]] = wheel(color4)
        for k in range(43):
                if b == k:
                    pixels[sideRight[2][k]] = wheel(color4)

        for q in range(len(track1)):
            if q % 5 == 0:
                pixels[track1[q - z]] = wheel(color)
                pixels[track1[q - (z - 1)]] = wheel(color - 20)
        for q in range(len(track2)):
            if q % 5 == 0:
                pixels[track2[q - z]] = wheel(color)
                pixels[track2[q - (z - 1)]] = wheel(color - 20)

        client.put_pixels(pixels)
        time.sleep(.1)
        z += 1
        if z > 4:
            z = 0
        p += 1
        if p > 15:
            p = 0
        n += 1
        if n > 7:
            n = 0
        j += direction1
        if j > 44:
            direction1 = -1
        elif j == 0:
            direction1 = 1
        b += direction2
        if b > 43:
            direction2 = -1
        elif b == 0:
            direction2 = 1
def pewpew(loopcount):
    pew = [333,332,331,330,329,328,327,334,338,60,57,48,49,50,73,76,101,104,248,251,276,72,71,70,105,106,275,274,273,68,95,241,268,232,239,266,237,89,229,339,398,397,396,395,394,393,400,404,413,410,415,416,417,441,440,439,438,437,436,435,524,521,518,525,528,531,538,532,552,555,562,472,473,477,476,486,487,490,497,508]
    eyeoutline = [671,703,709,745,748,785,788,825,828,865,868,905,908,944,950,982,981,953,939,915,898,875,858,835,818,795,778,755,738,714,700,672,681,693,719,735,758,775,798,815,838,855,878,895,918,934,960,972,971,963,929,925,888,885,848,845,808,805,768,765,728,724,690,682]
    eyemovement = [[791,792,822,821,801,802,812,811],    #middle
                    [790,823,791,822,800,813,801,812],  #half left
                    [789,824,823,790,799,814,800,813],  #left
                    [792,793,821,820,802,811,803,810], #half right
                    [793,820,794,819,803,810,804,809]]  #right
    eyeball = [744,749,784,789,824,829,864,869,904,909,710,743,750,783,790,823,830,863,870,903,943,910,702,711,742,751,782,791,822,831,862,871,902,911,942,951,701,712,741,752,781,792,821,832,861,872,901,912,941,952,713,740,753,780,793,820,833,860,873,900,913,940,739,754,779,794,819,834,859,874,899,914,734,759,774,799,814,839,854,879,894,919,720,733,760,773,800,813,840,853,880,893,920,933,692,721,732,761,772,801,812,841,852,881,892,921,932,961,691,722,731,762,771,802,811,842,851,882,891,922,931,962,723,730,763,770,803,810,843,850,883,890,923,930,729,764,769,804,809,844,849,884,889,924]
    blink = [[341,341,702,701,341,341,341,341,691,692,341,341],
             [341,710,711,712,713,341,341,720,721,722,723,341],
             [744,743,742,741,740,739,734,733,732,731,730,729],
             [749,750,751,752,753,754,759,760,761,762,763,764],
             [784,783,782,781,780,779,774,773,772,771,770,769],
             [789,790,791,792,793,794,799,800,801,802,803,804],
             [824,823,822,821,820,819,814,813,812,811,810,809],
             [829,830,831,832,833,834,839,840,841,842,843,844],
             [864,863,862,861,860,859,854,853,852,851,850,849],
             [869,870,871,872,873,874,879,880,881,882,883,884],
             [904,903,902,901,900,899,894,893,892,891,890,889],
             [909,910,911,912,913,914,919,920,921,922,923,924],
             [341,943,942,941,940,933,932,931,930,341,341,341],
             [341,341,951,952,341,341,341,341,961,962,341,341]]
    colors = [random.randint(20,255),random.randint(0,255),random.randint(0,150),random.randint(150,255),random.randint(0,255),random.randint(0,255)]
    z = 0
    bullet1 = 43
    bullet2 = random.randint(0,43)
    bullet3 = 0
    bullet4 = random.randint(0,43)
    n = 0
    o = 4
    p = 0
    t = 4
    eyelid = 0
    direction = 1
    for stop in range(loopcount):

        for i in range(1000):
            pixels = [(0, 0, 0)] * numLEDs
            for a in range(45):
                if bullet4 == a:
                      pixels[sideLeft[n][a]] = wheel(colors[5])

            for a in range(45):

                if bullet1 == a:
                      pixels[sideLeft[o][a]] = wheel(colors[2])

            for a in range(43):
                if bullet2 == a:
                      pixels[sideRight[p][a]] = wheel(colors[2])

            for a in range(43):
                if bullet3 == a:
                      pixels[sideRight[t][a]] = wheel(colors[5])

            if i % 10 == 0:
                for a in range(len(pew)):
                    pixels[pew[a]] = [0, 0, 0]
            else:
                for a in range(len(pew)):
                    pixels[pew[a]] = wheel(colors[1])
            for i2 in range(len(eyeoutline)):
                 pixels[eyeoutline[i2]] = wheel(colors[1])

            for a in range(len(eyeball)):
                pixels[eyeball[a]] = wheel(colors[3])
            for i2 in range(8):
                pixels[eyemovement[0][i2]] = wheel(colors[4])



            if (((i > 200) and (i < 220)) or (((i > 400) and (i < 420)))):
                for a in range(len(eyeball)):
                    pixels[eyeball[a]] = wheel(colors[3])
                for i2 in range(8):
                    pixels[eyemovement[1][i2]] = wheel(colors[4])


            elif ((i > 218) and ( i < 400)):
                for a in range(len(eyeball)):
                    pixels[eyeball[a]] = wheel(colors[3])
                for i2 in range(8):
                     pixels[eyemovement[2][i2]] = wheel(colors[4])
            elif (((i > 600) and (i < 620)) or (((i > 800) and (i < 820)))):
                for a in range(len(eyeball)):
                    pixels[eyeball[a]] = wheel(colors[3])
                for i2 in range(8):
                     pixels[eyemovement[3][i2]] = wheel(colors[4])
            elif ((i > 618) and ( i < 800)):
                for a in range(len(eyeball)):
                    pixels[eyeball[a]] = wheel(colors[3])
                for i2 in range(8):
                     pixels[eyemovement[4][i2]] = wheel(colors[4])
            elif ((i > 100) and ( i < 125)):

                for i2 in range(12):
                    for i3 in range(eyelid):
                        pixels[blink[i3][i2]] = [0, 0, 0]


                eyelid += direction
                if eyelid > 11:
                    direction = -1
                if eyelid <= 0:
                    direction = 1

            elif ((i > 500) and ( i < 525)):

                for i2 in range(12):
                    for i3 in range(eyelid):
                        pixels[blink[i3][i2]] = [0, 0, 0]
                eyelid += direction

                if eyelid > 11:
                    direction = -1
                if eyelid <= 0:
                    direction = 1
            elif ((i > 900) and ( i < 925)):

                for i2 in range(12):
                    for i3 in range(eyelid):
                        pixels[blink[i3][i2]] = [0, 0, 0]
                eyelid += direction

                if eyelid > 11:
                    direction = -1
                if eyelid <= 0:
                    direction = 1




            for q in range(len(track1)):
                if q % 5 == 0:
                    pixels[track1[q - z]] = wheel(colors[0])
                    pixels[track1[q - (z - 1)]] = wheel(colors[0] - 20)
            for q in range(len(track2)):
                if q % 5 == 0:
                    pixels[track2[q - z]] = wheel(colors[0])
                    pixels[track2[q - (z - 1)]] = wheel(colors[0] - 20)
            client.put_pixels(pixels)
            time.sleep(.06)
            z += 1
            if z > 4:
                z = 0
            for i2 in range(len(colors)):
                colors[i2] += 1
                if colors[i2] > 255:
                    colors[i2] = 0
            bullet4 += -1
            if bullet4 == 0:
                bullet4 = 45
                n = random.randint(0,6)
            bullet1 += -1
            if bullet1 == 0:
                bullet1 = 45
                o = random.randint(0,6)
            bullet2 +=1
            if bullet2 == 43:
                bullet2 = 0
                p = random.randint(0,6)
            bullet3 +=1
            if bullet3 > 43:
                bullet3 = 0
                t = random.randint(0,6)



def tank4(loopcount):
    print loopcount
    z = 0
    p = 0
    n = 0
    j  = 0
    b = 0
    c = 0
    g = 0
    doonce = 0
    flare=[0,0,0,0,0,0,0]
    color3 = random.randint(0,255)
    direction1 = 1
    direction2 = 1
    color5 = random.randint(20, 255)
    color4 = random.randint(20,255)
    color3 = random.randint(0,255)
    color = random.randint(33, 255)
    for i in range(loopcount):

        pixels = [(0, 0, 0)] * numLEDs

        for k in range(25):
                pixels[FrontCircle[k]] = wheel(color)
        for k in range(25):
            if c == k:
                pixels[FrontCircle[c]] = wheel(color3)

        for k in range(3):
                if k == n:
                    for t in range(12):
                         pixels[trinket[k][t]] = wheel(color4)

        for k in range(7):
            for y in range(55):
                if flare[k] == y:
                    pixels[FrontRight[k][y]] = wheel(color5)
                    pixels[FrontRight[k][y-1]] = wheel(color5-5)
                    pixels[FrontRight[k][y-2]] = wheel(color5-5)
                    pixels[FrontRight[k][y-3]] = wheel(color5-10)
                    pixels[FrontRight[k][y-4]] = wheel(color5-10)
                    pixels[FrontRight[k][y-5]] = wheel(color5-15)
                    pixels[FrontRight[k][y-6]] = wheel(color5-15)
                    pixels[FrontRight[k][y-7]] = wheel(color5-20)
                    pixels[FrontRight[k][y-8]] = wheel(color5-20)
        for k in range(7):
            for y in range(55):
                if flare[k] == y:
                    pixels[FrontLeft[k][y]] = wheel(color5)
                    pixels[FrontLeft[k][y-1]] = wheel(color5-5)
                    pixels[FrontLeft[k][y-2]] = wheel(color5-5)
                    pixels[FrontLeft[k][y-3]] = wheel(color5-10)
                    pixels[FrontLeft[k][y-4]] = wheel(color5-10)
                    pixels[FrontLeft[k][y-5]] = wheel(color5-15)
                    pixels[FrontLeft[k][y-6]] = wheel(color5-15)
                    pixels[FrontLeft[k][y-7]] = wheel(color5-20)
                    pixels[FrontLeft[k][y-8]] = wheel(color5-20)


        for q in range(len(track1)):
            if q % 5 == 0:
                pixels[track1[q - z]] = wheel(color)
                pixels[track1[q - (z - 1)]] = wheel(color - 20)
        for q in range(len(track2)):
            if q % 5 == 0:
                pixels[track2[q - z]] = wheel(color)
                pixels[track2[q - (z - 1)]] = wheel(color - 20)

        client.put_pixels(pixels)
        time.sleep(.1)
        z += 1
        if z > 4:
            z = 0
        p += 1
        if p > 15:
            p = 0
        n += 1
        if n > 3:
            n = 0
        j += direction1
        if j > 44:
            direction1 = -1
        elif j == 0:
            direction1 = 1
        b += direction2
        if b > 43:
            direction2 = -1
        elif b == 0:
            direction2 = 1
        color4 += 1
        if color4 > 255:
            color4 = 20
        color5 += 1
        if color5 > 255:
            color5 = 20
        c +=1
        if c > 21:
            c = 0
        g +=1
        if g > 37:
            g = 0
        for x in range(7):
            flare[x] += 1
            if flare[x] > 55:
                flare[x] = 0
        if ((i > 800 ) and (doonce == 0)):
            flare = [0, 16, 32, 8, 24, 42, 0, 0, 16, 32, 8, 24, 42, 0]
            doonce = 1


def tank1(loopcount):
        print loopcount
        z = 0
        p = 0
        color  = random.randint(33, 255)
        for i in range(loopcount):
                
                pixels = [ (0,0,0) ] * numLEDs
                for k in range(0,16):
                        for u in range(20):
                                if k == p:
                                         pixels[front[k][u]] = wheel(i)

                p += 1
                if p > 15:
                        p = 0
                for a in range(len(row1)):
                      pixels[row1[a]] = wheel(i)
                for q in range(len(track1)):
                    if q%5==0:
                      pixels[track1[q - z]] = wheel(color)
                      pixels[track1[q - (z - 1)]] = wheel(color - 20)
                for q in range(len(track2)):
                    if q%5==0:
                      pixels[track2[q - z]] = wheel(color)
                      pixels[track2[q - (z-1)]] = wheel(color-20)

                client.put_pixels(pixels)
                time.sleep(.1)
                z += 1
                if z > 4:
                    z = 0
                
               
                pixels = [ (0,0,0) ] * numLEDs
                for k in range(0,16):
                        for u in range(20):
                                if k == p:
                                         pixels[front[k][u]] = wheel(i)

                p += 1
                if p > 15:
                        p = 0
                for a in range(len(row2)):
                      pixels[row2[a]] = wheel(i)
                for q in range(len(track1)):
                    if q%5==0:
                      pixels[track1[q - z]] = wheel(color)
                      pixels[track1[q - (z- 1)]] = wheel(color-20)      
                for q in range(len(track2)):
                     if q%5==0:
                      pixels[track2[q - z]] = wheel(color)
                      pixels[track2[q - (z-1)]] = wheel(color-20)
                client.put_pixels(pixels)
                time.sleep(.1)
                z += 1
                if z > 4:
                    z = 0


                
                pixels = [ (0,0,0) ] * numLEDs
                for k in range(0,16):
                        for u in range(20):
                                if k == p:
                                         pixels[front[k][u]] = wheel(i)

                p += 1
                if p > 15:
                        p = 0
                for a in range(len(row3)):
                      pixels[row3[a]] = wheel(i)
                for q in range(len(track1)):
                    if q%5==0:
                      pixels[track1[q - (z- 1)]] = wheel(color-20)
                      pixels[track1[q - z]] = wheel(color)
                for q in range(len(track2)):
                    if q%5==0:
                      pixels[track2[q - z]] = wheel(color)
                      pixels[track2[q - (z-1)]] = wheel(color-20)
                client.put_pixels(pixels)
                time.sleep(.1)
                z += 1
                if z > 4:
                    z = 0
                
                

                pixels = [ (0,0,0) ] * numLEDs
                for k in range(0,16):
                        for u in range(20):
                                if k == p:
                                         pixels[front[k][u]] = wheel(i)

                p += 1
                if p > 15:
                        p = 0
                for a in range(len(row4)):
                      pixels[row4[a]] = wheel(i)
                for q in range(len(track1)):
                    if q%5==0:
                      pixels[track1[q - z]] = wheel(color)
                      pixels[track1[q - (z- 1)]] = wheel(color-20)       
                for q in range(len(track2)):
                    if q%5==0:
                      pixels[track2[q - z]] = wheel(color)
                      pixels[track2[q - (z-1)]] = wheel(color-20)

                client.put_pixels(pixels)
                time.sleep(.1)
                z += 1
                if z > 4:
                    z = 0
                
                
                

                pixels = [ (0,0,0) ] * numLEDs
                for k in range(0,16):
                        for u in range(20):
                                if k == p:
                                         pixels[front[k][u]] = wheel(i)

                p += 1
                if p > 15:
                        p = 0
                for a in range(len(row5)):
                      pixels[row5[a]] = wheel(i)
                for q in range(len(track1)):
                    if q%5==0:
                      pixels[track1[q - z]] = wheel(color)
                      pixels[track1[q - (z- 1)]] = wheel(color-20)
                for q in range(len(track2)):
                    if q%5==0:
                      pixels[track2[q - z]] = wheel(color)
                      pixels[track2[q - (z-1)]] = wheel(color-20)
                      
                client.put_pixels(pixels)
                time.sleep(.1)
                z += 1
                if z > 4:
                    z = 0
                
                
               

                pixels = [ (0,0,0) ] * numLEDs
                for k in range(0,16):
                        for u in range(20):
                                if k == p:
                                         pixels[front[k][u]] = wheel(i)

                p += 1
                if p > 15:
                        p = 0
                for a in range(len(row6)):
                      pixels[row6[a]] = wheel(i)
                for q in range(len(track1)):
                    if q%5==0:
                      pixels[track1[q - z]] = wheel(color)
                      pixels[track1[q - (z- 1)]] = wheel(color-20)
                for q in range(len(track2)):
                    if q%5==0:
                      pixels[track2[q - z]] = wheel(color)
                      pixels[track2[q - (z-1)]] = wheel(color-20)
                client.put_pixels(pixels)
                time.sleep(.1)
                z += 1
                if z > 4:
                    z = 0
                
                
                

                pixels = [ (0,0,0) ] * numLEDs
                for k in range(0,16):
                        for u in range(20):
                                if k == p:
                                         pixels[front[k][u]] = wheel(i)

                p += 1
                if p > 15:
                        p = 0
                for a in range(len(row7)):
                      pixels[row7[a]] = wheel(i)
                for q in range(len(track1)):
                    if q%5==0:
                      pixels[track1[q - z]] = wheel(color)
                      pixels[track1[q - (z- 1)]] = wheel(color-20)
                for q in range(len(track2)):
                    if q%5==0:
                      pixels[track2[q - z]] = wheel(color)
                      pixels[track2[q - z]] = wheel(color)       
                client.put_pixels(pixels)
                time.sleep(.1)
                z += 1
                if z > 4:
                    z = 0
                color += 1
                if color > 255:
                    color = 20
                


def track(color,z):

        pixels = [ (0,0,0) ] * numLEDs
        for q in range(len(track1)):
                if q%5==0:
                        pixels[track1[q - z]] = wheel(color)
        for q in range(len(track2)):
                if q%5==0:
                        pixels[track2[q - z]] = wheel(color)
        client.put_pixels(pixels)
        time.sleep(1)
        z += 1
        if z > 5:
                z = 0
        return z
    

        
def wheel(WheelPos):
        if WheelPos < 85:
		color =  ((WheelPos * 3), (255 - WheelPos * 3 ), 0)
		return color
        else:
                if WheelPos < 170:
                        WheelPos -= 85
                        color =  ((255-WheelPos * 3), 0, (WheelPos * 3))
			return color
                else:
                        WheelPos -= 170
			color = (0, (WheelPos *3), (255 - WheelPos * 3))
			return color


for i in range(0,10000):

        pewpew(2)
        tank4(1500)
        tank3(500)

        tank1(70)


