system "Carrèfour"
{
Sistema: Carrefour
Autore: Dougnon
Xtremizzato da: laRoulette.it

Descrizione:
  Dividere in gruppi di nove consecutivi da 1 a 36.
  Vengono messi in gioco con tutti i carrè dei numeri 5, 14, 23 e 32
  L'idea di attacco è quella di contare i quattro gruppi separati e mettere
  in gioco la ripetizione del gruppo.
  Quando una gruppo vince non viene messo più in gioco
  Per ogni gruppo si gioca una progressione di 5 termini che se perde porta ad un passivo di 60 pezzi
  Lo stopwin a 60 pezzi di attivo è stato commentato
  C'è anche la possibilità di puntare sullo zero come assicurazione della puntata, anche questo è stato commentato
}
method "main"
begin
    while Starting new Session
    begin
    	 set list [1,1,2,4,7] record "progressione" data  // Assegna la progressione
    	 // Assegna i carrè ai gruppi
    	 copy list [Corner(1:5),Corner(2:6),Corner(4:8),Corner(5:9)] record "Gruppo_1" layout
    	 copy list [Corner(10:14),Corner(11:15),Corner(13:17),Corner(14:18)] record "Gruppo_2" layout
    	 copy list [Corner(19:23),Corner(20:24), Corner(22:26),Corner(23:27)] record "Gruppo_3" layout
    	 copy list [Corner(28:32), Corner(29:33), Corner(31:35), Corner(32:36)] record "Gruppo_4" layout
    	 // inizializza il conteggio dei gruppi
    	 put 1 record "Conta Gr1" data
    	 put 1 record "Conta Gr2" data
		 put 1 record "Conta Gr3" data
		 put 1 record "Conta Gr4" data
    	 
    end
	
	While each Spin
	begin
		 copy last number record "Uscito" layout
		 copy last street record "Terzina" layout
		
		call "Assegna"
		if flag "Piazzati" true  // se ci sono delle puntate alora controlla il risultato
		begin
			 call "Risultato"
			 Set flag "piazzati" false
		end
		call "stopwin"
		If flag "attendi" false
		begin
			call "verifica"
		end 
		Call "Controlla"
		if Number 0 not hit each  // se lo zero non esce allora si memorizza il gruppo uscito
		begin
		 	put 100% record "Gruppo" data nel record "Penultimo" data
		end
		else
		begin
			if Number 0 won each
			begin
				add 100% net record "Cassa zero" data //conta i soldi persi con lo zero
				add 1 record "Conta zeri" data // conta gli zeri con puntate
			end
			
		end
		// verifica se ci sono delle puntate
		If flag "Gruppo 1 Punta" true
		or flag "Gruppo 2 Punta" true
		or flag "Gruppo 3 Punta" true
		or  flag "Gruppo 4 Punta" true
		begin
  			set Flag "Piazzati" true 
			//Put 1 units on Number 0 //Punta sullo zero
		end   

	end
end

method "Assegna"
begin
	if record "Terzina" layout = Street(1-3)
	or record "Terzina" layout = Street(4-6)
	or record "Terzina" layout = Street(7-9)
	begin
		set flag "Gruppo 1" true //segnala che è uscito il gruppo 1
		set flag "Gruppo 2" false
		set flag "Gruppo 3" false
		set flag "Gruppo 4" false
		put 1 record "Gruppo" data  //memorizza il gruppo uscito
		
		return
	end
	if record "Terzina" layout = Street(10-12)
	or record "Terzina" layout = Street(13-15)
	or record "Terzina" layout = Street(16-18)
	begin
		set flag "Gruppo 2" true //segnala che è uscito il gruppo 2
		set flag "Gruppo 1" false
		set flag "Gruppo 3" false
		set flag "Gruppo 4" false
		put 2 record "Gruppo" data
		return
	end
	if record "Terzina" layout = Street(19-21)
	or record "Terzina" layout = Street(22-24)
	or record "Terzina" layout = Street(25-27)
	begin
		set flag "Gruppo 3" true //segnala che è uscito il gruppo 3
		set flag "Gruppo 2" false
		set flag "Gruppo 1" false
		set flag "Gruppo 4" false
		put 3 record "Gruppo" data
		return
	end
	if record "Terzina" layout = Street(28-30)
	or record "Terzina" layout = Street(31-33)
	or record "Terzina" layout = Street(34-36)
	begin
		set flag "Gruppo 4" true //segnala che è uscito il gruppo 4
		set flag "Gruppo 2" false
		set flag "Gruppo 3" false
		set flag "Gruppo 1" false
		put 4 record "Gruppo" data
		return
	end
	If Number 0  hit each
	begin
		set flag "Gruppo 1" false //mette tutti i gruppi non usciti
		set flag "Gruppo 2" false
		set flag "Gruppo 3" false
		set flag "Gruppo 4" false
	end
