diff --git a/Tiskipeli/Tiskipeli/App.xaml b/Tiskipeli/Tiskipeli/App.xaml
index 55caaa736811bad1b2581635ec5c90dc52ab7a74..8a86ebd716ef24dfa97834634938acc8156ff457 100644
--- a/Tiskipeli/Tiskipeli/App.xaml
+++ b/Tiskipeli/Tiskipeli/App.xaml
@@ -1,7 +1,7 @@
-<Application x:Class="Tiskipeli.App"
+<Application x:Class="Tiskipelitesti.App"
              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-             xmlns:local="clr-namespace:Tiskipeli"
+             xmlns:local="clr-namespace:Tiskipelitesti"
              StartupUri="MainWindow.xaml">
     <Application.Resources>
          
diff --git a/Tiskipeli/Tiskipeli/App.xaml.cs b/Tiskipeli/Tiskipeli/App.xaml.cs
index 688311eb434733417aa19511c2419fdbac659318..fc00a68d4ca839b4bd3d681e584e8c06a735037c 100644
--- a/Tiskipeli/Tiskipeli/App.xaml.cs
+++ b/Tiskipeli/Tiskipeli/App.xaml.cs
@@ -6,7 +6,7 @@ using System.Linq;
 using System.Threading.Tasks;
 using System.Windows;
 
