'''
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 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
 


        count += 1

    

students = processFile(choose_file_to_open()) 
print students
rstudents = randomize(students)       
print rstudents
print
printGroups(rstudents)
