Changeset 1673 for 2010/31


Ignore:
Timestamp:
2010-08-06 13:03:18 (9 years ago)
Author:
paaaanro
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/31/vivevinu/Mittelo maasta/Peli.cs

    r1630 r1673  
    11using System; 
     2using System.Collections.Generic; 
    23using Jypeli; 
    34using Jypeli.Widgets; 
     
    1920    const int ruudunLeveys = 40; 
    2021    const int ruudunKorkeus = 40; 
    21     Label teksti2;// = new Label();// = new Label("Ostettava ruutu: " + x.ToString() + ", " + y.ToString()); 
     22    Label teksti2; 
     23    Label teksti5; 
     24 
     25    List<PhysicsObject> pelaaja1maat = new List<PhysicsObject>(); 
     26    List<PhysicsObject> pelaaja2maat = new List<PhysicsObject>(); 
    2227 
    2328    protected override void Begin() 
     
    2530        paikka = new Vector(0,0); 
    2631        teksti2 = new Label(); 
     32        teksti5 = new Label("pelaaja1"); 
     33        Add(teksti5); 
    2734        Add(teksti2); 
    2835        LuoKentta(); 
     
    3744        teksti1.X = Screen.Left + 50; 
    3845        teksti1.Y = Screen.Top - 15; 
     46         
    3947        Add(teksti1); 
    4048        for (int i = -15; i < 16; i++) 
     
    5866        { 
    5967            b = "pelaaja2"; 
    60             Label teksti5 = new Label(b); 
     68            teksti5.Text = b; 
    6169            teksti5.X = Screen.Left + 160; 
    6270            teksti5.Y = Screen.Top - 15; 
    63             Add(teksti5); 
    6471        } 
    6572        else 
    6673        { 
    6774            b = "pelaaja1"; 
    68             Label teksti5 = new Label(b); 
     75            teksti5.Text = b;  
    6976            teksti5.X = Screen.Left + 160; 
    7077            teksti5.Y = Screen.Top - 15; 
    71             Add(teksti5); 
    7278        } 
    7379        Liikkuminen(); 
    74         a = false; 
    7580    } 
    7681    void Liikkuminen() 
    7782    { 
     83        ClearControls(); 
    7884        Vector vasen = new Vector(-1, 0); 
    7985        Vector ylos = new Vector(0,1); 
     
    8692        teksti2.X = Screen.Left + 600; 
    8793        teksti2.Y = Screen.Top - 15; 
    88        
    89         Keyboard.Listen(Key.Enter, ButtonState.Down, Ostamaa, null); 
    90  
     94        Keyboard.Listen(Key.Enter, ButtonState.Pressed, Ostamaa, null); 
    9195    } 
    9296 
    9397    void LiikutaValintaa(Vector maara) 
    9498    { 
     99        paikka += maara; 
    95100        teksti2.Text = "Ostettava ruutu: " + paikka.X + ", " + paikka.Y; 
    96         paikka = paikka + maara; 
    97101    } 
    98102 
    99103    void Ostamaa() 
    100104    { 
    101         a = true; 
    102  
     105        if (TarkistaPaikka(paikka) != null) 
     106        { 
     107            Liikkuminen(); 
     108            return; 
     109        } 
     110        if (TarkistaPaikka(paikka) == null) 
     111        { 
     112            PhysicsObject lippu = PhysicsObject.CreateStaticObject(40.0, 40.0); 
     113            PhysicsObject torni = PhysicsObject.CreateStaticObject(40, 40); 
     114            PhysicsObject rata = PhysicsObject.CreateStaticObject(40.0, 40.0); 
     115            rata.Image = lentokentta; 
     116            if (-16 < paikka.X && paikka.X < 16 && -12 < paikka.Y && paikka.Y < 12) 
     117            { 
     118                if (b == "pelaaja1") 
     119                { 
     120                    lippu.Image = sinlippu; 
     121                    lippu.Tag = "pelaaja1"; 
     122                    pelaaja1maat.Add(lippu); 
     123                } 
     124                else 
     125                { 
     126                    lippu.Tag = "pelaaja2"; 
     127                    lippu.Image = punlippu; 
     128                    pelaaja2maat.Add(lippu); 
     129                } 
     130            } 
     131            lippu.Position = 40 * paikka;            
     132            Add(lippu);             
     133            Tutkisuorat();                      
     134            Vuoro(); 
     135        } 
     136    } 
     137 
     138    PhysicsObject TarkistaPaikka(Vector paikka) 
     139    { 
     140        foreach (PhysicsObject lippu in pelaaja1maat) 
     141        { 
     142            if (lippu.Position == paikka * 40) return lippu; 
     143        } 
     144        foreach (PhysicsObject lippu in pelaaja2maat) 
     145        { 
     146            if (lippu.Position == paikka * 40) return lippu; 
     147        } 
     148 
     149        return null; 
     150    } 
     151    void Tutkisuorat() 
     152    { 
     153        foreach (PhysicsObject lippu in pelaaja1maat) 
     154        { 
     155            if (TarkistaVaakaSuora(lippu, "pelaaja1") || TarkistaPystySuora(lippu, "pelaaja1")) 
     156            { 
     157                PaataPeli("pelaaja1"); 
     158            } 
     159 
     160        } 
     161        foreach (PhysicsObject lippu in pelaaja2maat) 
     162        { 
     163            if (TarkistaVaakaSuora(lippu, "pelaaja2") || TarkistaPystySuora(lippu, "pelaaja2")) 
     164            { 
     165                PaataPeli("pelaaja2"); 
     166            } 
     167        } 
     168    } 
     169 
     170    bool TarkistaVaakaSuora(PhysicsObject lippu, string omistaja) 
     171    { 
     172        Vector lipunPaikka = lippu.Position; 
     173        Vector tarkistuspaikka = new Vector(0, 0); 
     174        tarkistuspaikka.Y = (lippu.Y / 40); 
     175        bool suora = true; 
     176        for (int i = 1; i < 5; i++) 
     177        { 
     178            tarkistuspaikka.X = (lipunPaikka.X / 40) - i; 
     179 
     180            if (TarkistaPaikka(tarkistuspaikka) == null) 
     181            { 
     182                suora = false; 
     183                break; 
     184            } 
     185            if (TarkistaPaikka(tarkistuspaikka).Tag.ToString() != omistaja) 
     186            { 
     187                suora = false; 
     188                break; 
     189            } 
     190        } 
     191        return suora; 
     192    } 
     193 
     194    bool TarkistaPystySuora(PhysicsObject lippu, string omistaja) 
     195    { 
     196        Vector lipunPaikka = lippu.Position; 
     197        Vector tarkistuspaikka = new Vector(0, 0); 
     198        tarkistuspaikka.X = (lippu.X / 40); 
     199        bool suora = true; 
     200        for (int i = 1; i < 5; i++) 
     201        { 
     202            tarkistuspaikka.Y = (lipunPaikka.Y / 40) - i; 
     203 
     204            if (TarkistaPaikka(tarkistuspaikka) == null) 
     205            { 
     206                suora = false; 
     207                break; 
     208            } 
     209            if (TarkistaPaikka(tarkistuspaikka).Tag.ToString() != omistaja) 
     210            { 
     211                suora = false; 
     212                break; 
     213            } 
     214        } 
     215 
     216        return suora; 
     217    } 
     218 
     219    void Tutkiymparisto() 
     220    { 
     221        foreach(PhysicsObject lippu in pelaaja1maat) 
     222        { 
     223            //if(lippu.Position==(lippu.Position.Y+1, lippu.Position.X) 
     224        } 
    103225    } 
    104226    PhysicsObject LuoPelto() 
     
    108230        return peltomaa; 
    109231    } 
    110     PhysicsObject Luosinlippu() 
    111     { 
    112         PhysicsObject sinilippu = PhysicsObject.CreateStaticObject(40.0, 40.0); 
    113         sinilippu.Image = sinlippu; 
    114         return sinilippu; 
    115     } 
    116     PhysicsObject Luopunlippu() 
    117     { 
    118         PhysicsObject punalippu = PhysicsObject.CreateStaticObject(40.0, 40.0); 
    119         punalippu.Image = punlippu; 
    120         return punalippu; 
    121     } 
    122     PhysicsObject Luosinitorni() 
    123     { 
    124         PhysicsObject sinitorni = PhysicsObject.CreateStaticObject(40.0, 40.0); 
    125         sinitorni.Image = sintorni; 
    126         return sinitorni; 
    127     } 
    128     PhysicsObject Luopuntorni() 
    129     { 
    130         PhysicsObject punatorni = PhysicsObject.CreateStaticObject(40.0, 40.0); 
    131         punatorni.Image = puntorni; 
    132         return punatorni; 
    133     } 
    134     PhysicsObject Luolentokentta() 
    135     { 
    136         PhysicsObject rata = PhysicsObject.CreateStaticObject(40.0, 40.0); 
    137         rata.Image = lentokentta; 
    138         return rata; 
    139     } 
    140  
     232 
     233    void PaataPeli(string voittaja) 
     234    { 
     235        ClearAll(); 
     236        Label teksti6 = new Label(voittaja + " voitti pelin!"); 
     237        teksti6.Position = new Vector(0, 0); 
     238        Add(teksti6); 
     239        Timer ajastin = new Timer(); 
     240        ajastin.Interval = 3; 
     241        ajastin.Trigger += Loppu; 
     242        ajastin.Start(); 
     243                
     244 
     245    } 
     246    void Loppu(Timer sender) 
     247    { 
     248        Exit(); 
     249    } 
    141250} 
Note: See TracChangeset for help on using the changeset viewer.