Kaynağa Gözat

Example programs: begin of edit

Arthur Yefimov 3 yıl önce
ebeveyn
işleme
c9a65d0aff
4 değiştirilmiş dosya ile 54 ekleme ve 39 silme
  1. 17 2
      Programs/ATest.Mod
  2. 1 1
      Programs/BlitBmp2.Mod
  3. 32 32
      Programs/Book.Mod
  4. 4 4
      Programs/Life2.Mod

+ 17 - 2
Programs/ATest.Mod

@@ -2,11 +2,26 @@ MODULE ATest;
 IMPORT In, Out;
 VAR i, j, n: INTEGER;
 BEGIN
-  Out.String('П;') Out.Ln;
+  Out.String('П;') Out;.Ln;
   In.Int(n);
   FOR i := 1 TO n DO
     FOR j := 1 TO 1 + i MOD 40 DO Out.Int(i, 5) END;
     Out.Ln
   END;
   Out.Char('.'); Out.Ln;
-END ATest.
+END ATest.
+
+asda
+sd
+as
+a
+sd
+as
+das
+d
+as
+as
+a
+sd
+as
+dest.

+ 1 - 1
Programs/BlitBmp2.Mod

@@ -1,5 +1,5 @@
 MODULE BlitBmp2;
-IMPORT G := Graph, S := SYSTEM;
+IMPORT G := Graph2, S := SYSTEM;
 CONST N = 100;
 VAR s, b: G.Bitmap;
   x, y, vx, vy: ARRAY N OF REAL;

+ 32 - 32
Programs/Book.Mod

@@ -1,41 +1,41 @@
 MODULE Book;
-IMPORT Out, In, G := Graph;
-VAR screen: G.Bitmap;
-
+IMPORT Out, In, G := Graph2;
+VAR c: G.Color;
 BEGIN
-  screen := G.Init();
-  G.Circle(screen, 50, 50, 45, G.MakeCol(0, 255, 0));
+  G.Init();
+  G.MakeCol(c, 255, 0, 0);
+  (*G.Circle(50, 50, 45, G.MakeCol(0, 255, 0));*)
 
-  G.Line(screen, FLOOR(200.0), 50, 450, 50, G.MakeCol(255, 0, 0));
-  G.Line(screen, 150, 350, 400, 350, G.MakeCol(255, 0, 0));
-  G.Line(screen, 200, 50, 150, 350, G.MakeCol(255, 0, 0));
-  G.Line(screen, 450, 50, 400, 350, G.MakeCol(255, 0, 0));
+  G.Line(FLOOR(200.0), 50, 450, 50, c);
+  G.Line(150, 350, 400, 350, c);
+  G.Line(200,  50, 150, 350, c);
+  G.Line(450,  50, 400, 350, c);
 
-  G.Line(screen, 150, 420, 400, 420, G.MakeCol(255, 0, 0));
-  G.Line(screen, 450, 120, 400, 420, G.MakeCol(255, 0, 0));
-  G.Line(screen, 400, 350, 400, 420, G.MakeCol(255, 0, 0));
-  G.Line(screen, 450, 50, 450, 120, G.MakeCol(255, 0, 0));
-  G.Line(screen, 150, 350, 150, 420, G.MakeCol(255, 0, 0));
+  G.Line(150, 420, 400, 420, c);
+  G.Line(450, 120, 400, 420, c);
+  G.Line(400, 350, 400, 420, c);
+  G.Line(450,  50, 450, 120, c);
+  G.Line(150, 350, 150, 420, c);
 
