diff --git a/Financial_Freedom/Financial_Freedom/Data/toplistsave.txt b/Financial_Freedom/Financial_Freedom/Data/toplistsave.txt
index 1bce4d67a7962f9177f065bfe7d86b925383e4ca..22e5108c733ca39682e053936109172e8ce43cc9 100644
--- a/Financial_Freedom/Financial_Freedom/Data/toplistsave.txt
+++ b/Financial_Freedom/Financial_Freedom/Data/toplistsave.txt
@@ -53,10 +53,10 @@
         </Item>
         <Item Index="6" Type="Jypeli.ScoreItem, Jypeli, Version=11.3.7.0, Culture=neutral, PublicKeyToken=null">
           <Field Name="Name" Type="System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e">
-            <Value>Jollu</Value>
+            <Value>-</Value>
           </Field>
           <Field Name="Score" Type="System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e">
-            <Value>6969696969</Value>
+            <Value>0</Val3ue>
           </Field>
         </Item>
         <Item Index="7" Type="Jypeli.ScoreItem, Jypeli, Version=11.3.7.0, Culture=neutral, PublicKeyToken=null">
diff --git a/Financial_Freedom/Financial_Freedom/Financial_Freedom.cs b/Financial_Freedom/Financial_Freedom/Financial_Freedom.cs
index dd2fabc7f3178b5de3d10c8ce066d73dd38f91d8..cd47c331f16d3f9ba5c05aed81396e9ff65dcc44 100644
--- a/Financial_Freedom/Financial_Freedom/Financial_Freedom.cs
+++ b/Financial_Freedom/Financial_Freedom/Financial_Freedom.cs
@@ -45,7 +45,6 @@ using Window = Jypeli.Window;
 
 namespace Financial_Freedom{
 
-
 public class Card // tehdään kortit
 {
     public string Suit { get; }// hakee pelikortin maan
@@ -104,6 +103,9 @@ public class  Financial_Freedom : PhysicsGame
     private List<Card> pelaajanKortit = new List<Card>(); // Pelaajan kortit kentäksi
     private List<Card> jakajanKortit; // Jakajan kortit kentäksi
     
+    private List<string> clickLog = new List<string>(); //ruletin panostuksen clikkailulogi
+    private GameObject doneButton = null;
+    
     private int peliKesken = 0;
     
     private double kerroinCF = 1;  // Pelin kerroin, joka kasvaa voiton myötä
@@ -118,7 +120,7 @@ public class  Financial_Freedom : PhysicsGame
     private bool AloitusRaha = false;
     private Timer aikaLaskuri;
     private double lopetusAika;
-    private EasyHighScore topLista = new ("toplistsave.txt", 10);
+    private EasyHighScore topLista = new ("toplistsave.txt", 10, "-");
 
     private bool voitto;
     
@@ -276,7 +278,7 @@ public class  Financial_Freedom : PhysicsGame
     {
         lopetusAika = aikaLaskuri.SecondCounter.Value;
         Console.WriteLine("lopetusaika on "+aikaLaskuri.SecondCounter.Value);
-        finalscore = Math.Round((highScore-1000)/lopetusAika, 2);
+        finalscore = Math.Round((highScore-1000)/(lopetusAika/10), 0);
         Console.WriteLine(highScore+"-1000 on "+ (highScore-1000)+" ja se jaetaan "+lopetusAika+" tulee "+((highScore-1000)/lopetusAika));
         Console.WriteLine("finalscore: "+finalscore);
     }
@@ -992,16 +994,7 @@ public class  Financial_Freedom : PhysicsGame
                 bjDoubled = false;
             }
             
-            Label uusi = new Label("Haluatko aloittaa uuden kierroksen samalla panoksella (n), vaihtaa panosta (p) vai poistua pelistä (0)?")
-            {
-                Color = Color.White,
-                Position = new Vector(0, -105), // Asetetaan sijainti
-            };
-            Add(uusi);
-            peliKesken -= 1;
-            Keyboard.Listen(Key.P, ButtonState.Pressed, async () => await BlackJack(), "uus kiesi uudella panoksella"); // MUUTA MYÖHEMMIN KOSKA UUSI KIESI LUO UUDEN PAKAN
-            Keyboard.Listen(Key.N, ButtonState.Pressed, async () => await EnsimmäinenBJ(), "uus kiesi");
-            TakaisinPV();
+            endScreenBJ();
         }
         
         else if (pelaajanSumma > 21)
