![]() |
| 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. |
runtime error |
Yanıt Yaz
|
| Yazar | |
Mali Demirok
Yeni Üye
Kayıt Tarihi: 23 Mart 2026 Konum: konya Durum: Aktif Değil Puanlar: 6 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Mali Demirok
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Konu: runtime errorGönderim Zamanı: 3 Saat 5 Dakika Önce Saat 14:59 |
|
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; GameMemo: TclMemo; void YemekUret; var i: Integer; Gecerli: Boolean; { Gecerli = False; while (not Gecerli) { Gecerli = True; FoodX = Random(GridW); FoodY = Random(GridH); for (i = 0 to SnakeLen - 1) { if ((SnakeX == FoodX) && (SnakeY == FoodY)) { Gecerli = False; break; } } } } void Ciz; var i, x, y: Integer; Satir, Ekran: String; YilanVar: Boolean; { Ekran = ''; for (x = 0 to GridW + 1) Ekran = Ekran + '#'; Ekran = Ekran + #13; for (y = 0 to GridH - 1) { Satir = '#'; for (x = 0 to GridW - 1) { if ((SnakeX[0] == x) && (SnakeY[0] == y)) { Satir = Satir + 'O'; } else { YilanVar = False; for (i = 1 to SnakeLen - 1) { if ((SnakeX == x) && (SnakeY == y)) { YilanVar = True; break; } } if (YilanVar) Satir = Satir + 'o'; else if ((FoodX == x) && (FoodY == y)) Satir = Satir + 'F'; else Satir = Satir + '.'; } } Ekran = Ekran + Satir + '#' + #13; } for (x = 0 to GridW + 1) Ekran = Ekran + '#'; Ekran = Ekran + #13 + 'PUAN: ' + IntToStr(Puan); if (OyunBitti) Ekran = Ekran + #13 + 'OYUN BITTI! [R] Yeniden Baslat'; GameMemo.Lines.Text = Ekran; } void 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) { SnakeLen = SnakeLen + 1; Puan = Puan + 10; for (i = SnakeLen - 1 downto 1) { SnakeX = SnakeX[i-1]; SnakeY = SnakeY[i-1]; } YemekUret; } else { for (i = SnakeLen - 1 downto 1) { SnakeX = SnakeX[i-1]; SnakeY = SnakeY[i-1]; } } SnakeX[0] = YeniX; SnakeY[0] = YeniY; for (i = 1 to SnakeLen - 1) { if ((SnakeX[0] == SnakeX) && (SnakeY[0] == SnakeY)) { OyunBitti = True; break; } } Ciz; } void Baslat; var i: Integer; { GridW = 20; GridH = 12; SnakeLen = 3; for (i = 0 to SnakeLen - 1) { SnakeX = 10 - i; SnakeY = 6; } DirX = 1; DirY = 0; OyunBitti = False; Puan = 0; YemekUret; Ciz; } void TimerOlayi; { Hareket; } void FormKeyDown; { if (OyunBitti) { if (UpperCase(Form1.clSenderKeyChar) == 'R') Baslat; exit; } if (UpperCase(Form1.clSenderKeyChar) == 'W') if (DirY <> 1) DirX = 0; DirY = -1; if (UpperCase(Form1.clSenderKeyChar) == 'S') if (DirY <> -1) DirX = 0; DirY = 1; if (UpperCase(Form1.clSenderKeyChar) == 'A') if (DirX <> 1) DirX = -1; DirY = 0; if (UpperCase(Form1.clSenderKeyChar) == 'D') if (DirX <> -1) DirX = 1; DirY = 0; } { Form1 = TclForm.Create(Self); GameMemo = Form1.AddNewMemo(Form1, 'GameMemo', ''); GameMemo.Align = alClient; GameMemo.ReadOnly = True; Timer1 = Form1.AddNewTimer(Form1, 'Timer1', 200); Timer1.Enabled = True; Form1.AddNewEvent(Timer1, tbeOnTimer, 'TimerOlayi'); Form1.AddNewEvent(Form1, tbeOnKeyDown, 'FormKeyDown'); Baslat; Form1.Run; } sa kodum runtime error alıyor düzeltir 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">
|
|
![]() |
|
M-Guney
Kıdemli Üye
Kayıt Tarihi: 16 Eylül 2025 Konum: Konya, Meram, K Durum: Aktif Değil Puanlar: 236 |
Mesaj Seçenekleri
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 1 saat 36 Dakika Önce Saat 16:28 |
|
Runtime ve harf algılama hatalarının çözülmüş hali bu şekildedir.
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; GameMemo: TclMemo; void YemekUret; var i: Integer; Gecerli: Boolean; { Gecerli = False; while (not Gecerli) { Gecerli = True; FoodX = Random(GridW); FoodY = Random(GridH); for (i = 0 to SnakeLen - 1) { // DÜZELTME: SnakeX ve SnakeY yanına eklendi if ((SnakeX == FoodX) && (SnakeY == FoodY)) { Gecerli = False; break; } } } } void Ciz; var i, x, y: Integer; Satir, Ekran: String; YilanVar: Boolean; { Ekran = ''; for (x = 0 to GridW + 1) Ekran = Ekran + '#'; Ekran = Ekran + #13; for (y = 0 to GridH - 1) { Satir = '#'; for (x = 0 to GridW - 1) { if ((SnakeX[0] == x) && (SnakeY[0] == y)) { Satir = Satir + 'O'; } else { YilanVar = False; for (i = 1 to SnakeLen - 1) { // DÜZELTME: SnakeX ve SnakeY yanına eklendi if ((SnakeX == x) && (SnakeY == y)) { YilanVar = True; break; } } if (YilanVar) Satir = Satir + 'o'; else if ((FoodX == x) && (FoodY == y)) Satir = Satir + 'F'; else Satir = Satir + '.'; } } Ekran = Ekran + Satir + '#' + #13; } for (x = 0 to GridW + 1) Ekran = Ekran + '#'; Ekran = Ekran + #13 + 'PUAN: ' + IntToStr(Puan); if (OyunBitti) Ekran = Ekran + #13 + 'OYUN BITTI! [R] Yeniden Baslat'; GameMemo.Lines.Text = Ekran; } void 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) { SnakeLen = SnakeLen + 1; Puan = Puan + 10; for (i = SnakeLen - 1 downto 1) { // DÜZELTME: SnakeX ve SnakeY atamalarına eklendi SnakeX = SnakeX[i-1]; SnakeY = SnakeY[i-1]; } YemekUret; } else { for (i = SnakeLen - 1 downto 1) { // DÜZELTME: SnakeX ve SnakeY atamalarına eklendi SnakeX = SnakeX[i-1]; SnakeY = SnakeY[i-1]; } } SnakeX[0] = YeniX; SnakeY[0] = YeniY; for (i = 1 to SnakeLen - 1) { // DÜZELTME: Kendine çarpma kontrolünde eklendi if ((SnakeX[0] == SnakeX) && (SnakeY[0] == SnakeY)) { OyunBitti = True; break; } } Ciz; } void Baslat; var i: Integer; { GridW = 20; GridH = 12; SnakeLen = 3; for (i = 0 to SnakeLen - 1) { // DÜZELTME: Başlangıç atamalarına eklendi SnakeX = 10 - i; SnakeY = 6; } DirX = 1; DirY = 0; OyunBitti = False; Puan = 0; YemekUret; Ciz; } void TimerOlayi; { Hareket; } void FormKeyDown; { //ShowMessage(IntToStr(Form1.clSenderKeyChar)) if (OyunBitti) { // R (82) veya r (114) tuşları if ((Form1.clSenderKeyChar == 114) || (Form1.clSenderKeyChar == 82)) Baslat; exit; } // W (87) veya w (119) if ((Form1.clSenderKeyChar == 119) || (Form1.clSenderKeyChar == 87)) { if (DirY <> 1) { DirX = 0; DirY = -1; } } // S (83) veya s (115) if ((Form1.clSenderKeyChar == 115) || (Form1.clSenderKeyChar == 83)) { if (DirY <> -1) { DirX = 0; DirY = 1; } } // A (65) veya a (97) if ((Form1.clSenderKeyChar == 97) || (Form1.clSenderKeyChar == 65)) { if (DirX <> 1) { DirX = -1; DirY = 0; } } // D (68) veya d (100) if ((Form1.clSenderKeyChar == 100) || (Form1.clSenderKeyChar == 68)) { if (DirX <> -1) { DirX = 1; DirY = 0; } } } { Form1 = TclForm.Create(Self); GameMemo = Form1.AddNewMemo(Form1, 'GameMemo', ''); GameMemo.Align = alClient; GameMemo.ReadOnly = True; GameMemo.SetFocus; //GameMemo.Enabled = False; // Klavyeyi yutmasını engeller, tuşlar Form'a gider Timer1 = Form1.AddNewTimer(Form1, 'Timer1', 200); Timer1.Enabled = True; Form1.AddNewEvent(Timer1, tbeOnTimer, 'TimerOlayi'); Form1.AddNewEvent(GameMemo, tbeOnKeyUp, 'FormKeyDown'); Baslat; Form1.Run; } 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">
|
|
![]() |
|
M-Guney
Kıdemli Üye
Kayıt Tarihi: 16 Eylül 2025 Konum: Konya, Meram, K Durum: Aktif Değil Puanlar: 236 |
Mesaj Seçenekleri
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 1 saat 35 Dakika Önce Saat 16:29 |
|
Harfler ASCII olarak algılanmaktadır. ve ek olarak klavye den basılan harfleri yakalamak açısından event i direk memo ya bağladım bütün ekranı kapladığından
Form1.AddNewEvent(GameMemo, tbeOnKeyUp, 'FormKeyDown');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"> |
|
![]() |
|
Yanıt Yaz
|
|
| Tweet |
| Forum Atla | Forum İzinleri ![]() Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Kapalı Forumda Anketlerde Oy Kullanma |