Rabu, 12 Desember 2018

Listing struktur data praktikum 11



PRAKTIKUM 11

MAHASISWA DIMINTA UNTUK MEMBUAT SEBUAH PROGRAM YANG MENAMPILKAN ANIMASI SALJU BERJATUHAN. BUTIRAN SALJU BISA DIGAMBARAKN DENGAN SEBUAH KARAKTER MISALNYA’@’. BUTIRAN SALJU HARUS BERMUNCULAN DENGAN POSISI ACAK DAN JIKA DITEKAN TOMBOL (+) MAKA BUTIRAN SALJU AKAN BERTAMBAH SATU, DAN SETERUSNYA, UNTUK BERHENTI TEKAN ESCAPE.


PROGRAM SINGLE_LINKED_LIST_FIFO;
USES CRT;
CONST
     S  ='@';
     MAX=100;
TYPE
    PKAR        =^RECKAR;
    RECKAR      = RECORD
                  ISI     : CHAR;
                  X,Y,COL : BYTE;
                  NEXT    : PKAR;
                  END;
VAR
   HEAD, TAIL, NOW  :PKAR;

PROCEDURE PUSH;
BEGIN
     NEW(NOW);                  {MEMBUAT SIMPUL BARU}
     IF HEAD=NIL THEN
        HEAD:=NOW
     ELSE
        TAIL^.NEXT:=NOW;
     TAIL:=NOW; TAIL^.NEXT:=NIL;
     NOW^.ISI:=S;
     NOW^.X:=RANDOM (79)+1;     {MENGISI NILAI X DENGAN NILAI ACAK}
     NOW^.COL:=RANDOM(16);      {MENGISI NILAI COL DENGAN NILAI ACAK}
     NOW^.Y:=1;
END;

PROCEDURE ANIM;
VAR
   CH   :CHAR;
   I,JML:BYTE;

PROCEDURE TEKAN;
BEGIN
     CH     :=READKEY;
     IF (CH <> #27) AND (CH='+') AND (JML<MAX) THEN     {MENAMBAH SALJU}
     BEGIN
        PUSH;
        INC(JML);
     END;
END;
BEGIN
  REPEAT
     NOW:=HEAD;
     WHILE (NOW <> NIL ) DO
     BEGIN
         TEXTCOLOR (NOW^.COL);                  {MENGESET WARNA TULISAN}
         GOTOXY (NOW^.X,NOW^.Y); WRITE (NOW^.ISI);
         IF NOW^.Y=25 THEN NOW^.Y:=1;
         INC(NOW^.Y);
         NOW:=NOW^.NEXT;
     END;
  DELAY (10); CLRSCR;   {MENGHAPUS LAYAR}
  IF KEYPRESSED THEN TEKAN;
  UNTIL CH=#27; {TOMBOL ESCAPE DITEKAN}
END;

PROCEDURE CURSOR_OFF; ASSEMBLER;        {MEMATIKAN KURSOR SIFATNYA OPTIONAL/TAK WAJIB DIBUAT}
ASM
   MOV AH,01;
   MOV CX, 2020H;
   INT 10H;
END;

PROCEDURE CURSOR_ON; ASSEMBLER;          {MENYALAKAN KURSOR SIFATNYA OPTIONAL/TAK WAJIB DIBUAT}
ASM
   MOV AH,01;
   MOV CX,1314H;
   INT 10H;
END;

BEGIN           {MAIN PROGRAM}
  CLRSCR;
  HEAD:=NIL; TAIL:=NIL;
  CURSOR_OFF;
  RANDOMIZE;
  PUSH;
  ANIM;
  CURSOR_ON;
END.

Tidak ada komentar:

Posting Komentar

Kumpulan perintah mysql di CMD

MySQL  adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithrea...