import pygame, random
from helpers import *

class ActivityGenerator(pygame.sprite.Sprite):
	def __init__(self,background_image):
		pygame.sprite.Sprite.__init__(self)
		self.screen = pygame.display.get_surface()
		self.area = self.screen.get_rect()
		self.background = background_image
		
		self.score = 0
		self.activity_count = 0
		self.correct_answer_count = 0
		
	def play(self,question,choices,correct_answer):
		#default play will ask the user to press a specific key to complete the activity
		correct_answer = correct_answer[0]
		answered_correctly = False
		activity_completed = False
		image,image_rect = load_image("australia.png")
		image_rect.center=(230,380)
		block,block_rect = load_image("block 1-12.png")
		block_rect.center=(80,280)
		block_array = [block]
		block_rect_array = [block_rect]
		block1,block1_rect = load_image("block 1-12.png")
		block1_rect.center=(180,280)
		block_array.append(block1)
		block_rect_array.append(block1_rect)
		block2,block2_rect = load_image("block 1-12.png")
		block2_rect.center=(280,280)
		block_array.append(block2)
		block_rect_array.append(block2_rect)
		block3,block3_rect = load_image("block 1-12.png")
		block3_rect.center=(380,280)
		block_array.append(block3)
		block_rect_array.append(block3_rect)
		block4,block4_rect = load_image("block 1-12.png")
		block4_rect.center=(80,380)
		block_array.append(block4)
		block_rect_array.append(block4_rect)
		block5,block5_rect = load_image("block 1-12.png")
		block5_rect.center=(180,380)
		block_array.append(block5)
		block_rect_array.append(block5_rect)
		block6,block6_rect = load_image("block 1-12.png")
		block6_rect.center=(280,380)
		block_array.append(block6)
		block_rect_array.append(block6_rect)
		block7,block7_rect = load_image("block 1-12.png")
		block7_rect.center=(380,380)
		block_array.append(block7)
		block_rect_array.append(block7_rect)
		block8,block8_rect = load_image("block 1-12.png")
		block8_rect.center=(80,480)
		block_array.append(block8)
		block_rect_array.append(block8_rect)
		block9,block9_rect = load_image("block 1-12.png")
		block9_rect.center=(180,480)
		block_array.append(block9)
		block_rect_array.append(block9_rect)
		block10,block10_rect = load_image("block 1-12.png")
		block10_rect.center=(280,480)
		block_array.append(block10)
		block_rect_array.append(block10_rect)
		block11,block11_rect = load_image("block 1-12.png")
		block11_rect.center=(380,480)
		block_array.append(block11)
		block_rect_array.append(block11_rect)
		
		font = pygame.font.Font(None,30)
		text = font.render(question,1,(0,0,0))
		textrect = text.get_rect()
		textrect.centerx = self.area.centerx
		textrect.top = 300
		self.screen.blit(text,textrect)
		letter = 'a'
		choices_top = 350
		for choice in choices:
			font = pygame.font.Font(None,30)
			text = font.render(letter +")"+ choice,1,(0,0,0))
			textrect = text.get_rect()
			textrect.left = 200
			textrect.top = choices_top
			self.screen.blit(text,textrect)
			
			letter = chr(ord(letter)+1)
			choices_top +=30

		#Initialize all of our counting variables
		count = 0
		max_count = 100
		index = 0
		
		while not activity_completed:
			for event in pygame.event.get():
				if event.type == pygame.QUIT:
					sys.exit()
				elif event.type == pygame.KEYDOWN:
					activity_completed = True
					if event.key == ord(correct_answer):
						answered_correctly = True		
		
		
			# Draw everything to the screen
			self.screen.blit(self.background, (0, 0))
			self.screen.blit(image,image_rect)

			i = index
			while i < 12:
				self.screen.blit(block_array[i], block_rect_array[i])
				i = i + 1
				
			count = count + 1
			if count == max_count:
				count = 0
				index = index + 1
				if index == 12:
					activity_completed = True
					
			font = pygame.font.Font(None,30)
			text = font.render(question,1,(0,0,0))
			textrect = text.get_rect()
			textrect.centerx = 750
			textrect.top = 500
			self.screen.blit(text,textrect)
			letter = 'a'
			choices_top = 530
			for choice in choices:
				font = pygame.font.Font(None,30)
				text = font.render(letter +")"+ choice,1,(0,0,0))
				textrect = text.get_rect()
				textrect.left = 700
				textrect.top = choices_top
				self.screen.blit(text,textrect)
				
				letter = chr(ord(letter)+1)
				choices_top +=30
				self.screen.blit(text, textrect)
			
			pygame.display.flip()

		self.activity_count += 1
		self.screen.blit(self.background,(0,0))
		self.screen.blit(image,image_rect)
		font = pygame.font.Font(None,100)
		if answered_correctly:
			text = font.render("You ARE a World Winner!!!",1,(0,0,0))
			self.correct_answer_count += 1
		else:
			text = font.render( ":( Sadly, You Lose. :(",1,(0,0,0))
		textrect = text.get_rect()
		textrect.center = (500,350)
		self.screen.blit(text,textrect)
		pygame.display.flip()
		while True:
			for event in pygame.event.get():
				if event.type == pygame.QUIT:
					sys.exit()
		
				

