Programlamadili.Net Yeni Nesil Programlama Portali
 
Makale Ara: 
Kullanıcı Adı : Şifre :
  • Makale Kategorileri
ACPI [0]
Action Script [5]
ASP [12]
ASP.NET [23]
Assembly [3]
Bash [1]
C [4]
C# [9]
C++ [10]
Cobol [1]
Delphi [31]
Flash [5]
Html [9]
JAVA [36]
Java Script [11]
JSF [2]
Jsp [1]
Lua [1]
Matlab [2]
MySQL [26]
Oracle [1]
Pascal [31]
Perl [4]
Photoshop [2]
PHP [108]
Python [8]
REXX [6]
Ruby [1]
SEO [4]
Visual Basic [20]
  • Gorsel Ders Kategorileri
Asp [25]
Asp.Net [5]
Csharp [33]
Delphi [3]
Fireworks [4]
Flash [10]
Java Script [0]
Photoshop [0]
PHP [11]
Vb.Net [9]
Visual Basic [4]
  • Dil
English
Deutsch
deutsch
  • Reklam Alani
Pascal / Bufferyn tüm kontrolü artık sizde
Bufferyn tüm kontrolü artık sizde
Yazar: by_Coder
Eklenme: 04/04/08    Okunma: 36    
 
 


nit Buffers;

  {$R-}       { isaretleme yok }

