local state = false -- Fonction pour dessiner le bouton switch ON/OFF centré local function drawButton(state, text) term.clear() term.setCursorPos(1,1) local width, height = term.getSize() local bgColor = colors.red local fgColor = colors.white if state then bgColor = colors.green fgColor = colors.black end -- Dessine le fond écran tout en couleur du switch term.setBackgroundColor(bgColor) term.clear() -- Calcule la position du texte pour le centrer local textLen = #text local x = math.floor((width - textLen) / 2) + 1 local y = math.floor(height / 2) term.setCursorPos(x, y) term.setTextColor(fgColor) term.write(text) end -- Fonction d’attente d’un clic tactile, retourne true si sur le bouton local function waitTouch() local width, height = term.getSize() local buttonY = math.floor(height / 2) while true do local event, side, x, y = os.pullEvent("monitor_touch") -- Sur pocket computer c’est “mouse_click” avec coordonnées x, y if event == "mouse_click" then -- Vérifie si y correspond à la ligne du bouton if y == buttonY then return true end end end end -- Programme principal while true do if state then drawButton(true, "ON") else drawButton(false, "OFF") end -- Attend un clic (toucher) clavier de l’utilisateur local event, button, x, y = os.pullEvent("mouse_click") local width, height = term.getSize() local buttonY = math.floor(height / 2) if y == buttonY then state = not state -- Change l’état end end