import psp2d
import string 
import random 

uno = psp2d.Image('1.png')
due = psp2d.Image('2.png')
tre = psp2d.Image('3.png')
quattro = psp2d.Image('4.png')
cinque = psp2d.Image('5.png')
font = psp2d.Font('font.png')

screen = psp2d.Screen()

nlettera = 0
lettere = ['A','B','C','D','E','F','G','H','I','L','M','N','O','P','Q','R','S',\
           'T','U','V','Z','Y','W','X','K']

nparola = [] # Parola "mascherata"

cf = open("conf.ini","r")
linee = cf.readlines()
splittata = string.split(linee[0])
lingua = splittata[2]

def init():
    global parola
    fl = open("dbimp.dat","r")
    linee = fl.readlines()
    linea = linee[random.randint(0,3500)]
    splittata = string.split(linea,",")
    if lingua == "1":
        parola = splittata[0].upper()
    elif lingua != "1":
        parola = splittata[1].upper()

    pos = 0
    for elemento in parola:
        if pos == 0:
            nparola.append(parola[0])
        elif pos == len(parola)-1:
            nparola.append(parola[len(parola)-1])
        elif elemento == " ":
            nparola.append(" ")
        else:
            nparola.append('-')
        pos += 1
    print parola

vite = 4
    
init()

def insert(lettera):
    global vite
    pos = 0
    sostituito = 0
    for elemento in parola:
        if elemento == lettera:
            nparola[pos] = lettera
            sostituito = 1
        pos += 1
    if sostituito == 0:
        vite -= 1

def tostring(lista):
    ''' Converto lista in stringa. '''
    string = ''
    for elemento in lista:
        string += elemento
    return string

oldpad = psp2d.Controller()

while True:
    pad = psp2d.Controller()

    if vite == 4:
        screen.blit(uno, 0, 0, uno.width, uno.height, 0, 0, True)
    if vite == 3:
        screen.blit(due, 0, 0, due.width, due.height, 0, 0, True)
    if vite == 2:
        screen.blit(tre, 0, 0, tre.width, tre.height, 0, 0, True)
    if vite == 1:
        screen.blit(quattro, 0, 0, quattro.width, quattro.height, 0, 0, True)
    if vite == 0:
        screen.blit(cinque, 0, 0, cinque.width, cinque.height, 0, 0, True)

    if vite != 0:
        font.drawText(screen, 125, 170, lettere[nlettera])
        if "-" in nparola:
            font.drawText(screen, 50, 70, tostring(nparola))
        
            if pad.left and not oldpad.left and nlettera != 0:
                nlettera -= 1 
            if pad.right and not oldpad.right and nlettera != 24:
                nlettera += 1

            if pad.cross and not oldpad.cross:
                insert(lettere[nlettera])
        elif not "-" in nparola:
            font.drawText(screen, 50, 70, tostring(nparola))
            font.drawText(screen, 70, 120, "HAI VINTO!")
            if pad.start and not oldpad.start:
                nparola = []
                init()
                vite = 4
    if vite == 0:
        font.drawText(screen, 50, 70, "HAI PERSO!")
        font.drawText(screen, 13, 120, "LA PAROLA ERA:")
        font.drawText(screen, 13, 160, parola)
        if pad.start and not oldpad.start:
            nparola = []
            init()
            vite = 4
        
    oldpad = pad
    screen.swap()
