예제 #1
0
 private void _yilan_KendisineDegdi(Yilan yilan, KonsolKonum kuyrukSonu, KonsolKonum yilanBasi)
 {
     if (kuyrukSonu == yilanBasi)
     {
         return;
     }
 }
예제 #2
0
 private static void yilan_HareketEtti(Yilan yilan, KonsolKonum kuyruk, KonsolKonum bas)
 {
     Console.SetCursorPosition(bas.SolaOlanUzaklik, bas.UsteOlanUzaklik);
     Console.Write(yilanSembolu);
     Console.SetCursorPosition(kuyruk.SolaOlanUzaklik, kuyruk.UsteOlanUzaklik);
     Console.Write(" ");
 }
예제 #3
0
        private KonsolKonum YeniKafaKonumuYarat()
        {
            KonsolKonum yeniKafaKonumu = new KonsolKonum();

            switch (_mevcutYon)
            {
            case HareketYonleri.Yukari:
                yeniKafaKonumu.SolaOlanUzaklik = _mevcutKafaKonumu.SolaOlanUzaklik;
                yeniKafaKonumu.UsteOlanUzaklik = _mevcutKafaKonumu.UsteOlanUzaklik - 1;
                break;

            case HareketYonleri.Asagi:
                yeniKafaKonumu.SolaOlanUzaklik = _mevcutKafaKonumu.SolaOlanUzaklik;
                yeniKafaKonumu.UsteOlanUzaklik = _mevcutKafaKonumu.UsteOlanUzaklik + 1;
                break;

            case HareketYonleri.Sola:
                yeniKafaKonumu.SolaOlanUzaklik = _mevcutKafaKonumu.SolaOlanUzaklik - 1;
                yeniKafaKonumu.UsteOlanUzaklik = _mevcutKafaKonumu.UsteOlanUzaklik;
                break;

            case HareketYonleri.Saga:
                yeniKafaKonumu.SolaOlanUzaklik = _mevcutKafaKonumu.SolaOlanUzaklik + 1;
                yeniKafaKonumu.UsteOlanUzaklik = _mevcutKafaKonumu.UsteOlanUzaklik;
                break;
            }

            return(yeniKafaKonumu);
        }
예제 #4
0
 private void CiktiysaGeriGirdir(KonsolKonum yeniKonum)
 {
     yeniKonum.SolaOlanUzaklik = yeniKonum.SolaOlanUzaklik > _oyunAlaniGenisligi ? 1 : yeniKonum.SolaOlanUzaklik;
     yeniKonum.UsteOlanUzaklik =
         yeniKonum.UsteOlanUzaklik > _oyunAlaniYuksekligi ? 1 : yeniKonum.UsteOlanUzaklik;
     yeniKonum.SolaOlanUzaklik = yeniKonum.SolaOlanUzaklik < 1  ? _oyunAlaniGenisligi : yeniKonum.SolaOlanUzaklik;
     yeniKonum.UsteOlanUzaklik =
         yeniKonum.UsteOlanUzaklik < 1 ? _oyunAlaniYuksekligi : yeniKonum.UsteOlanUzaklik;
 }
예제 #5
0
 public static void YilaniVeYemiCiz(KonsolKonum[] yilanGovdeKonumlari, KonsolKonum yemKonumu)
 {
     foreach (var konum in yilanGovdeKonumlari)
     {
         Console.SetCursorPosition(konum.SolaOlanUzaklik, konum.UsteOlanUzaklik);
         Console.Write(yilanSembolu);
     }
     Console.SetCursorPosition(yemKonumu.SolaOlanUzaklik, yemKonumu.UsteOlanUzaklik);
     Console.Write(yemSembolu);
 }
예제 #6
0
 public Yilan(int oyunAlaniGenisligi, int oyunAlaniYuksekligi)
 {
     Konumlar             = new Queue <KonsolKonum>();
     _oyunAlaniGenisligi  = oyunAlaniGenisligi;
     _oyunAlaniYuksekligi = oyunAlaniYuksekligi;
     _mevcutYon           = HareketYonleri.Saga;
     for (int i = 0; i < 4; i++)
     {
         var varsayılanNokta = new KonsolKonum()
         {
             SolaOlanUzaklik = 5 + i, UsteOlanUzaklik = oyunAlaniYuksekligi / 2
         };
         Konumlar.Enqueue(varsayılanNokta);
         if (i == 3)
         {
             _mevcutKafaKonumu = varsayılanNokta;
         }
     }
 }
예제 #7
0
        public void HareketEt()
        {
            var yeniKafaKonumu = YeniKafaKonumuYarat();

            var kuyruktanCikanKonum = Konumlar.Dequeue();

            CiktiysaGeriGirdir(yeniKafaKonumu);

            if (KuyrugaCarptiMi(yeniKafaKonumu))
            {
                YilanKendisineDegdi(this, kuyruktanCikanKonum, yeniKafaKonumu);
            }

            Konumlar.Enqueue(yeniKafaKonumu);
            _mevcutKafaKonumu = yeniKafaKonumu;

            if (YilanHareketEtti != null)
            {
                YilanHareketEtti(this, kuyruktanCikanKonum, yeniKafaKonumu);
            }
        }
예제 #8
0
 private void _yilan_KendisineDegdi(Yilan yilan, KonsolKonum kuyrukSonu, KonsolKonum yilanBasi)
 {
 }
예제 #9
0
 private void _yilan_hareketEtti(Yilan yilan, KonsolKonum kuyrukSonu, KonsolKonum yilanBasi)
 {
     YilanHareketEtti(yilan, kuyrukSonu, yilanBasi);
 }
예제 #10
0
 private bool KuyrugaCarptiMi(KonsolKonum yeniKafaKonumu)
 {
     return(Konumlar.Contains(yeniKafaKonumu));
 }