import pygame
import time
from random import randint
from pygame.locals import *
from OpenGL.GLU import *
from OpenGL.GL import *

GS = 200
vg = []

for i in range(GS):
    for a in range(GS):
        temp_str = ()
        temp_str = temp_str + (i, 0, a)
        vg.append(temp_str)

edges_grid = []
for i in range (GS * GS):
    if i % GS == 0:
        edge = (i, i + GS - 1)
        edges_grid.append(edge)

for i in range (GS):
    edge = (i, ((GS * GS) - (GS - i)))

    edges_grid.append(edge)

def grid():
    glBegin(GL_LINES)

    for edge in edges_grid:
        for vertex in edge:
            glVertex3fv(vg[vertex])
            glColor3fv((255, 0, 0))

    glEnd()

def main():
    pygame.init()
    pygame.mouse.set_visible(False)
    display = (1920, 1080)
    screen = pygame.display.set_mode(display, DOUBLEBUF | pygame.OPENGLBLIT| pygame.FULLSCREEN)

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
    glLoadIdentity()
    gluPerspective(179, (display[0]/display[1]), 0, 100)

    time_start = time.time()
    timer = 0
    glTranslatef(-72, 8, -0.02)
    glRotatef(90.4, 1, 0, 0)

    while timer <= 35:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                quit()
            elif event.type == KEYDOWN:
                if event.key == K_ESCAPE:
                    pygame.quit()
                    return

        glRotatef(-0.0001, 0.01, 0, 0)
        glTranslatef(-0.04, 0, 0)

        timer = int(time.time() - time_start)

        if randint(1, 100) % 3 != 0:
            glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)

        grid()
        pygame.display.flip()
        pygame.time.wait(30)

main()