end
method "verifica"
begin
    if flag "Gruppo 1" True // se è uscito un numero del gruppo 1
    and flag "Gruppo 1 uscito" False // ed è ancora in gioco
    and record "Conta Gr1" data <=5  // e non ha superato le 5 uscite
    begin
    	put 100% record "Conta Gr1" data nel Record "progressione" Data index //assegna il termine della progressione
		put 100% record "progressione" Data sul record "Gruppo_1" Layout list  //Punta i carrè del gruppo
    	set flag "Gruppo 1 Punta" true // segnala che è da puntare
    end
    if flag "Gruppo 2" True
    and flag "Gruppo 2 uscito" False
    and record "Conta Gr2" data <=5
    begin
    	put 100% record "Conta Gr2" data nel Record "progressione" Data index //assegna il termine della progressione
		put 100% record "progressione" Data sul record "Gruppo_2" Layout list
    	set flag "Gruppo 2 Punta" true
    end
    if flag "Gruppo 3" True
    and flag "Gruppo 3 uscito" False
    and record "Conta Gr3" data <=5
    begin
    	put 100% record "Conta Gr3" data nel Record "progressione" Data index //assegna il termine della progressione
		put 100% record "progressione" Data sul record "Gruppo_3" Layout list
    	set flag "Gruppo 3 Punta" true
    end
    if flag "Gruppo 4" True
    and flag "Gruppo 4 uscito" False
    and record "Conta Gr4" data <=5
    begin
    	put 100% record "Conta Gr4" data nel Record "progressione" Data index //assegna il termine della progressione
		put 100% record "progressione" Data sul record "Gruppo_4" Layout list
    	set flag "Gruppo 4 Punta" true
    end

end   

method "Risultato"
begin
    add 100% net record "Cassa" data // aggiunge il netto alla cassa parziale dell'attacco
  if Number 0 not hit each   // se non è uscito lo zero
  begin 
//------------ Gruppo 1 --------------
	if flag "Gruppo 1 Punta" True //controlla se è il gruppo puntato
	begin
		if Any Corner Bet won each // e se ha vinto
		begin
		 	set flag "Gruppo 1 uscito" true // lo disabilita per il gioco
		end
		else // se perde
		begin
		 	add 1 record "Conta Gr1" data //aumenta il contatore delle uscite
		 	if record "Conta Gr1" Data index >5 // controlla che non sia già uscito troppe volte
		 	begin
		 		set flag "Gruppo 1 uscito" true // lo disabilita per il gioco
			end
		end	  
		set flag "Gruppo 1 Punta"  False // annulla il flag della puntata
    end
//------------ Gruppo 2 --------------
	if flag "Gruppo 2 Punta" True //controlla se è quello puntato
	begin
		if Any Corner Bet won each // e se ha vinto
		begin
		 	set flag "Gruppo 2 uscito" true // lo disabilita per il gioco
		end
		else // se perde
		begin
		 	add 1 record "Conta Gr2" data //aumenta il contatore delle uscite
		 	if record "Conta Gr2" Data index >5 // controlla che non sia già uscito troppe volte
		 	begin
		 		set flag "Gruppo 2 uscito" true // lo disabilita per il gioco
			end
		end	  
		set flag "Gruppo 2 Punta"  False // annulla il flag della puntata
    end
//------------ Gruppo 3 --------------
	if flag "Gruppo 3 Punta" True //controlla se è quello puntato
	begin
		if Any Corner Bet won each // e se ha vinto
		begin
		 	set flag "Gruppo 3 uscito" true // lo disabilita per il gioco
		end
		else // se perde
		begin
		 	add 1 record "Conta Gr3" data //aumenta il contatore delle uscite
		 	if record "Conta Gr3" Data index >5 // controlla che non sia già uscito troppe volte
		 	begin
		 		set flag "Gruppo 3 uscito" true // lo disabilita per il gioco
			end
		end	  
		set flag "Gruppo 3 Punta"  False // annulla il flag della puntata
    end
//------------ Gruppo 4 --------------
	if flag "Gruppo 4 Punta" True //controlla se è quello puntato
	begin
		if Any Corner Bet won each // e se ha vinto
		begin
		 	set flag "Gruppo 4 uscito" true // lo disabilita per il gioco
		end
		else // se perde
		begin
		 	add 1 record "Conta Gr4" data //aumenta il contatore delle uscite
		 	if record "Conta Gr4" Data index >5 // controlla che non sia già uscito troppe volte
		 	begin
		 		set flag "Gruppo 4 uscito" true // lo disabilita per il gioco
			end
		end	  
		set flag "Gruppo 4 Punta"  False // annulla il flag della puntata
    end
  end
end
method "controlla"
begin
	if record "Gruppo" data = record "Penultimo" Data // controlla se li ultimi due gruppi usciti sono uguali
	and number 0 not hit each
	begin
	 	if flag "Gruppo 1" true    // Se è questo gruppo
	 	and flag "Conta 1" false   // ed il gruppo non ha ancora raddoppiato
	 	begin
	 		add 1 record "Totali" data // aumenta di 1 il contatore dei totali
	 	  	set flag "conta 1" true     // segnal ache il gruppo ha raddoppiato
	 	end
	 	if flag "Gruppo 2" true
	 	and flag "Conta 2" false
	 	begin
	 		add 1 record "Totali" data
	 	  	set flag "conta 2" true
	 	end
	 	if flag "Gruppo 3" true
	 	and flag "Conta 3" false
	 	begin
	 		add 1 record "Totali" data
	 	  	set flag "conta 3" true
	 	end
	 	if flag "Gruppo 4" true
	 	and flag "Conta 4" false
	 	begin
	 		add 1 record "Totali" data
	 	  	set flag "conta 4" true
	 	end
	end
	if record "Totali" data =4  // se il totale è uguale a 4
	begin
		Call "Azzera"   // azzera i parametri per ricominciare la partita
	end	  	   
end
method "Azzera"
begin
    put 1 record "Conta Gr1" data
    put 1 record "Conta Gr2" data
	put 1 record "Conta Gr3" data
	put 1 record "Conta Gr4" data
    Reset All Flags to false
    put 0 record "Totali" data
	put 0 record "Cassa" data

end 
method "Stopwin"
begin
    	// stopwin a 60 pezzi di attivo
		{if record "cassa" data >=60
		begin
			 set flag "Attendi" true
		end
		 }
	if record "totali" data = 2
	Begin
		set flag "Attendi" true
	end 



end  