-namespace Tiskipeli
+namespace Tiskipelitesti
 {
     /// <summary>
     /// Interaction logic for App.xaml
diff --git a/Tiskipeli/Tiskipeli/MainWindow.xaml b/Tiskipeli/Tiskipeli/MainWindow.xaml
index 9d9b4e1c7b0a041627720093bea8be304bb046c5..ec8fdff53033c9b018f64898d93728f34ca85885 100644
--- a/Tiskipeli/Tiskipeli/MainWindow.xaml
+++ b/Tiskipeli/Tiskipeli/MainWindow.xaml
@@ -1,9 +1,9 @@
-<Window x:Class="Tiskipeli.MainWindow"
+<Window x:Class="Tiskipelitesti.MainWindow"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
-        xmlns:local="clr-namespace:Tiskipeli"
+        xmlns:local="clr-namespace:Tiskipelitesti"
         mc:Ignorable="d"
         Title="Tiskipeli" Height="500" Width="800">
     <Canvas Name="Tausta" Focusable="True" Background="Black" KeyDown="KeyIsDown" KeyUp="KeyIsUp">
diff --git a/Tiskipeli/Tiskipeli/MainWindow.xaml.cs b/Tiskipeli/Tiskipeli/MainWindow.xaml.cs
index 5886b9aacba8b084797834cac18301c208ccb799..c43d427c9db826b9540520f53df22260c5694e2e 100644
--- a/Tiskipeli/Tiskipeli/MainWindow.xaml.cs
+++ b/Tiskipeli/Tiskipeli/MainWindow.xaml.cs
@@ -5,7 +5,6 @@ using System.Text;
 using System.Threading.Tasks;
 using System.Windows;
 using System.Windows.Controls;
-using System.Windows.Controls.Primitives;
 using System.Windows.Data;
 using System.Windows.Documents;
 using System.Windows.Input;
@@ -13,61 +12,69 @@ using System.Windows.Media;
 using System.Windows.Media.Imaging;
 using System.Windows.Navigation;
 using System.Windows.Shapes;
-
 using System.Windows.Threading;
 
-namespace Tiskipeli
+namespace Tiskipelitesti
 {
     /// <summary>
-    /// Interaction logic for MainWindow.xaml
+    /// Itsepeli
     /// </summary>
     public partial class MainWindow : Window
     {
-
         bool meneVasen, meneOikea;
-
         List<Rectangle> poistettavat = new List<Rectangle>();
-
-        int vihuKuva = 0;
         int luotiAjastin = 0;
         const int luotiAjastinLimit = 90;
         int vihuMaara = 0;
         int vihuNopeus = 6;
-        int pelaajaElamatMaara = 3;  
+        int pelaajaElamatMaara = 3;
         bool peliOhi = false;
 
         DispatcherTimer peliAjastin = new DispatcherTimer();
         ImageBrush pelaajaKuva = new ImageBrush();
         ImageBrush taustaKuva = new ImageBrush();
 
+
         /// <summary>
-        /// Pelin fysiikan "rakentaja"
+        /// Pelin Fysiikan "rakentaja"
         /// </summary>
         public MainWindow()
         {
             InitializeComponent();
 
+            InitializeGame();
+
             peliAjastin.Tick += PeliLoop;
             peliAjastin.Interval = TimeSpan.FromMilliseconds(20);
             peliAjastin.Start();
+        }
 
-            //Pelaaja hahmon kuvan asettaminen
+        //Aliohjelma pelaajan kuvan päivittämiseen ja vihujen luontiin
+        private void InitializeGame()
+        {
             pelaajaKuva.ImageSource = new BitmapImage(new Uri("pack://application:,,,/Kuvat/Tiskiharja.png"));
             pelaaja.Fill = pelaajaKuva;
 
-            //Taustakuvan keskittäminen
+            //Keskittää taustakuvan
             Tausta.Focus();
-
-            // Luotujen vihollisten määrä
             luoVihu(20);
         }
 
+        //Pelin perustoiminnat aliohjelmiakutsumalla
         private void PeliLoop(object sender, EventArgs e)
         {
-            Rect pelaajaHitBox = new Rect(Canvas.GetLeft(pelaaja), Canvas.GetTop(pelaaja), pelaaja.Width, pelaaja.Height);
-            vihutJaljella.Content = "Vihollisia jäljellä: " + vihuMaara;
-            pelaajaElamat.Content = "Elämiä: " + pelaajaElamatMaara;
+            PelaajanLiikkuminen();
+            Ampuminen();
+            VihunPaivitys();
+            OsumaTarkistus();
+            OlioidenPoisto();
+            PeliTilaTarkastus();
+        }
 
+        //Pelaajaan liikkumisen logiikka ja hitbox
+        private void PelaajanLiikkuminen()
+        {
+            Rect pelaajaHitBox = new Rect(Canvas.GetLeft(pelaaja), Canvas.GetTop(pelaaja), pelaaja.Width, pelaaja.Height);
             if (meneVasen == true && Canvas.GetLeft(pelaaja) > 0)
             {
                 Canvas.SetLeft(pelaaja, Canvas.GetLeft(pelaaja) - 10);
@@ -76,21 +83,56 @@ namespace Tiskipeli
             {
                 Canvas.SetLeft(pelaaja, Canvas.GetLeft(pelaaja) + 10);
             }
+        }
 
+        //Ajastimella toimiva vihollisen ampuminen
+        private void Ampuminen()
+        {
             luotiAjastin -= 3;
 
             if (luotiAjastin < 0)
             {
                 vihuLuodinTeko(Canvas.GetLeft(pelaaja) + 20, 10);
-
                 luotiAjastin = luotiAjastinLimit;
             }
+        }
+
+        //Logiikkaa vihollisen toiminalle
+        private void VihunPaivitys()
+        {
+            Rect pelaajaHitBox = new Rect(Canvas.GetLeft(pelaaja), Canvas.GetTop(pelaaja), pelaaja.Width, pelaaja.Height);
 
             foreach (var x in Tausta.Children.OfType<Rectangle>())
             {
-                if (x is Rectangle && (string)x.Tag == "luoti")
+                if (x is Rectangle && (string)x.Tag == "vihu")
                 {
+                    Canvas.SetLeft(x, Canvas.GetLeft(x) + vihuNopeus);
+
+                    if (Canvas.GetLeft(x) > 820)
+                    {
+                        Canvas.SetLeft(x, -80);
+                        Canvas.SetTop(x, Canvas.GetTop(x) + (x.Height + 10));
+                    }
 
+                    Rect vihuHitBox = new Rect(Canvas.GetLeft(x), Canvas.GetTop(x), x.Width, x.Height);
+                    //Ohjaa sen mitä tapahtuu vihu kehon osuessa pelaajaan
+                    if (pelaajaHitBox.IntersectsWith(vihuHitBox))
+                    {
+                        naytaPeliohi("Likaiset lautaset rikkoivat harjasi!");
+                    }
+                }
+            }
+        }
+
+        //Luotien osumisen tarkistus ja ohi menneiden luotien poisto
+        private void OsumaTarkistus()
+        {
+            Rect pelaajaHitBox = new Rect(Canvas.GetLeft(pelaaja), Canvas.GetTop(pelaaja), pelaaja.Width, pelaaja.Height);
+
+            foreach (var x in Tausta.Children.OfType<Rectangle>())
+            {
+                if (x is Rectangle && (string)x.Tag == "luoti")
+                {
                     Canvas.SetTop(x, Canvas.GetTop(x) - 20);
 
                     if (Canvas.GetTop(x) < 10)
@@ -100,6 +142,7 @@ namespace Tiskipeli
 
                     Rect luoti = new Rect(Canvas.GetLeft(x), Canvas.GetTop(x), x.Width, x.Height);
 
+                    //Tuhoaa sen vihu olion johon pelaajan luoti osui
                     foreach (var y in Tausta.Children.OfType<Rectangle>())
                     {
                         if (y is Rectangle && (string)y.Tag == "vihu")
@@ -114,30 +157,9 @@ namespace Tiskipeli
                             }
                         }
                     }
-
-
-
-
-                }
-
-                if (x is Rectangle && (string)x.Tag =="vihu")
-                {
-                    Canvas.SetLeft(x, Canvas.GetLeft(x) + vihuNopeus);
-
-                    if (Canvas.GetLeft(x) > 820)
-                    {
-                        Canvas.SetLeft(x, -80);
-                        Canvas.SetTop(x, Canvas.GetTop(x) + (x.Height + 10));
-                    }
-
-                    Rect vihuHitBox = new Rect(Canvas.GetLeft(x), Canvas.GetTop(x), x.Width, x.Height);
-
-                    if (pelaajaHitBox.IntersectsWith(vihuHitBox))
-                    {
-                        naytaPeliohi("Likaiset lautaset rikkoivat harjasi!");
-                    }
                 }
 
+                //Koodi vihun luodin osumiseen pelaajaan ja pelaajan elämien menetys
                 if (x is Rectangle && (string)x.Tag == "vihuLuoti")
                 {
                     Canvas.SetTop(x, Canvas.GetTop(x) + 10);
@@ -153,48 +175,64 @@ namespace Tiskipeli
                     {
                         poistettavat.Add(x);
                         pelaajaElamatMaara--;
-
-                        if (pelaajaElamatMaara <= 0)
-                        {
-                            pelaajaElamat.Content = "Elämiä: 0";
-                            naytaPeliohi("Likaiset lautaset rikkoivat harjasi liallaan!");
-                        }
                     }
                 }
-
             }
+        }
 
+        //Poistaa ylimääräiset oliot kuten viholliset ja luodit
+        private void OlioidenPoisto()
+        {
             foreach (Rectangle i in poistettavat)
             {
                 Tausta.Children.Remove(i);
             }
+        }
+
 
+
+        //Päivittää pelaajalle näkyvät tiedot ja vie koodin peliohi metodiin kun peli päättyy
+        private void PeliTilaTarkastus()
+        {
+            vihutJaljella.Content = "Vihollisia jäljellä: " + vihuMaara;
+            pelaajaElamat.Content = "Elämiä: " + pelaajaElamatMaara;
             if (vihuMaara < 10)
             {
                 vihuNopeus = 8;
             }
 
+            if (vihuMaara < 3)
+            {
+                vihuNopeus = 12;
+            }
+
             if (vihuMaara < 1)
             {
                 vihutJaljella.Content = "Vihollisia jäljellä: 0";
                 naytaPeliohi("Voitit ja putsasit likaiset lautaset!");
             }
 
-
+            if (pelaajaElamatMaara <= 0)
+            {
+                pelaajaElamat.Content = "Elämiä: 0";
+                naytaPeliohi("Likaiset lautaset rikkoivat harjasi liallaan!");
+            }
         }
 
+        //Aliohjelma sille mitä tapahtuu kun liikkumisnappi on pohjassa
         private void KeyIsDown(object sender, KeyEventArgs e)
         {
-            if(e.Key == Key.Left)
+            if (e.Key == Key.Left)
             {
                 meneVasen = true;
             }
-            if(e.Key == Key.Right)
+            if (e.Key == Key.Right)
             {
                 meneOikea = true;
             }
         }
 
+        //Aliohjelma sille mitä tapahtuu kun liikkumisnappi ei ole enää pohjassa
         private void KeyIsUp(object sender, KeyEventArgs e)
         {
             if (e.Key == Key.Left)
@@ -206,6 +244,7 @@ namespace Tiskipeli
                 meneOikea = false;
             }
 
+            //Pelaajan ampumistoiminto
             if (e.Key == Key.Space)
             {
 
@@ -225,13 +264,17 @@ namespace Tiskipeli
 
             }
 
+            //Pelin uudelleen aloittamis toiminto
             if (e.Key == Key.Enter && peliOhi == true)
             {
                 System.Diagnostics.Process.Start(Application.ResourceAssembly.Location);
                 Application.Current.Shutdown();
             }
+
+
         }
 
+        //Aliohjelma vihun luoti oliolle ja sijainnille yms
         private void vihuLuodinTeko(double x, double y)
         {
 
@@ -239,11 +282,11 @@ namespace Tiskipeli
             {
 
                 Tag = "vihuLuoti",
-                Height = 40,
-                Width = 15,
+                Height = 30,
+                Width = 10,
                 Fill = Brushes.Yellow,
-                Stroke = Brushes.Black,
-                StrokeThickness = 5
+                Stroke = Brushes.Orange,
+                StrokeThickness = 10
 
             };
 
@@ -254,15 +297,17 @@ namespace Tiskipeli
 
         }
 
+        //Aliohjelma vihu olion luontiin
         private void luoVihu(int limit)
         {
             int vasen = 0;
 
             vihuMaara = limit;
 
+            //Vihu olio ja sen kuva
             for (int i = 0; i < limit; i++)
             {
-                
+
                 ImageBrush vihuKuva = new ImageBrush();
 
                 Rectangle uusiVihu = new Rectangle
@@ -283,12 +328,12 @@ namespace Tiskipeli
             }
         }
 
+        //Pelin lopettava aliohjelma joka myös päivittää pelin päälle tekstin riippuen hävisitkö vai voititko
         private void naytaPeliohi(string viesti)
         {
             peliOhi = true;
             peliAjastin.Stop();
             vihutJaljella.Content += " " + viesti + " Paina Enter pelataksesi uudelleen";
         }
-
     }
 }
