From 04bdca8b93732e64f62b1ed1b00c3da9ff61b144 Mon Sep 17 00:00:00 2001
From: Kopperoinen Paulus <paulus.j.kopperoinen@student.jyu.fi>
Date: Tue, 31 Oct 2023 16:44:47 +0200
Subject: [PATCH] =?UTF-8?q?Tein=20kokonaan=20uuden=20liikkumisj=C3=A4rjest?=
 =?UTF-8?q?elm=C3=A4n,=20mato=20voi=20viel=C3=A4kin=20j=C3=A4=C3=A4d=C3=A4?=
 =?UTF-8?q?=20ruutujen=20puoleen=20v=C3=A4liin,=20mutta=20p=C3=A4=C3=A4tin?=
 =?UTF-8?q?,=20ettei=20minua=20kiinnosta=20se=20ja=20aion=20pit=C3=A4?=
 =?UTF-8?q?=C3=A4=20liikkumismekanismin=20sillaisenaan,=20tein=20siis=20pe?=
 =?UTF-8?q?lin=20kokonaan=20uudestaan=20t=C3=A4h=C3=A4n=20vaiheeseen=20ast?=
 =?UTF-8?q?i.=20Seuraavaksi=20aion=20lis=C3=A4t=C3=A4=20omenat=20ja=20niid?=
 =?UTF-8?q?en=20uudelleensyntymismekanismin,=20sek=C3=A4=20sen=20j=C3=A4lk?=
 =?UTF-8?q?een=20madon=20pituuden=20kasvumekanismin?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Matopeli/Matopeli/Matopeli.cs     | 268 ++++++++++++++++--------------
 Matopeli/Matopeli/Matopeli.csproj |   4 +
 Matopeli/Matopeli/nollaaja.cs     |  14 ++
 3 files changed, 160 insertions(+), 126 deletions(-)
 create mode 100644 Matopeli/Matopeli/nollaaja.cs

diff --git a/Matopeli/Matopeli/Matopeli.cs b/Matopeli/Matopeli/Matopeli.cs
index 5874291..b958796 100644
--- a/Matopeli/Matopeli/Matopeli.cs
+++ b/Matopeli/Matopeli/Matopeli.cs
@@ -1,173 +1,189 @@
-using System;
 using System.Collections.Generic;
-using System.Runtime.ExceptionServices;
-using System.Xml.Serialization;
+using System.Security.Cryptography.X509Certificates;
 using Jypeli;
 using Jypeli.Assets;
 using Jypeli.Controls;
-using Jypeli.Effects;
 using Jypeli.Widgets;
 
-
-namespace Matopeli;
+namespace matopeli;
 
 /// @author Omanimi
-/// @version 26.10.2023
+/// @version 30.10.2023
 /// <summary>
 /// 
 /// </summary>