-  G.Line(screen, 151, 355, 399, 355, G.MakeCol(130, 0, 0));
-  G.Line(screen, 151, 360, 399, 360, G.MakeCol(130, 0, 0));
-  G.Line(screen, 151, 365, 399, 365, G.MakeCol(130, 0, 0));
-  G.Line(screen, 151, 370, 399, 370, G.MakeCol(130, 0, 0));
-  G.Line(screen, 151, 375, 399, 375, G.MakeCol(130, 0, 0));
-  G.Line(screen, 151, 380, 399, 380, G.MakeCol(130, 0, 0));
-  G.Line(screen, 151, 385, 399, 385, G.MakeCol(130, 0, 0));
-  G.Line(screen, 151, 390, 399, 390, G.MakeCol(130, 0, 0));
-  G.Line(screen, 151, 395, 399, 395, G.MakeCol(130, 0, 0));
-  G.Line(screen, 151, 400, 399, 400, G.MakeCol(130, 0, 0));
-  G.Line(screen, 151, 405, 399, 405, G.MakeCol(130, 0, 0));
-  G.Line(screen, 151, 410, 399, 410, G.MakeCol(130, 0, 0));
-  G.Line(screen, 151, 415, 399, 415, G.MakeCol(130, 0, 0));
+  G.Line(151, 355, 399, 355, c);
+  G.Line(151, 360, 399, 360, c);
+  G.Line(151, 365, 399, 365, c);
+  G.Line(151, 370, 399, 370, c);
+  G.Line(151, 375, 399, 375, c);
+  G.Line(151, 380, 399, 380, c);
+  G.Line(151, 385, 399, 385, c);
+  G.Line(151, 390, 399, 390, c);
+  G.Line(151, 395, 399, 395, c);
+  G.Line(151, 400, 399, 400, c);
+  G.Line(151, 405, 399, 405, c);
+  G.Line(151, 410, 399, 410, c);
+  G.Line(151, 415, 399, 415, c);
 
-  G.Line(screen, 449, 70, 401, 360, G.MakeCol(130, 0, 0));
-  G.Line(screen, 449, 80, 401, 370, G.MakeCol(130, 0, 0));
-  G.Line(screen, 449, 90, 401, 380, G.MakeCol(130, 0, 0));
-  G.Line(screen, 449, 100, 401, 390, G.MakeCol(130, 0, 0));
-  G.Line(screen, 449, 110, 401, 400, G.MakeCol(130, 0, 0));
+  G.Line(449,  70, 401, 360, c);
+  G.Line(449,  80, 401, 370, c);
+  G.Line(449,  90, 401, 380, c);
+  G.Line(449, 100, 401, 390, c);
+  G.Line(449, 110, 401, 400, c);
 
   G.Flip;
   G.Pause;

+ 4 - 4
Programs/Life2.Mod

@@ -1,5 +1,5 @@
 MODULE Life2;
-IMPORT G := Graph, Random;
+IMPORT G := Graph2, Random;
 CONST maxW = 60*8; maxH = 33*8;
   cellSize = 2;
   initial = 0.2;
@@ -10,7 +10,7 @@ VAR
   W, H: INTEGER; (* Real width and height of field in cells *)
   m, m2: Field; (* m2 is a temporary copy of m *)
   x0, y0: INTEGER; (* Field offset on screen in pixels *)
-  colors: ARRAY 9 OF INTEGER; (* Color constants: black, red etc. *)
+  colors: ARRAY 9 OF G.Color; (* Color constants: black, red etc. *)
 
   saved: ARRAY 3 OF INTEGER; (* Saved neighbour colors *)
   nofcolors: INTEGER; (* Number of saved neighbour colors *)
@@ -71,12 +71,12 @@ BEGIN
 END Live;
 
 PROCEDURE DrawCell(x, y: INTEGER);
-VAR xx, yy, c: INTEGER;
+VAR xx, yy: INTEGER; c: G.Color;
 BEGIN
   xx := x0 + x * cellSize;
   yy := y0 + y * cellSize;
   c := colors[m[y, x]];
-  G.RectFill(S, xx, yy, xx + cellSize - 1, yy + cellSize - 1, c)
+  G.FillRect(xx, yy, xx + cellSize - 1, yy + cellSize - 1, c)
 END DrawCell;
 
 PROCEDURE Draw;