@@ -1012,16 +1005,7 @@ public class  Financial_Freedom : PhysicsGame
                 Position = new Vector(0, -75), // Asetetaan sijainti
             };
             Add(tulosLabel);
-            Label uusi = new Label("Haluatko aloittaa uuden kierroksen samalla panoksella (n), vaihtaa panosta (p) vai poistua pelistä (0)?")
-            {
-                Color = Color.White,
-                Position = new Vector(0, -105), // Asetetaan sijainti
-            };
-            Add(uusi);
-            peliKesken -= 1;
-            Keyboard.Listen(Key.P, ButtonState.Pressed, async () => await BlackJack(), "uus kiesi uudella panoksella"); // MUUTA MYÖHEMMIN KOSKA UUSI KIESI LUO UUDEN PAKAN
-            Keyboard.Listen(Key.N, ButtonState.Pressed, async () => await EnsimmäinenBJ(), "uus kiesi");
-            TakaisinPV();
+            endScreenBJ();
         }
         
         else if (jakajanSumma == pelaajanSumma)
@@ -1038,16 +1022,7 @@ public class  Financial_Freedom : PhysicsGame
                 pistelaskuri.Value += panos * yTs;
                 bjDoubled = false;
             }
-            Label uusi = new Label("Haluatko aloittaa uuden kierroksen samalla panoksella (n), vaihtaa panosta (p) vai poistua pelistä (0)?")
-            {
-                Color = Color.White,
-                Position = new Vector(0, -105), // Asetetaan sijainti
-            };
-            Add(uusi);
-            peliKesken -= 1;
-            Keyboard.Listen(Key.P, ButtonState.Pressed, async () => await BlackJack(), "uus kiesi uudella panoksella"); // MUUTA MYÖHEMMIN KOSKA UUSI KIESI LUO UUDEN PAKAN
-            Keyboard.Listen(Key.N, ButtonState.Pressed, async () => await EnsimmäinenBJ(), "uus kiesi");
-            TakaisinPV();
+            endScreenBJ();
         }
         
         else if (jakajanSumma < pelaajanSumma && pelaajanSumma <= 21)
@@ -1064,17 +1039,7 @@ public class  Financial_Freedom : PhysicsGame
                 pistelaskuri.Value += 2 * panos * yTs;
                 bjDoubled = false;
             }
-            
-            Label uusi = new Label("Haluatko aloittaa uuden kierroksen samalla panoksella (n), vaihtaa panosta (p) vai poistua pelistä (0)?")
-            {
-                Color = Color.White,
-                Position = new Vector(0, -105), // Asetetaan sijainti
-            };
-            Add(uusi);
-            peliKesken -= 1;
-            Keyboard.Listen(Key.P, ButtonState.Pressed, async () => await BlackJack(), "uus kiesi uudella panoksella"); // MUUTA MYÖHEMMIN KOSKA UUSI KIESI LUO UUDEN PAKAN
-            Keyboard.Listen(Key.N, ButtonState.Pressed, async () => await EnsimmäinenBJ(), "uus kiesi");
-            TakaisinPV();
+            endScreenBJ();
         }
 
         else if (pelaajanSumma < jakajanSumma && jakajanSumma <= 21)
@@ -1085,16 +1050,7 @@ public class  Financial_Freedom : PhysicsGame
                 Position = new Vector(0, -75), // Asetetaan sijainti
             };
             Add(tulosLabel);
-            Label uusi = new Label("Haluatko aloittaa uuden kierroksen samalla panoksella (n), vaihtaa panosta (p) vai poistua pelistä (0)?")
-            {
-                Color = Color.White,
-                Position = new Vector(0, -105), // Asetetaan sijainti
-            };
-            Add(uusi);
-            peliKesken -= 1;
-            Keyboard.Listen(Key.P, ButtonState.Pressed, async () => await BlackJack(), "uus kiesi uudella panoksella"); // MUUTA MYÖHEMMIN KOSKA UUSI KIESI LUO UUDEN PAKAN
-            Keyboard.Listen(Key.N, ButtonState.Pressed, async () => await EnsimmäinenBJ(), "uus kiesi");
-            TakaisinPV();
+            endScreenBJ();
         }
         else if (pelaajanSumma <= 21 && jakajanSumma > 21)
         {
@@ -1110,21 +1066,27 @@ public class  Financial_Freedom : PhysicsGame
                 pistelaskuri.Value += 2 * panos * yTs;
                 bjDoubled = false;
             }
