Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - hata düzeltme
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir.

hata düzeltme

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
Mali Demirok Açılır Kutu İzle
Yeni Üye
Yeni Üye
Simge

Kayıt Tarihi: 23 Mart 2026
Konum: konya
Durum: Aktif Değil
Puanlar: 4
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Mali Demirok Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: hata düzeltme
    Gönderim Zamanı: 1 saat 32 Dakika Önce Saat 15:38
var
  Form1: TclForm;
  Timer1: TClTimer;
  GridW, GridH: Integer;
  SnakeX: array[0..100] of Integer;
  SnakeY: array[0..100] of Integer;
  SnakeLen: Integer;
  FoodX, FoodY: Integer;
  DirX, DirY: Integer;
  OyunBitti: Boolean;
  Puan: Integer;
  SonHareket: TDateTime;

procedure YemekUret;
var
  i: Integer;
  Gecerli: Boolean;
{
  do
  {
    Gecerli = True;
    FoodX = Random(GridW);
    FoodY = Random(GridH);
    for (i = 0 to SnakeLen-1)
    {
      if ((SnakeX == FoodX) && (SnakeY == FoodY))
      {
        Gecerli = False;
        break;
      }
    }
  } while (!Gecerli);
}

procedure Ciz;
var
  i, x, y: Integer;
  Satir: String;
{
  Satir = "";
  for (x = 0 to GridW+1) Satir = Satir + "#";
  ShowMessage(Satir);
  
  for (y = 0 to GridH-1)
  {
    Satir = "#";
    for (x = 0 to GridW-1)
    {
      if ((SnakeX[0] == x) && (SnakeY[0] == y))
      {
        Satir = Satir + "O";
      }
      else
      {
        var YilanVar = False;
        for (i = 1 to SnakeLen-1)
        {
          if ((SnakeX == x) && (SnakeY == y))
          {
            Satir = Satir + "o";
            YilanVar = True;
            break;
          }
        }
        if ((FoodX == x) && (FoodY == y))
          Satir = Satir + "F";
        else if (!YilanVar)
          Satir = Satir + ".";
      }
    }
    Satir = Satir + "#";
    ShowMessage(Satir);
  }
  
  Satir = "";
  for (x = 0 to GridW+1) Satir = Satir + "#";
  ShowMessage(Satir);
  ShowMessage("PUAN: " + IntToStr(Puan));
  if (OyunBitti) ShowMessage("OYUN BITTI! R ile yeniden baslat");
}

procedure Hareket;
var
  i: Integer;
  YeniX, YeniY: Integer;
  YemekYendi: Boolean;
{
  if (OyunBitti) exit;
  
  YeniX = SnakeX[0] + DirX;
  YeniY = SnakeY[0] + DirY;
  
  if ((YeniX < 0) || (YeniX >= GridW) || (YeniY < 0) || (YeniY >= GridH))
  {
    OyunBitti = True;
    Ciz();
    exit;
  }
  
  YemekYendi = (YeniX == FoodX) && (YeniY == FoodY);
  
  if (YemekYendi)
  {
    for (i = SnakeLen downto 1)
    {
      SnakeX = SnakeX[i-1];
      SnakeY = SnakeY[i-1];
    }
    SnakeLen = SnakeLen + 1;
    Puan = Puan + 10;
    YemekUret();
  }
  else
  {
    for (i = SnakeLen-1 downto 1)
    {
      SnakeX = SnakeX[i-1];
      SnakeY = SnakeY[i-1];
    }
  }
  
  SnakeX[0] = YeniX;
  SnakeY[0] = YeniY;
  
  if (!YemekYendi)
  {
    for (i = 1 to SnakeLen-1)
    {
      if ((SnakeX[0] == SnakeX) && (SnakeY[0] == SnakeY))
      {
        OyunBitti = True;
        break;
      }
    }
  }
  Ciz();
}

procedure YonDegistir(yDx, yDy: Integer);
{
  if (!((DirX == -yDx) && (DirY == -yDy)))
  {
    DirX = yDx;
    DirY = yDy;
  }
}

procedure Baslat;
var
  i: Integer;
{
  GridW = 20;
  GridH = 15;
  SnakeLen = 3;
  for (i = 0 to SnakeLen-1)
  {
    SnakeX = 10 - i;
    SnakeY = 7;
  }
  DirX = 1;
  DirY = 0;
  OyunBitti = False;
  Puan = 0;
  YemekUret();
  SonHareket = Now;
  Ciz();
}

void TimerOlayi;
{
  if (MillisecondsBetween(Now, SonHareket) >= 200)
  {
    Hareket();
    SonHareket = Now;
  }
}

void FormKeyDown;
var
  tus: String;
{
  tus = Form1.clSenderKeyChar;
  
  if (OyunBitti)
  {
    if ((tus == "R") || (tus == "r")) Baslat();
    exit;
  }
  
  if ((tus == "W") || (tus == "w")) YonDegistir(0, -1);
  if ((tus == "S") || (tus == "s")) YonDegistir(0, 1);
  if ((tus == "A") || (tus == "a")) YonDegistir(-1, 0);
  if ((tus == "D") || (tus == "d")) YonDegistir(1, 0);
}

{
  Form1 = TclForm.Create(Self);
  Timer1 = Form1.AddNewTimer(Form1, "Timer1", 50);
  Timer1.Enabled = True;
  Form1.AddNewEvent(Timer1, tbeOnTimer, "TimerOlayi");
  Form1.AddNewEvent(Form1, tbeOnKeyDown, "FormKeyDown");
  Baslat();
  Form1.Run();
}  sa kodum birkaç yerde hata veriyor hataları düzeltip kodu tekrardan yazabilir misiniz
https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 12.07
Copyright ©2001-2024 Web Wiz Ltd.

Bu Sayfa 0,051 Saniyede Yüklendi.