Changeset 921 for 2010/24


Ignore:
Timestamp:
2010-06-16 16:04:04 (9 years ago)
Author:
anlakane
Message:

Kortteja laitetaan nyt 2-ulotteiseen taulukkoon. Liikkuminen korttien välillä toimii. Kortit eivät käänny eikä pelissä muutenkaan ole vielä mitään järkeä.

Location:
2010/24/anlakane/Muistipeli
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • 2010/24/anlakane/Muistipeli/Kortti.cs

    r888 r921  
    1212        bool onkoKaantynyt; 
    1313        protected Vector alkuperainenKoko; 
    14         protected enum PuoliEsilla { Etu, Taka } 
     14        public enum PuoliEsilla { Kuva, Taka } 
    1515        protected enum Liikkeentila { Pysahtynyt, Pienentyy, Suurentuu } 
    16         protected Jypeli.Color etuVari; 
    17         protected Jypeli.Color takaVari; 
    1816        Liikkeentila liikkeenTila; 
    1917        PuoliEsilla puoliEsilla; 
    20         bool kaantyminenAlkanut = false; 
     18        private bool kaantyminenAlkanut = false; 
    2119 
    22         public Kortti(double width, double height, bool etupuoliEsilla, Jypeli.Color etuVari, Jypeli.Color takaVari) 
     20        public Jypeli.Color kuvapuoliVari; 
     21        public Jypeli.Color takaVari; 
     22        public bool onkoPoistettuPelista; 
     23 
     24        public Kortti(double width, double height, bool kuvapuoliEsilla, Jypeli.Color kuvapuoliVari, Jypeli.Color takaVari) 
    2325            : base(width, height, Shapes.Rectangle) 
    2426        { 
    25             this.etuVari = etuVari; 
     27            this.kuvapuoliVari = kuvapuoliVari; 
    2628            this.takaVari = takaVari; 
     29            this.onkoPoistettuPelista = false; 
    2730 
    28             if (etupuoliEsilla) 
     31            if (kuvapuoliEsilla) 
    2932            { 
    30                 this.puoliEsilla = PuoliEsilla.Etu; 
    31                 this.Color = etuVari; 
     33                this.puoliEsilla = PuoliEsilla.Kuva; 
     34                this.Color = kuvapuoliVari; 
    3235            } 
    3336            else 
     
    3639                this.Color = takaVari; 
    3740            } 
    38             //thisonkoKaantynyt = false; 
    39             //liikkeenTila = Liikkeentila.Kuvapuoli; 
     41 
    4042            IsUpdated = true; 
    4143            this.alkuperainenKoko = new Vector(width, height); 
     
    4850        } 
    4951 
     52        public PuoliEsilla KumpiPuoliEsilla() 
     53        { 
     54            return this.puoliEsilla; 
     55        } 
     56 
    5057        void AsetaPuoli(PuoliEsilla puoli) 
    5158        { 
     59            puoliEsilla = puoli; 
    5260            switch (puoli) 
    5361            { 
    54                 case PuoliEsilla.Etu: 
    55                     this.Color = etuVari; 
     62                case PuoliEsilla.Kuva: 
     63                    this.Color = kuvapuoliVari; 
    5664                    break; 
    5765                case PuoliEsilla.Taka: 
     
    7583                if (this.Width <= 3) 
    7684                { 
    77                     liikkeenTila = Liikkeentila.Suurentuu; 
    78                     if (puoliEsilla == PuoliEsilla.Etu) 
     85 
     86                    if (puoliEsilla == PuoliEsilla.Kuva) 
    7987                    { 
    8088                        AsetaPuoli(PuoliEsilla.Taka); 
     
    8290                    else 
    8391                    { 
    84                         AsetaPuoli(PuoliEsilla.Etu); 
     92                        AsetaPuoli(PuoliEsilla.Kuva); 
    8593                    } 
     94                    liikkeenTila = Liikkeentila.Suurentuu; 
    8695                } 
    8796            } 
  • 2010/24/anlakane/Muistipeli/Muistipeli.csproj

    r882 r921  
    5757  </PropertyGroup> 
    5858  <ItemGroup> 
    59     <Reference Include="Jypeli2, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86"> 
     59    <Reference Include="Jypeli2, Version=2.1.6.0, Culture=neutral, processorArchitecture=x86"> 
    6060      <SpecificVersion>False</SpecificVersion> 
    6161      <HintPath>..\..\lib\Jypeli2.dll</HintPath> 
     
    8383  <ItemGroup> 
    8484    <Compile Include="Kortti.cs" /> 
     85    <Compile Include="Peli2.cs" /> 
    8586    <Compile Include="Properties\AssemblyInfo.cs" /> 
    8687    <Compile Include="Ohjelma.cs" /> 
  • 2010/24/anlakane/Muistipeli/Ohjelma.cs

    r882 r921  
    99        static void Main(string[] args) 
    1010        { 
    11             using (Peli game = new Peli()) 
     11            using (Peli2 game = new Peli2()) 
    1212            { 
    1313                game.Run(); 
  • 2010/24/anlakane/Muistipeli/Peli.cs

    r888 r921  
    1212        double kortinLeveys = 80; 
    1313        double kortinKorkeus = 100; 
     14        int montakoKorttia; 
    1415        int korostettuKortti; 
    1516        int montakoKorttiaRiviin; 
     
    2829 
    2930        protected override void Begin() 
    30         //void Begin2() 
    31         { 
     31        { 
     32            montakoKorttia = 50; 
    3233            TeeKortit(); 
    3334            AsetaNappaimet(); 
     
    4950            } 
    5051 
    51             if (kortinNro > kortit.Count - 1) 
    52             { 
    53                 kortinNro = 0; 
     52            if (kortinNro > kortit.Count - 1) // Hypätään viimeisestä kortista oikealle 
     53            { 
     54                kortinNro--; // "Palataan viimeiseen korttiin" 
     55                //kortinNro = 0; 
     56                int jj = kortit.Count % (montakoKorttiaRiviin + 1); // Montako korttia viimeisellä rivillä on 
     57                kortinNro = kortit.Count - jj; // Siirrytään viimeisen rivin ensimmäiseen korttiin 
    5458            } 
    5559 
     
    6064        { 
    6165            kortinNro = KortinNumeronTarkistus(kortinNro); 
    62             kortit[kortinNro].Color = Color.Gray; 
    63             korostettuKortti = kortinNro; 
     66            Kortti.PuoliEsilla puoliesilla = kortit[kortinNro].KumpiPuoliEsilla(); 
     67            if (puoliesilla == Kortti.PuoliEsilla.Taka) 
     68            { 
     69                double punainen = kortit[kortinNro].Color.RedComponent;                 
     70                double sininen = kortit[kortinNro].Color.BlueComponent; 
     71                double vihrea= kortit[kortinNro].Color.GreenComponent; 
     72 
     73 
     74                kortit[kortinNro].Color = new Color( 
     75                    punainen + 0.5, 
     76                    sininen+ 0.5, 
     77                    vihrea + 0.5); 
     78                korostettuKortti = kortinNro; 
     79            } 
     80            else 
     81            { 
     82                kortit[kortinNro].Color = Color.Gray; 
     83                korostettuKortti = kortinNro; 
     84            } 
    6485        } 
    6586 
     
    6788        { 
    6889            kortinNro = KortinNumeronTarkistus(kortinNro); 
    69             kortit[kortinNro].Color = Color.White; 
     90 
     91            Kortti.PuoliEsilla puoliesilla = kortit[kortinNro].KumpiPuoliEsilla(); 
     92            if (puoliesilla == Kortti.PuoliEsilla.Kuva) 
     93            { 
     94                kortit[kortinNro].Color = kortit[kortinNro].kuvapuoliVari; 
     95            } 
     96            if (puoliesilla == Kortti.PuoliEsilla.Taka) 
     97            { 
     98                kortit[kortinNro].Color = kortit[kortinNro].takaVari; 
     99            } 
     100 
    70101        } 
    71102 
     
    77108            Keyboard.Listen(Key.Down, ButtonState.Pressed, KortinValinta, null, Suunta.Alas); 
    78109            Keyboard.Listen(Key.Space, ButtonState.Pressed, KaannaKortti, null); 
     110            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Lopeta, null); 
     111        } 
     112 
     113        void Lopeta() 
     114        { 
     115            Exit(); 
    79116        } 
    80117 
    81118        void KaannaKortti() 
    82119        { 
    83             //b ool onkoKaannetty = kortti1.Kaanna(); 
    84120            kortit[korostettuKortti].Kaanna(); 
    85             //MessageDisplay.Add(onkoKaannetty.ToString()); 
    86121        } 
    87122 
     
    146181        void TeeKortit() 
    147182        { 
    148             for (int i = 0; i < 15; i++) 
     183            for (int i = 0; i < montakoKorttia; i++) 
    149184            { 
    150185                TeeKortti(); 
     
    157192            //int montakoKorttiaRiviin = 8; 
    158193            montakoKorttiaRiviin = (int)Math.Sqrt(kortit.Count); 
     194            montakoKorttiaRiviin = (int)Math.Floor((3.0 / 2.0) * montakoKorttiaRiviin); 
    159195            int montakoRivia = (kortit.Count / montakoKorttiaRiviin); 
    160196 
     
    167203                //kortti.X = (-(montakoKorttia * (kortinLeveys + 20)) / 2) + (i * (kortinLeveys + 20)); 
    168204                kortti.X = (-(montakoKorttiaRiviin * (kortinLeveys + 20)) / 2) + (rivilla * (kortinLeveys + 20)); 
    169                 kortti.Y = (montakoRivia * (kortinKorkeus + 20)) / 2 - rivi * (kortinKorkeus + 20); 
     205                kortti.Y = ((montakoRivia+1) * (kortinKorkeus + 20)) / 2 - rivi * (kortinKorkeus + 20); 
    170206                i++; 
    171207                rivilla++; 
Note: See TracChangeset for help on using the changeset viewer.