set.seed(42);
f=function (P=20,Imax=20,N=10,BB0=0,MM0=0){
  BB=c(BB0);
  MM=c(MM0);
  Pop=c( rep(2,BB0),rep(1,P-BB0-MM0),rep(0,MM0));
  #print(Pop);
  Popi=Pop;
  Enfant=c();
  BB=c();
  MM=c();
  BBN=c();
  MMN=c();
  #for (j in 1:N){
      for (i in (1:Imax)){
        Pere= sample(Popi,size=P,replace =T);
        Mere= sample(Popi,size=P,replace =T);
        Enfant<-ifelse(((Pere==0)&(Mere==0)),0,
                   ifelse(((Pere==2)&(Mere==2)),2,
                          ifelse( ( (Pere==0)&(Mere==2)|(Pere==2)&(Mere==0)),1,
                                  ifelse( (((Pere==0)&(Mere==1))|(Pere==1)&(Mere==0)),sample(size=1,x=c(0,1),replace=T),
                                          ifelse((((Pere==1)&(Mere==2))|((Pere==2)&(Mere==1))),sample(size=1,x=c(1,2),replace=T),
                                                 sample(x=c(0,1,2),size=1,replace=T,prob=c(0.25,0.5,0.)))))));
        Popi=Enfant;
        #print("POPI ENFANT =");
        #print(Popi);
        BB[i]=sum(Popi==2);
        MM[i]=sum(Popi==0);
        #print("yeux bleux BB :")  
        #print (BB[i]/P);
        #print (BB[i]);
  
        #print("yeux marron MM :")  
        #print (MM[i]/P);
        #print (MM[i]);
        #print("yeux marron MB :")  
        #print(sum(Popi==1)/P);
        #print(sum(Popi==1));
      }
      plot(BB/P,type = 'l', main = "evolution des yeux bleus",xlab ="generation i"  );
      plot(MM/P,type = 'l',main = "evolution des yeux Marron",xlab ="generation i");
      #BBN[j]=BB;
      #MMN[j]=MM;
   # }
    #print(BBN);
    #print (MMN);
}

g=function (P=20,Imax=2000,N=10,BB0=1,MM0=1){
  BB=c(BB0);
  MM=c(MM0);
  Pop=c( rep(2,BB0),rep(1,P-BB0-MM0),rep(0,MM0));
  #print(Pop);
  Popi=Pop;
  Enfant=c();
  BB=c();
  MM=c();
  BBN=c();
  MMN=c();
  #for (j in 1:N){
  for (i in (1:Imax)){
    Pere= sample(Popi,size=P-2,replace =T);
    Mere= sample(Popi,size=P-2,replace =T);
    Enfant<-ifelse(((Pere==0)&(Mere==0)),0,
                   ifelse(((Pere==2)&(Mere==2)),2,
                          ifelse( ( (Pere==0)&(Mere==2)|(Pere==2)&(Mere==0)),1,
                                  ifelse( (((Pere==0)&(Mere==1))|(Pere==1)&(Mere==0)),sample(size=1,x=c(0,1),replace=T),
                                          ifelse((((Pere==1)&(Mere==2))|((Pere==2)&(Mere==1))),sample(size=1,x=c(1,2),replace=T),
                                                 sample(x=c(0,1,2),size=1,replace=T,prob=c(0.25,0.5,0.)))))));#(0.25,0.5,0.25)
    Enfant=c(Enfant,0,2);
    Popi=Enfant;
    #print("POPI ENFANT =");
    #print(Popi);
    BB[i]=sum(Popi==2);
    MM[i]=sum(Popi==0);
    #print("yeux bleux BB :")  
    #print (BB[i]/P);
    #print (BB[i]);
    
    #print("yeux marron MM :")  
    #print (MM[i]/P);
    #print (MM[i]);
   # print("yeux marron MB :")  
    #print(sum(Popi==1)/P);
    #print(sum(Popi==1));
  }
  plot(BB/P,type = 'l', main = "evolution des yeux bleus",xlab ="generation i"  );
  plot(MM/P,type = 'l',main = "evolution des yeux Marron",xlab ="generation i");
  #BBN[j]=BB;
  #MMN[j]=MM;
  # }
  #print(BBN);
  #print (MMN);
}

#1/2
f(P=20,BB0=4,MM0=12 ,Imax=20);

#conclusion les yeux bleu tendent a disparaitre et les yeux marron MM se rapproche de 100 pour cent 
f(P=20,BB0=12,MM0=4 ,Imax=20);

#conclusion les yeux bleu "gagne" rarement mais dans le cas general la suprematie des yeux marron demeure 
f(P=20,BB0=5,MM0=5,Imax = 20);

#idem 

#GRande Population
f(P=2000,BB0=400,MM0=1200 ,Imax=100);

#conclusion les yeux bleu tendent a disparaitre et les yeux marron MM se rapproche de 100 pour cent 
f(P=2000,BB0=1200,MM0=400 ,Imax=100);

# le cas general la suprematie des yeux marron demeure 
f(P=2000,BB0=500,MM0=500,Imax = 100);

#idem 

#Conclusion general selon ce modele les yeux bleu sont de plus en plus rare peu importe la taille de la population
#3
g();

g(MM0=10,BB0=3);