local createCarre = require('/apis/libcarre'); local createVersion = require('/apis/libversion'); -- Les arguments du programme sont disponibles dans `...`. -- `table.pack` permet de les garder dans une table facile a parcourir. local args = table.pack(...); local function printUsage() print('carre usage:'); print(); print(' carre'); print(' carre -size [-x ] [-y ] [-char ] [-fill] [-clear]'); print(' carre -random [-count ] [-delay ] [-clear]'); print(' carre --version'); print(' carre --help'); print(); print('exemples:'); print(' carre -size 10 -char * -clear'); print(' carre -size 6 -fill -x 4 -y 3'); print(' carre -random -count 5 -delay 0.2'); end local command = args[1]; if command == '-help' or command == '--help' or command == 'help' then printUsage(); return; end if command == '-version' or command == '--version' or command == 'version' then print('v' .. createVersion().forSelf()); return; end local carre = createCarre(); local config, err = carre.parseArgs(args); if not config then print(err); print('utilise: carre -help'); return; end local width, height = term.getSize(); for index = 1, config.count do if config.clear then term.clear(); end -- Le calcul choisit une position visible. Si rien n'est donne, -- le carre est centre dans le terminal. local square = carre.computeSquare(config, width, height); -- Le mode contour ecrit seulement les bords. Le mode plein ecrit partout. carre.drawSquare(term.current(), square); if config.delay > 0 and index < config.count then sleep(config.delay); end end term.setCursorPos(1, height);