-            
-            Label uusi = new Label("Haluatko aloittaa uuden kierroksen samalla panoksella (n), vaihtaa panosta (p) vai poistua pelistä (0)?")
-            {
-                Color = Color.White,
-                Position = new Vector(0, -105), // Asetetaan sijainti
-            };
-            Add(uusi);
-            peliKesken -= 1;
-            Keyboard.Listen(Key.P, ButtonState.Pressed, async () => await BlackJack(), "uus kiesi uudella panoksella"); // MUUTA MYÖHEMMIN KOSKA UUSI KIESI LUO UUDEN PAKAN
-            Keyboard.Listen(Key.N, ButtonState.Pressed, async () => await EnsimmäinenBJ(), "uus kiesi");
-            TakaisinPV();
+
+            endScreenBJ();
+
         }
 
         TakaisinPV();
     }
+
+    public void endScreenBJ()
+    {
+        Label uusi = new Label("Haluatko aloittaa uuden kierroksen samalla panoksella (n), vaihtaa panosta (p) vai poistua pelistä (0)?")
+        {
+            Color = Color.White,
+            Position = new Vector(0, -105), // Asetetaan sijainti
+        };
+        Add(uusi);
+        peliKesken -= 1;
+        Keyboard.Listen(Key.P, ButtonState.Pressed, async () => await BlackJack(), "uus kiesi uudella panoksella"); // MUUTA MYÖHEMMIN KOSKA UUSI KIESI LUO UUDEN PAKAN
+        Keyboard.Listen(Key.N, ButtonState.Pressed, async () => await EnsimmäinenBJ(), "uus kiesi");
+        TakaisinPV();
+    }
     
     // Luo korttipakka
     public List<Card> LuoPakka() // luo korttipakan no shit sherlock
@@ -1143,7 +1105,7 @@ public class  Financial_Freedom : PhysicsGame
         
     
     //sekoittaa pakan
