missive.py

Created by kbdechez-lidl

Created on February 02, 2023

4.77 KB


from math import *      #
from kandinsky import * #
from ion import *       #
from time import *      #
from random import *    #
#########################
CONSONNES = ["B", "C", "D", "F", "G", "H", "J", "K", "L", "M", "N", "P", "Q", "R", "S", "T", "V", "W", "X", "Z"]
VOYELLES = ["A","E","I","O","U","Y"]
joueurs = [["Joueur 1",0,"blue"],["Joueur 2",0,"red"],["Joueur 3",0,"yellow"],["Joueur 4",0,"green"]]
def jeu(joueurs,temps):
    while True:
        draw_string("Tirage en cours...",65,90)
        tirage=tiragelettres()
        draw_string("[OK] pour devoiler ",65,90)
        while True:
            if keydown(KEY_OK)==True:
                sleep(0.1)
                draw_string("                   ",65,90)
                listetirage=""
                for i in range(10):
                    listetirage=tirage[i]+","+listetirage
                draw_string(listetirage[:-1],65,90)
                print(timer(temps))
                sleep(0.5)
                draw_string("[OK] pour continuer    ",60,120)
                while True:
                    if keydown(KEY_OK)==True:
                        sleep(0.1)
                        draw_string("                   ",60,120)
                        draw_string(listetirage[:-1],65,90)
                        joueurs=comptepoints(joueurs)
                        break
                print(score(joueurs))
                sleep(0.1)
                while True:
                    if keydown(KEY_OK)==True:
                        sleep(0.1)
                        draw_string("                   ",70,120)
                        return joueurs
def score(joueurs):
    fill_rect(0,0,400,300,color(255,255,255))
    h=10
    draw_string("[OK] pour continuer    ",70,120)
    for i in range(len(joueurs)):
        draw_string(joueurs[i][0]+":"+str(joueurs[i][1]),100,h)
        h=h+20             
def clavierchiffre(joueurs,lim1,lim2):
    draw_string("[+/-] pour changer les nombres",10,50)
    draw_string("[OK] pour valider",80,70)
    compte=0
    while True:
        if joueurs=="":
            draw_string("Joueurs:"+str(compte)+" ",110,120)
        elif joueurs=="temps":
            draw_string("Temps:"+str(compte)+" ",110,120)
        else:
            draw_string(joueurs+":"+str(compte)+" ",110,120)
        if compte>lim1:
            compte=lim2
        if compte<lim2:
            compte=lim1
        if keydown(KEY_PLUS)==True:
            compte=compte+1
            sleep(0.1)
        if keydown(KEY_MINUS)==True:
            compte=compte-1
            sleep(0.1)
        if keydown(KEY_OK)==True:
            return compte
def comptepoints(joueurs):
    for i in range(len(joueurs)):
        sleep(0.1)
        compte=clavierchiffre(joueurs[i][0],10,0)
        joueurs[i][1]=joueurs[i][1]+compte
    return joueurs
def timer(temps):
    comptetemps=0
    messages=["PAS TOUCHE","On pose les stylos!","LACHE CA","Temps ecoule!","FINI"]
    for i in range(temps):
        comptetemps=comptetemps+1
        draw_string("Temps:"+str(comptetemps)+"/"+str(temps),110,120)
        sleep(1)
    draw_string("          ",120,120)
    draw_string("                   ",65,90)
    r=randint(0,len(messages)-1)
    draw_string(messages[r],75,90)
    return None
def tiragelettres() -> list:
    tirage=[]
    voyelles=randint(2,7)
    consonnes=10-voyelles
    for i in range (voyelles):
        sleep(0.05)
        r=randint(0,5)
        tirage.append(VOYELLES[r])
    consonnes=10-voyelles
    for i in range(consonnes):
        sleep(0.05)
        r=randint(0,19)
        tirage.append(CONSONNES[r])
    return tirage   
while True:
  draw_string("MISSIVE",125,60)
  fill_rect(120,75,80,1,color(255,0,0))
  draw_string("[OK] pour commencer",65,90)
  draw_string("M.R.",280,200)
  if keydown(KEY_OK) == True:
    fill_rect(0,0,400,300,color(255,255,255))
    sleep(0.1)
    break
def parametre(joueurs):
    nombre=clavierchiffre("",4,1)
    if nombre==1:
        joueurs=[["Joueur 1",0,"blue"]]
    elif nombre==2:
        joueurs=[["Joueur 1",0,"blue"],["Joueur 2",0,"red"]]
    elif nombre==3:
        joueurs=[["Joueur 1",0,"blue"],["Joueur 2",0,"red"],["Joueur 3",0,"yellow"]]
    elif nombre==4:
        joueurs=[["Joueur 1",0,"blue"],["Joueur 2",0,"red"],["Joueur 3",0,"yellow"],["Joueur 4",0,"green"]]
    sleep(0.1)
    temps=clavierchiffre("temps",60,3)
    fill_rect(0,0,400,300,color(255,255,255))
    return joueurs,temps
joueurs,temps=parametre(joueurs)
tour=0
while True:
    tour=tour+1
    draw_string("Tour "+str(tour),125,70)
    sleep(0.1)
    draw_string("[OK] pour continuer",65,90)
    while True:
        if keydown(KEY_OK)==True:
            sleep(0.1)
            draw_string("       ",125,70)
            draw_string("                   ",65,90)
            joueurs=jeu(joueurs,temps)
            fill_rect(0,0,400,300,color(255,255,255))
            break