interface

  uses
    Crt,
    VGA256;

  const
    CanHoldYou     = [#0..#13, '0'..'Z'];
    CanStandOn     = [#14..#16, 'a'..'f'];
    Hidden         = ['$'];

  var
    Timer: LongInt absolute $0000:$046C;
    wTimer: Word absolute $0000:$046C;
    bTimer: Byte absolute $0000:$046C;

  const
    W   = 20;
    H   = 14;
    NH = 16;
    NV = 13;

    MaxWorldSize = 236;

    EX   = 1;
    EY1 = 8;
    EY2 = 3;

    dirLeft       = 0;
    dirRight       = 1;

    mdSmall       = 0;
    mdLarge       = 1;
    mdFire         = 2;

    Deha = 0;
    Fatih = 1;

    QuitGame: Boolean = FALSE;
    BeeperSound: Boolean = TRUE;

  type
    GameData = record
      NumPlayers: Integer;
      Progress: array[Deha..Fatih] of Integer;
      Lives: array[Deha..Fatih] of Integer;
      Coins: array[Deha..Fatih] of Integer;
      Score: array[Deha..Fatih] of LongInt;
      Mode: array[Deha..Fatih] of Byte;
    end;

  const
    PlayerName: array [Deha..Fatih] of string [5] = ('MARIO', 'LUICE');

  var
    Player: Byte;
    Data: GameData;
    WorldNumber: string[3];
    LevelScore: LongInt;


  type
    ImageBufferPtr = ^ImageBuffer;
    ImageBuffer = array [1 .. H, 1 .. W] of Char;

    ScreenBuffer = array [0 .. MAX_PAGE] of ImageBuffer;

    PicBuffer = array [1 .. 2 * H, 1 .. W] of Char;

    PictureBufferPtr = ^PictureBuffer;
    PictureBuffer = array [Deha .. Fatih, mdSmall .. mdFire,
      0 .. 3, dirLeft .. dirRight] of PicBuffer;

    MapBufferPtr = ^MapBuffer;
    MapBuffer = array [1 .. MaxWorldSize, 1 .. NV] of Char;

    StarBufferPtr = ^StarBuffer;
    StarBuffer = array [0 .. MAX_PAGE, 0 .. 319] of Byte;

    WorldBufferPtr = ^WorldBuffer;
    WorldBuffer = array [-EX .. MaxWorldSize - 1 + EX,
      -EY1 .. NV - 1 + EY2] of Char;

    WorldOptions = Record
      InitX,
      InitY: Word;
      SkyType,
      WallType1, WallType2, WallType3,
      PipeColor,
      GroundColor1,
      GroundColor2,
      Horizon,
      BackGrType,
      BackGrColor1,
      BackGrColor2,
      Stars,
      Clouds,
      Design: Byte;
      C2r, C2g, C2b,
      C3r, C3g, C3b,
      BrickColor,
      WoodColor,
      XBlockColor: Byte;

      BuildWall: Boolean;
      XSize: Word;
    end;

  var
    GameDone,
    Passed: Boolean;
    WorldMap,
    SaveWorldMap: WorldBufferPtr;
    Options,
    SaveOptions: WorldOptions;
    XView,
    YView: Integer;
    LastXView: array [0 .. MAX_PAGE] of Integer;
    StarBackGr: StarBufferPtr;
    Size: Word;
    Pictures: PictureBufferPtr;
    Demo,
    TextCounter: Integer;
    LavaCounter: Byte;

  const
    dmNoDemo         = 0;
    dmDownInToPipe   = 1;
    dmUpOutOfPipe   = 2;
    dmUpInToPipe     = 3;
    dmDownOutOfPipe = 4;
    dmDead           = 5;


  procedure ReadWorld (var Map; W: WorldBufferPtr; var Opt);
  procedure Swap;

  procedure BeeperOn;
  procedure BeeperOff;
  procedure Beep (Freq: Word);

  procedure InitLevelScore;
  procedure AddScore (N: LongInt);


implementation


  procedure ReadWorld (var Map; W: WorldBufferPtr; var Opt);
  var
    M: MapBufferPtr;
    i, j, X: Integer;
  begin
    Move (Opt, Options, SizeOf (Options));
    M := @Map;
    FillChar (W^, SizeOf (W^), ' ');
    for i := -EX to -1 do
      for j := -EY1 to NV - 1 + EY2 do
        W^ [i, j] := '@';
    X := 0;

    While (M^ [X + 1, 1] <> #0) and (X < MaxWorldSize) do
    begin
      for i := 1 to NV do
        W^ [X, NV - i] := M^ [X + 1, i];
      W^ [X, -EY1] := #0;
      for i := 1 to EY2 do
        W^ [X, NV - 1 + i] := W^ [X, NV - 1];
      Inc (X);
    end;

    Options.XSize := X;
    for i := X to X + EX - 1 do
      for j := -EY1 to NV - 1 + EY2 do
        W^ [i, j] := '@';
  end;


  procedure Swap;
  var
    TempOptions: WorldOptions;
    C: Char;
    i, j: Integer;
  begin
    Move (Options, TempOptions, SizeOf (TempOptions));
    Move (SaveOptions, Options, SizeOf (Options));
    Move (TempOptions, SaveOptions, SizeOf (SaveOptions));
    for i := -EX to MaxWorldSize - 1 + EX do
      for j := -EY1 to NV - 1 + EY2 do
      begin
        C := WorldMap^ [i, j];
        WorldMap^ [i, j] := SaveWorldMap^ [i, j];
        SaveWorldMap^ [i, j] := C;
      end;
  end;

  procedure BeeperOn;
  begin
    BeeperSound := TRUE;
    NoSound;
  end;

  procedure BeeperOff;
  begin
    BeeperSound := FALSE;
    NoSound;
  end;

  procedure Beep (Freq: Word);
  begin
    if BeeperSound then
      if Freq = 0 then
        Crt.NoSound
      else
        Crt.Sound (Freq);
  end;

  procedure InitLevelScore;
  begin
    LevelScore := 0;
  end;

  procedure AddScore (N: LongInt);
  begin
    Inc (LevelScore, N);
  {   Inc (Score[Player], LevelScore); }
  end;

begin
  Size := 2 * SizeOf (WorldBuffer) +
    SizeOf (StarBuffer) +
    SizeOf (PictureBuffer);
  if MemAvail < Size then
  begin
    System.WriteLn ('Not enough memory');
    Halt
  end;
  GetMem (WorldMap, SizeOf (WorldBuffer));
  GetMem (SaveWorldMap, SizeOf (WorldBuffer));
  GetMem (StarBackGr, SizeOf (StarBuffer));
  GetMem (Pictures, SizeOf (PictureBuffer));
end.



kadir göksu 0 537 714 57 25
0 537 714 57 25




Taglar: 2. dereceden denklem çözme Alan ve çevre hesaplama Basit bir kombinasyon alma program Bufferyn tüm kontrolü artık sizde Pascal da özel şifreleme kodları Pascal derleyicileri Pascal Programlama da çok kullanılan kodları türkçe yazmak Pascal Programlama da org programi Pascal Programlama ile Kapsamlı bir Muhtar Programı Yapmak Pascal Programlama ile İki sayıyı toplayan program yapmak Pascal Programlama Temel Dilinde Söz Dizimi Pascal Programlama İle Arkadaş listesi Yapmak Pascal Programlama İle Bölünebilmeyi denetleme Pascal Programlama İle Hastane Takip programı Yapmak Pascal Programlama İle Takip Programı Yapmak Pascal Programlama İle Üçgen Hipotenüsü bulma Pascal Programlamada Case..of komutları ile dört işlem Pascal ve C Pascal İle Ascii Kod Sorgulama Pascal İle Maaş Kayıt Pascal İle Not Ortalaması Bulmak Pascal İle Oyun - the lord of swords Pascal'da Algoritma Geliştirme Pascal'da Program Hazırlama Pascalda sürekli renk değiştiren yazı

Isminiz:
E-mail adresiniz:
Güvenlik Kodu:
  
 

 

Istatistikler ,
Sitemizde su anda 30 kategori, 377 makale , 104 görsel ders ve 3 Ziyaretci bulunmaktadir...
Toplam üye sayimiz : 496

Copyright © 2007 Programlamadili.net - Programlama & Tasarim: Recep Ikiz & Ferdi Küçük

| Site Haritasi |

"Ne Aradığını Bilmeyen Bulduğunun Farkına Varamaz "
ACPI Programlama dili, Action Script Programlama dili, ASP Programlama dili, ASP.NET Programlama dili, Assembly Programlama dili, Bash Programlama dili, C Programlama dili, C# Programlama dili, C++ Programlama dili, Cobol Programlama dili, Delphi Programlama dili, Flash Programlama dili, Html Programlama dili, JAVA Programlama dili, Java Script Programlama dili, JSF Programlama dili, Jsp Programlama dili, Lua Programlama dili, Matlab Programlama dili, MySQL Programlama dili, Oracle Programlama dili, Pascal Programlama dili, Perl Programlama dili, Photoshop Programlama dili, PHP Programlama dili, Python Programlama dili, REXX Programlama dili, Ruby Programlama dili, SEO Programlama dili, Visual Basic Programlama dili,
Reklam alanı