-    public static void SekoitaPakka(List<Card> pakka) // oisko vaikka että sekoittaa pakan
+    public void SekoitaPakka(List<Card> pakka) // oisko vaikka että sekoittaa pakan
     {
         Random rand = new Random();
         int n = pakka.Count;
@@ -1373,7 +1335,7 @@ public class  Financial_Freedom : PhysicsGame
     /// <param name="peli"></param>
     /// <param name="x">paikka x-akseliilla</param>
     /// <param name="y">paikka y-akselilla</param>
-    public static void EstePlinko(Game peli, double x,double y)
+    public void EstePlinko(Game peli, double x,double y)
     {
         PhysicsObject este = new PhysicsObject(10, 10, Shape.Circle, x, y );
         este.Restitution = 0.5;
@@ -1385,24 +1347,274 @@ public class  Financial_Freedom : PhysicsGame
     public async Task Ruletti()
     {
         panosAsetettu = new TaskCompletionSource<bool>(false);
+        
         ClearGameObjects();
         ClearControls();
         Add(pistenaytto);
         await LisaaPanos();
-
         panosAsetettu.TrySetResult(true);
-        PhysicsObject p = new PhysicsObject(200, 300, Shape.Rectangle, 1, 200);
-        Add(p);
+
+        await LuoPanostusAlue();
         
         TakaisinPV();
     }
+    
+    public async Task LuoPanostusAlue()
+    {
+        // Tyhjennetään välimuisti aina uuden alueen luomisen yhteydessä
+        if (clickLog.Count > 0)
+        {
+            clickLog.Clear();
+        }
+        
+        // Nollataan valmis-nappi, jotta se luodaan uudelleen tarvittaessa
+        doneButton = null;
+        
+        ClearGameObjects();
+        ClearControls();
+        
+        // Tausta panostusalueelle
+        GameObject panostusAlue = new GameObject(Screen.Width / 4, Screen.Height / 2, Shape.Rectangle);
+        panostusAlue.Color = Color.DarkGreen;
+        panostusAlue.Position = new Vector(0,0);
+        Add(panostusAlue);
+        
+        // Grid-asetukset numeroiden nappeihin
+        int buttonSize = 50;
+        int padding = 5;
+        int buttonsPerRow = 6; // Nappeja per rivi
+        int totalButtons = 36;
+        
+        // Lasketaan gridin kokonaisleveys ja -korkeus
+        double gridWidth = buttonsPerRow * buttonSize + (buttonsPerRow - 1) * padding;
+        int totalRows = (totalButtons + buttonsPerRow - 1) / buttonsPerRow; // Pyöristys ylöspäin
+        double gridHeight = totalRows * buttonSize + (totalRows - 1) * padding;
+        
+        // Asetetaan gridin aloituskohta panostusalueen sisällä niin, että se on keskitetty
+        double startX = panostusAlue.Position.X - gridWidth / 2 + buttonSize / 2;
+        double startY = panostusAlue.Position.Y + panostusAlue.Height / 2 - gridHeight / 2 - buttonSize / 2;
+        
+        for (int i = 0; i < totalButtons; i++)
+        {
+            int currentNumber = i+1; // pitää skipata 0 toistaiseksi, niille myöhemmin omat napit
+            int row = i / buttonsPerRow;
+            int col = i % buttonsPerRow;
+            
+            // Lasketaan napin sijainti gridissä
+            double x = startX + col * (buttonSize + padding);
+            double y = startY - row * (buttonSize + padding);
+            
+            GameObject numeroPanos = new GameObject(buttonSize, buttonSize);
+            // Vaihdetaan väri parillisen ja parittoman mukaan
+            if (currentNumber < 11) 
+            {
+                numeroPanos.Color = (currentNumber % 2 == 0) ? Color.Black : Color.Red;
+            }
+            else if (10 < currentNumber)
+            {
+                if (currentNumber < 29)
+                {
+                    if (currentNumber < 19)
+                    {
+                        numeroPanos.Color = (currentNumber % 2 == 0) ? Color.Red : Color.Black;
+                    }
+                    else
+                    {
+                        numeroPanos.Color = (currentNumber % 2 == 0) ? Color.Black : Color.Red;
+                    }
+                }
+                else
+                {
+                    numeroPanos.Color = (currentNumber % 2 == 0) ? Color.Red : Color.Black;
+                }
+            }
+            
+            numeroPanos.Position = new Vector(x, y);
+            numeroPanos.Tag = currentNumber;
+            Add(numeroPanos);
+            
+            Label numeroLabel = new Label(buttonSize, buttonSize);
+            numeroLabel.Text = currentNumber.ToString();
+            numeroLabel.TextColor = Color.White;
+            numeroLabel.Position = new Vector(x, y);
+            numeroPanos.Add(numeroLabel);
+            
+            // Rekisteröidään napin hiiriklikkaus käyttäen paikallista muuttujaa
+            Mouse.Listen(MouseButton.Left, ButtonState.Pressed, () =>
+            {
+                if (numeroPanos.IsInside(Mouse.PositionOnScreen))
+                {
+                    // Tallennetaan vain numero välimuistiin
+                    clickLog.Add(numeroPanos.Tag.ToString());
+                    AsetaPanos((int)numeroPanos.Tag);
+                    if (doneButton == null)
+                    {
+                        CreateDoneButton();
+                    }
+                }
+            }, "Aseta panos numerolle " + currentNumber);
+        }
+        
+        GameObject gOPanos = new GameObject(150, 50);
+        gOPanos.Color = Color.LimeGreen;
+        // Asetetaan nappi hieman panostusalueen alapuolelle
+        gOPanos.Position = new Vector(-80, 140);
+        Add(gOPanos);
+        
+        Label gOLabel = new Label(150, 50);
+        gOLabel.Text = "0";
+        gOLabel.TextColor = Color.White;
+        gOLabel.Position = new Vector(-80, 140);
+        gOPanos.Add(gOLabel);
+        
+        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, () =>
+        {
+            if (gOPanos.IsInside(Mouse.PositionOnScreen))
+            {
+                // Tallennetaan nolla välimuistiin
+                clickLog.Add("0");
+                AsetaPanosNollat("0");
+                if (doneButton == null)
+                {
+                    CreateDoneButton();
+                }
+            }
+        }, "Aseta panos nollalle");
+        
+        GameObject gO0Panos = new GameObject(150, 50);
+        gO0Panos.Color = Color.LimeGreen;
+        // Asetetaan nappi hieman panostusalueen alapuolelle
+        gO0Panos.Position = new Vector(80, 140);
+        Add(gO0Panos);
+        
+        Label gO0Label = new Label(150, 50);
+        gO0Label.Text = "00";
+        gO0Label.TextColor = Color.White;
+        gO0Label.Position = new Vector(80, 140);
+        gO0Panos.Add(gO0Label);
+        
+        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, () =>
+        {
+            if (gO0Panos.IsInside(Mouse.PositionOnScreen))
+            {
+                // Tallennetaan tuplanolla välimuistiin
+                clickLog.Add("00");
+                AsetaPanosNollat("00");
+                if (doneButton == null)
+                {
+                    CreateDoneButton();
+                }
+            }
+        }, "Aseta panos tuplanollalle");
+        
+        GameObject punainenPanos = new GameObject(165, 60);
+        punainenPanos.Color = Color.Red;
+        // Asetetaan nappi hieman panostusalueen alapuolelle
+        punainenPanos.Position = new Vector(-85, 205);
+        Add(punainenPanos);
+        
+        Label punainenLabel = new Label(165, 60);
+        punainenLabel.Text = "Punainen";
+        punainenLabel.TextColor = Color.White;
+        punainenLabel.Position = new Vector(-85, 205);
+        punainenPanos.Add(punainenLabel);
+        
+        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, () =>
+        {
+            if (punainenPanos.IsInside(Mouse.PositionOnScreen))
+            {
+                // Tallennetaan värin nimi välimuistiin
+                clickLog.Add("Punainen");
+                AsetaPanosVärille("Punainen");
+                if (doneButton == null)
+                {
+                    CreateDoneButton();
+                }
+            }
+        }, "Aseta panos värille Punainen");
+     
+        GameObject mustaPanos = new GameObject(165, 60);
+        mustaPanos.Color = Color.Black;
+        // Asetetaan nappi hieman panostusalueen alapuolelle
+        mustaPanos.Position = new Vector(85, 205);
+        Add(mustaPanos);
+        
+        Label mustaLabel = new Label(165, 60);
+        mustaLabel.Text = "Musta";
+        mustaLabel.TextColor = Color.White;
+        mustaLabel.Position = new Vector(85, 205);
+        mustaPanos.Add(mustaLabel);
+        
+        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, () =>
+        {
+            if (mustaPanos.IsInside(Mouse.PositionOnScreen))
+            {
+                // Tallennetaan värin nimi välimuistiin
+                clickLog.Add("Punainen");
+                AsetaPanosVärille("Musta");
+                if (doneButton == null)
+                {
+                    CreateDoneButton();
+                }
+            }
+        }, "Aseta panos värille Musta");
+        
+        
+    }
 
