%Initialisation
delete(vidobj)

Grille = ['r','r','r','r','r','r','r'; 'r','r','r','r','r','r','r'; 'r','r','r','r','r','r','r'; 'r','r','r','r','r','r','r'; 'r','r','r','r','r','r','r'; 'r','r','r','r','r','r','r'];

vidobj = videoinput('winvideo',2);
triggerconfig(vidobj, 'manual');
start(vidobj)
x = input('Liberez le champ et appuyez sur enter');

Gri = getsnapshot(vidobj);

imshow(Gri)

[xR,yR,xV,yV,xB,yB] = PositionsReperes(Gri);

Vecteur_Base_Horizontal=[(xB-xV)/7,(yB-yV)/7];
Vecteur_Base_Vertical=[(xR-xV)/6,(yR-yV)/6];

stop(vidobj)
delete(vidobj)

%Programme
while Grille ~= 'Egalité' | f == 'r'
    
    [Grille,col,lig] = jouer_fiche_prob('o',Grille)
    ecrirecoord(lig,col);
    f = detection_victoire(Grille);
    
    if Grille == 'Egalité' | f ~= 'r'
            break  
        end
    
    vidobj = videoinput('winvideo',2);
    triggerconfig(vidobj, 'manual');
    start(vidobj)
    x = input('Liberez le champ et appuyez sur entrée');
    
    Image1 = getsnapshot(vidobj);
    imagesc(Image1);
        
    Img1=rgb2gray(Image1);
    %Img1 = wiener2(I,[60 40]);
    %Image1Traite = seuil(I,127);
        
    x = input('Jouez, puis liberez le champ et appuyez sur entrée');
    %w = waitforbuttonpress;
    %pause(4)
        
    Image2 = getsnapshot(vidobj);
    imagesc(Image2);
    Img2=rgb2gray(Image2);
    %Img2 = wiener2(I,[60 40]);
    %Image2Traite = seuil(I,127);
        
    Difference = abs(Img1-Img2);
    imshow(Difference)
    Difference = seuil(Difference,80);
    imshow(Difference)
        
    [xC,yC] = PositionCoup(Difference);
    xBase=xC-xV;
    yBase=yC-yV;
    VecteurCoup=[xBase, yBase];
    ligne = round((dot(VecteurCoup,Vecteur_Base_Vertical)/(norm(Vecteur_Base_Vertical))^2)+0.5);
    colonne= round((dot(VecteurCoup,Vecteur_Base_Horizontal)/(norm(Vecteur_Base_Horizontal))^2)+0.5);
    Grille = updateGrille(Grille,ligne,colonne)
    stop(vidobj)
    delete(vidobj)
    
    end

if f == 'j'
    prompt("Bravo vous avez gagné")
end
if f == 'o'
    prompt('Bravo vous etes nul')
end