'''
Created on Oct 5, 2011, Modified Oct 20, 2014

@author: rodger
'''
import os
import tkFileDialog
import random

    
def choose_file_to_open():
    """
    prompt for existing file, return the file (open for reading)
    """
    file = tkFileDialog.askopenfile(title="choose a file", initialdir=os.getcwd())
    return file

def processFile(file):
    '''
    process the lines in a file (which has one name per line),
    return a list of names
    '''
    #TODO:
    '''
    lines = []
    for line in file:
        lines.append(line.strip())
    return lines
    '''
    return [line.strip() for line in file]

    
    
    
    return 
    
def randomize(students):
    '''
    shuffle the students in the list and return this new list
    '''
    #TODO:
    for num in range(0, len(students)):
        randomPosition = random.randint(0,len(students)-1)
        # swap the students in positions num and randomPosition
        #THESE TWO LINES BELOW do NOT SWAP
        '''
        students[num] = students[randomPosition]
        students[randomPosition] = students[num]
        '''
        # here is the correct way to swap two elements in a list
        temp = students[num]
        students[num] = students[randomPosition]
        students[randomPosition] = temp
    return students        


def randomize2(students):       
    randomstuds = []
    copystudents = students[:]
    for stud in copystudents:
        print "length inside", len(students)
        ind = random.randint(0, len(students)-1)
        randomstuds.append(students[ind])
        students.pop(ind)
    return randomstuds


def printGroups(students):
    ''' print the students 3 per group with Group number starting w/1 '''
    count = 1
    print "Group 1:"
    for stud in students:
        print stud
        #TODO: add code to print 3 per group
        if count %3 == 0:
            print
            print "Group " + str(count/3 + 1) + ":"
        count += 1

    

students = processFile(choose_file_to_open()) 
print "students", students
print "length", len(students)
#rstudents = randomize(students) 
rstudents2 = randomize2(students)     
#print "rstudents" , rstudents
#print "students", students
print "rstudents2", rstudents2
print "length", len(rstudents2)

print
printGroups(rstudents2)