-    public void RulettiPanos()
+    void CreateDoneButton()
     {
+        GameObject Done = new GameObject(150, 75);
+        Done.Color = Color.Green;
+        // Asetetaan nappi hieman panostusalueen alapuolelle
+        Done.Position = new Vector(350, -200);
+        Add(Done);
+        
+        Label DoneLabel = new Label(150, 75);
+        DoneLabel.Text = "Valmis";
+        DoneLabel.TextColor = Color.White;
+        DoneLabel.Position = new Vector(350, -200);
+        Done.Add(DoneLabel);
         
+        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, () =>
+        {
+            if (Done.IsInside(Mouse.PositionOnScreen))
+            {
+                MessageDisplay.Add($"Panokset on jaettu kohtiin: {clickLog}");
+                RulettiPyöritys();
+            }
+        }, "Aseta panos värille Musta");
+    }
+    
+    void AsetaPanos(int numero)
+    {
+        MessageDisplay.Add($"Panos asetettu numeroon {numero}!");
     }
     
+    void AsetaPanosVärille(string väri)
+    {
+        MessageDisplay.Add($"Panos asetettu värille {väri}!");
+    }
+    
+    void AsetaPanosNollat(string nolla)
+    {
+        MessageDisplay.Add($"Panos asetettu numerolle {nolla}!");
+    }
     
+    void RulettiPyöritys()
+    {
+        ClearGameObjects();
+        ClearControls();
+        int tulos;
+        MessageDisplay.Add($"Panokset on jaettu kohtiin: {clickLog}");
+        RulettiAnimaatio();
+        TakaisinPV();
+    }
+
+    void RulettiAnimaatio()
+    {
+        
+    }
 
     public async Task Slots()
     {
@@ -1910,6 +2122,7 @@ public class  Financial_Freedom : PhysicsGame
             TakaisinPV();  // Siirtyy takaisin pelinvalintaan
         }, "Ota rahat ja lopeta (P)");
     }
+  
     
     void AddRaha()
     {
@@ -1939,7 +2152,7 @@ public class  Financial_Freedom : PhysicsGame
     /// <param name="height">logon korkeus</param>
     /// <param name="x">logon paikka</param>
     /// <param name="y">logon paikka</param>
-    public static void MiniPeliLogo(Game peli, double width, double height, double x, double y, string kuva, int order)
+    public void MiniPeliLogo(Game peli, double width, double height, double x, double y, string kuva, int order)
     {
         PhysicsObject p = new PhysicsObject(width, height, Shape.Rectangle, x, y);
         p.Image = LoadImage(kuva);