-    public class Matopeli : PhysicsGame
+public class matopeli : PhysicsGame
+{
+    private Objektit Mato;
+    public double MatoX;
+    public double MatoY;
+    public int SuuntaX;
+    public int SuuntaY;
+    
+    private static readonly Image seinakuva = LoadImage("seina.png");
+    private static readonly Image matopaakuva = LoadImage("matopaa.png");
+    private readonly Image matokehokuva = LoadImage("matokeho.png");
+    private readonly Image omenakuva = LoadImage("omena.png");
+    private readonly Image kenttatausta = LoadImage("kenttatausta.png");
+    
+    private bool SuuntaYlos = false;
+    private bool SuuntaAlas = false;
+    private bool SuuntaOikea = false;
+    private bool SuuntaVasen = false;
+    
+    public override void Begin()
     {
+        // Kirjoita ohjelmakoodisi tähän
 
-        private static readonly string[] kentta ={
-            "---------------",
-            "-             -",
-            "-             -",
-            "-             -",
-            "-             -",
-            "-             -",
-            "-    m        -",
-            "-             -",
-            "-             -",
-            "-             -",
-            "-             -",
-            "-             -",
-            "-             -",
-            "---------------",
-        };
-        private int seinaleveys= 600 / kentta.Length;
-        private int seinakorkeus = 600 / kentta.Length;
-
-        private static readonly Image seinakuva = LoadImage("seina.png");
-        private static readonly Image matopaakuva = LoadImage("matopaa.png");
-        private readonly Image matokehokuva = LoadImage("matokeho.png");
-        private readonly Image omenakuva = LoadImage("omena.png");
-        private readonly Image kenttatausta = LoadImage("kenttatausta.png");
-
-        private LiikkuvaMato mato;
-        private LiikkuvaMato omena;
+        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
+        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
+        AloitaUusiPeli();
         
-        public readonly IntMeter pisteet = new IntMeter(0);
+    }
 
+    public void AloitaUusiPeli()
+    {
+        ClearAll();
+        SuuntaAlas = true;
+        LuoMato();
+        Asetaohjaimet();
+        LuoAikalaskuri();
+    }
+    private void Asetaohjaimet()
+    {
+        Keyboard.Listen(Key.Up, ButtonState.Pressed, VaihdaSuuntaYlos, "Turn upwards");
+        Keyboard.Listen(Key.Down, ButtonState.Pressed, VaihdaSuuntaAlas, "Turn downwards");
+        Keyboard.Listen(Key.Left, ButtonState.Pressed, VaihdaSuuntaVasen , "Turn left");
+        Keyboard.Listen(Key.Right, ButtonState.Pressed, VaihdaSuuntaOikea, "Turn right");
+    }
+    public PhysicsObject LuoMato()
+    {
+        Mato = new Objektit(60, 60, new Vector(0,0));
+        Mato.Color = Color.Charcoal;
+        Mato.Position = new Vector(0, 0);
+        Add(Mato);
+        Mato.Tag = "mato";
+        return Mato;
+    }
 
-        public override void Begin()
+     private void VaihdaSuuntaYlos()
         {
-            ClearAll();
-           // Background.Image = LoadImage("kenttatausta");
-            //LuoTausta();
-        
-            AloitaUusiPeli();
+            
+            if (SuuntaAlas==true)
+            {
+                SuuntaOikea = false;
+                SuuntaVasen = false;
+                SuuntaYlos = false;
+                SuuntaAlas = true;
+            }
+            else
+            {
+                SuuntaOikea = false;
+                SuuntaVasen = false;
+                SuuntaYlos = true;
+                SuuntaAlas = false;
+            }
         }
-
-        public void AloitaUusiPeli()
+     
+     private void VaihdaSuuntaAlas()
         {
-            // pisteet.Value = 0;
-
-            TileMap seinat = TileMap.FromStringArray(kentta);
-            seinat.SetTileMethod('-', LuoSeina);
-            seinat['m'] = LuoMato;
-            //seinat.SetTileMethod('k',LuoMatokeho);
-            seinat.Insert(seinaleveys, seinakorkeus);
-            Asetaohjaimet();
-
-            seinat.Execute(seinaleveys, seinakorkeus);
-            LuoOmena();
+            if (SuuntaYlos==true)
+            {
+                SuuntaOikea = false;
+                SuuntaVasen = false;
+                SuuntaYlos = true;
+                SuuntaAlas = false;
+            }
+            else
+            {
+                SuuntaOikea = false;
+                SuuntaVasen = false;
+                SuuntaYlos = false;
+                SuuntaAlas = true;
+            }
         }
-
-
-
-        private void Asetaohjaimet()
+        
+     private void VaihdaSuuntaOikea()
         {
-            Keyboard.Listen(Key.Up, ButtonState.Down, KaannyYlos, "Turn upwards");
-            Keyboard.Listen(Key.Down, ButtonState.Down, KaannyAlas, "Turn downwards");
-            Keyboard.Listen(Key.Left, ButtonState.Down, KaannyVasen, "Turn left");
-            Keyboard.Listen(Key.Right, ButtonState.Down, KaannyOikea, "Turn right");
-        }
+            if (SuuntaVasen == true)
+            {
+                
+                SuuntaOikea = false;
+                SuuntaVasen = true;
+                SuuntaYlos = false;
+                SuuntaAlas = false;
+            }
+            else
+            {
+                SuuntaOikea = true;
+                SuuntaVasen = false;
+                SuuntaYlos = false;
+                SuuntaAlas = false;
+            }
 
-        private void KaannyYlos()
-        {
-            
-            mato.Velocity = new Vector(0, 150);
-            mato.Angle = Angle.FromDegrees(90);
-        }
-        private void KaannyAlas()
-        {
-            
-            mato.Velocity = new Vector(0, -150);
-            mato.Angle = Angle.FromDegrees(270);
         }
-        private void KaannyVasen()
+        
+     private void VaihdaSuuntaVasen()
         {
-            
-            mato.Velocity = new Vector(-150, 0);
-            mato.Angle = Angle.FromDegrees(180);
+            if (SuuntaOikea==true)
+            {
+                SuuntaOikea = true;
+                SuuntaVasen = false;
+                SuuntaYlos = false;
+                SuuntaAlas = false;
+            }
+            else
+            {
+                SuuntaOikea = false;
+                SuuntaVasen = true;
+                SuuntaYlos = false;
+                SuuntaAlas = false;
+            }
         }
-        private void KaannyOikea()
+     private void LuoAikalaskuri()
         {
-            
-            mato.Velocity = new Vector(150, 0);
-            mato.Angle = Angle.FromDegrees(0);
+            Timer aikalaskuri = new Timer();
+            aikalaskuri.Interval = 0.008;
+            aikalaskuri.Timeout += LiikutaMatoa;
+            aikalaskuri.Start();
         }
 
-        private void LuoSeina(Vector paikka, double leveys, double korkeus)
-            {
-                PhysicsObject seina = new PhysicsObject(leveys, korkeus);
-                seina.Position = paikka;
-                seina.Image = seinakuva;
-                seina.Tag = "seina";
-                seina.MakeStatic();
-                Add(seina);
-            }
-        
-
-        
-        private PhysicsObject LuoMato()
+    private void LiikutaMatoa()
+    {
+        if (SuuntaYlos==true)
         {
-            mato = new LiikkuvaMato(seinaleveys, seinakorkeus);
-            mato.Image = Matopeli.matopaakuva;
-            mato.Tag = "mato";
-            mato.Velocity = new Vector(150, 0);
-            AddCollisionHandler(mato, "seina", TormaaSeinaan);
-            AddCollisionHandler(mato, "omena", SyoOmenan);
-            return mato;
-
+            Mato.Y++;
         }
-
-        private PhysicsObject LuoOmena()
+        if (SuuntaAlas==true)
         {
-            omena = new LiikkuvaMato(seinaleveys, seinakorkeus);
-            omena.Image = omenakuva;
-            omena.Tag = "omena";
-            return omena;
+            Mato.Y--;
         }
-        
-        
-        private void TormaaSeinaan(IPhysicsObject mato,IPhysicsObject seina)
+        if (SuuntaOikea==true)
         {
-            mato.Velocity = new Vector(0,0);
-            seina.Velocity = new Vector(0, 0);
-            
+            Mato.X++;
         }
-
-        private void SyoOmenan(IPhysicsObject mato, IPhysicsObject omena)
+        if (SuuntaVasen==true)
         {
-            omena.Destroy();
+            Mato.X--;
         }
+        
 
     }
-    
 
-
-    public class LiikkuvaMato : PhysicsObject
+    private class Objektit : PhysicsObject
     {
-        public LiikkuvaMato(double leveys, double korkeus)
-            : base(leveys, korkeus)
+         public Objektit(double leveys, double korkeus, Vector paikka)
+        : base(leveys, korkeus)
         {
             Mass = 10000;
-            IgnoresGravity = true;
             IsUpdated = true;
         }
-    }       
+    }
+
+
+
+}
+
         
 
 
diff --git a/Matopeli/Matopeli/Matopeli.csproj b/Matopeli/Matopeli/Matopeli.csproj
index efce696..7fb5906 100644
--- a/Matopeli/Matopeli/Matopeli.csproj
+++ b/Matopeli/Matopeli/Matopeli.csproj
@@ -47,4 +47,8 @@
       </None>
     </ItemGroup>
 
+    <ItemGroup>
+      <Compile Remove="nollaaja.cs" />
+    </ItemGroup>
+
 </Project>
diff --git a/Matopeli/Matopeli/nollaaja.cs b/Matopeli/Matopeli/nollaaja.cs
new file mode 100644
index 0000000..7d600fc
--- /dev/null
+++ b/Matopeli/Matopeli/nollaaja.cs
@@ -0,0 +1,14 @@
+namespace Matopeli;
+
+
+class nollaaja
+{
+    public int X { get; set; }
+    public int Y { get; set; }
+    public nollaaja()
+    {
+        X = 0;
+        Y = 0;
+    }
+
+}
\ No newline at end of file
-- 
GitLab