unit debug_m; interface uses arena_m, cell_m, creature_m; procedure Debug; procedure DebugCell(cell: cellItemPtr); procedure Print(var m: arenaMatrix); procedure PrintCallTime(s: string; y: integer); procedure PrintCreatureDebug(var cr: creature); procedure PrintEnemies(var lst: creatureList); implementation uses crt; const DebugMsg = '===============DEBUG==============='; DebugPrintY = 10; DebugPrintX = 10; var DebugTmp: integer = 2; procedure Debug; begin GotoXY(2, DebugTmp); writeln(DebugMsg); DebugTmp := DebugTmp + 1 end; procedure DebugCell(cell: cellItemPtr); begin GotoXY(2, DebugTmp); writeln('Cur X: ', cell^.x, ' Cur Y: ', cell^.y); DebugTmp := DebugTmp + 1 end; procedure Print(var m: arenaMatrix); var i, j: integer; begin for i := 1 to ArenaH do begin for j := 1 to ArenaW do if m[i][j] then write(1, ' ') else write(0, ' '); writeln end; GotoXY(1, 1) end; procedure PrintCreatureDebug(var cr: creature); var i: integer; begin GotoXY(2, 2); for i := 1 to 20 do write(' '); GotoXY(2, 2); writeln(cr.curX, ' ', cr.curY, ' ', cr.dX, ' ', cr.dY) end; function EnemyToString(cr: creaturePtr): string; begin case cr^.t of creatureHamster: EnemyToString := 'Hamster'; creatureGhost: EnemyToString := 'Ghost'; creatureSun: EnemyToString := 'Sun'; creatureSnake: EnemyToString := 'Snake'; creatureDrop: EnemyToString := 'Drop' end end; procedure PrintEnemies(var lst: creatureList); var y: integer = DebugPrintY; tmp: creatureItemPtr; s: string; begin tmp := lst.first; while tmp <> nil do begin GotoXY(DebugPrintX, y); s := EnemyToString(tmp^.cr); write(s, ', Y: ', tmp^.cr^.curY, ', X: ', tmp^.cr^.curX); tmp := tmp^.next; y := y + 1 end end; var callCnt: integer = 0; procedure PrintCallTime(s: string; y: integer); begin GotoXY(10, 80 + y); writeln(callCnt, ' GameCutPart'); callCnt := callCnt + 1; GotoXY(1, 1) end; end.