diff --git a/Tiskipeli/Tiskipeli/Properties/AssemblyInfo.cs b/Tiskipeli/Tiskipeli/Properties/AssemblyInfo.cs
index 8c33fefba5d9bbd9b206a41fe6a3cd9f799f3876..d274eff5d0f34a221c807f90bff29e591a9d72c3 100644
--- a/Tiskipeli/Tiskipeli/Properties/AssemblyInfo.cs
+++ b/Tiskipeli/Tiskipeli/Properties/AssemblyInfo.cs
@@ -7,11 +7,11 @@ using System.Windows;
 // General Information about an assembly is controlled through the following
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
-[assembly: AssemblyTitle("Tiskipeli")]
+[assembly: AssemblyTitle("Tiskipelitesti")]
 [assembly: AssemblyDescription("")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Tiskipeli")]
+[assembly: AssemblyProduct("Tiskipelitesti")]
 [assembly: AssemblyCopyright("Copyright ©  2023")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
diff --git a/Tiskipeli/Tiskipeli/Properties/Resources.Designer.cs b/Tiskipeli/Tiskipeli/Properties/Resources.Designer.cs
index 3b5adc539614075505196aa8cbf7f91da982cdde..49ce98094134cb6400cc2925904afd4028f7ba59 100644
--- a/Tiskipeli/Tiskipeli/Properties/Resources.Designer.cs
+++ b/Tiskipeli/Tiskipeli/Properties/Resources.Designer.cs
@@ -8,7 +8,7 @@
 // </auto-generated>
 //------------------------------------------------------------------------------
 
-namespace Tiskipeli.Properties
+namespace Tiskipelitesti.Properties
 {
 
 
@@ -44,7 +44,7 @@ namespace Tiskipeli.Properties
             {
                 if ((resourceMan == null))
                 {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Tiskipeli.Properties.Resources", typeof(Resources).Assembly);
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Tiskipelitesti.Properties.Resources", typeof(Resources).Assembly);
                     resourceMan = temp;
                 }
                 return resourceMan;
diff --git a/Tiskipeli/Tiskipeli/Properties/Settings.Designer.cs b/Tiskipeli/Tiskipeli/Properties/Settings.Designer.cs
index 2cf834dd395124ed7b428131238babd018f8a5d4..54b8c60b7cd332722f819172bf30473d3098d653 100644
--- a/Tiskipeli/Tiskipeli/Properties/Settings.Designer.cs
+++ b/Tiskipeli/Tiskipeli/Properties/Settings.Designer.cs
@@ -8,7 +8,7 @@
 // </auto-generated>
 //------------------------------------------------------------------------------
 
-namespace Tiskipeli.Properties
+namespace Tiskipelitesti.Properties
 {
 
 
diff --git a/Tiskipeli/Tiskipeli/Tiskipeli.csproj b/Tiskipeli/Tiskipeli/Tiskipeli.csproj
index e796f03e1fa01aa447553b7bd05b4ea57a528003..15d814cb55b632750c184fc94b48ccb0522c0823 100644
--- a/Tiskipeli/Tiskipeli/Tiskipeli.csproj
+++ b/Tiskipeli/Tiskipeli/Tiskipeli.csproj
@@ -4,10 +4,10 @@
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{9523D3A0-13E0-4CEE-9871-FF19E1119F53}</ProjectGuid>
+    <ProjectGuid>{5588AD4F-15C7-4573-9D5A-6B3A10BA221F}</ProjectGuid>
     <OutputType>WinExe</OutputType>
-    <RootNamespace>Tiskipeli</RootNamespace>
-    <AssemblyName>Tiskipeli</AssemblyName>
+    <RootNamespace>Tiskipelitesti</RootNamespace>
+    <AssemblyName>Tiskipelitesti</AssemblyName>
     <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
     <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
@@ -95,11 +95,11 @@
     <None Include="App.config" />
   </ItemGroup>
   <ItemGroup>
-    <Resource Include="Kuvat\lautanen.png" />
-    <Resource Include="Kuvat\Tiskiharja.png" />
+    <Resource Include="Kuvat\Tiskiallas.png" />
   </ItemGroup>
   <ItemGroup>
-    <Resource Include="Kuvat\Tiskiallas.png" />
+    <Resource Include="Kuvat\lautanen.png" />
+    <Resource Include="Kuvat\Tiskiharja.png" />
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 </Project>
\ No newline at end of file