Afficher la charge restante de la batterie, en pourcentage de la charge maximale
N'oubliez pas que si vous ne pouvez pas exécuter votre code sur un téléphone, une calculatrice, etc., vous pouvez probablement installer votre environnement sur un ordinateur portable au moins. Si vous ne pouvez absolument pas utiliser un appareil doté d'une batterie, votre langue n'est malheureusement pas éligible car vous n'avez aucune valeur utile à imprimer.
Vous devez afficher les résultats à l'écran. Ceci est théoriquement censé être un utilitaire pratique pour l'utilisateur pour vérifier la batterie. L'écriture du pourcentage de batterie dans un fichier est trop maladroite, ce qui oblige l'utilisateur à vérifier le fichier. L'affichage à l'écran fait donc partie de la spécification qui ne peut pas être remplacée par IO par défaut. Cela dit, vous pouvez supposer que rien n'empêche des choses comme STDOUT d'être affichées à l'écran de la manière habituelle.
Si le pourcentage de batterie est déjà affiché à l'écran en permanence par le système d'exploitation, comme sur de nombreux téléphones, cela ne signifie pas que vous avez une solution à zéro octet. Vous devez supposer que l'affichage intégré n'existe pas et afficher à nouveau le pourcentage de batterie ailleurs.
Modifier: le format de sortie est en cours d'ouverture. Vous êtes libre d'afficher aussi peu que les chiffres du pourcentage, ou les chiffres avec une sortie supplémentaire également.
Edit2: Les chiffres représentant le pourcentage doivent apparaître à un emplacement connu dans la sortie, pas plus de 50 lignes à partir de la fin de la sortie, et cet emplacement ne doit pas changer entre les invocations. Les chiffres représentant le pourcentage doivent être séparés des autres sorties par au moins un caractère non numérique de chaque côté.
Pour référence, voici l'ancien format de sortie d'avant le changement:
Remaining battery is ddd%
ou
Remaining battery is ddd percent
Réponses:
Bash,
706750464316 octetsLes sorties:
<battery 0-100>: command not found
Lit le fichier
/sys/class/power_supply/BAT1/capacity
.Testé avec Ubuntu 18.04 sur un ideapad 500 LENOVO.
Prend un certain temps (car il recherche l'ensemble du système de fichiers) - mais il enregistre un octet!
Ancienne réponse:
la source
/so/apes/yadayada/Brunch/calamity
.echo {0.100}
JavaScript (navigateur),
787750 octets(-1 octet merci à Benoit Esnard )
(-27 octets car le format de sortie est désormais flexible)
JavaScript (navigateur), 46 octets, en renvoyant une promesse
(Suggéré par Shaggy , nécessite un en-tête et un pied de page)
Remarque: ne fonctionne que sur Google Chrome> = 38 (ordinateur de bureau et Android) ou tout autre navigateur prenant en charge l' API de batterie . FireFox a supprimé cette API en raison de problèmes de confidentialité.
Exemple sur Android (ancien format de sortie):
Exemple sur un ordinateur portable Windows (ancien format de sortie):
la source
`Remaining battery is ${b.level*100}%`
PowerShell , 28 octets
-26 (!) Grâce à AdmBorkBork. Version précédente -3 grâce à colsw.
gwmi
est l'abréviation deGet-WmiObject
|%
prend le modèlee*g
et trouve la seule propriété correspondante;estimatedChargeRemaining
la source
((gwmi win32_battery)|% e*g)
.Remaining battery is 98 96%
"abc"+(def)+"ghi"
à"abc$(def)ghi"
pour en enregistrer davantage.Bash + acpi,
434 octetsNouvelles règles
sortie sur formulaire
vous ne savez pas si le changement de règle rend les choses plus intéressantes, ne pourriez-vous pas vider un texte contenant toutes les chaînes 0 à 100 qui serait une sortie valide? Semble perdre l'intention d'origine si c'est le cas.
Anciennes règles
sortie sur formulaire
Ne me demandez pas pourquoi le jeu fonctionne comme ça, mais c'est le cas.
la source
acpi
n'est tout simplement pas là sur Mac, semble-t-il.Python 3.6 +
psutil
, 80 octetsEssayez-le en ligne!
Si la machine n'a pas de batterie (comme sur TIO), le programme lancera une erreur, car
psutil.sensors_battery()
revientNone
.Cela nécessite Python 3.6 pour l' interpolation de chaînes .
la source
C (win32, gcc i686-w64-mingw32), 78 octets
Abuse l'API win32 en laissant
GetSystemPowerStatus()
écrire "quelque part" sur la pile, le membre intéressant est dans le troisième octet, selon laSYSTEM_POWER_STATUS
structure .Malheureusement, cela
#include
semble nécessaire, probablement à cause des conventions d'appel.Exemple de sortie:
S'affiche
255
sur les systèmes sans batterie.la source
kernel32.dll
. C'est pourquoi je pense que c'est la convention d'appel, les fonctions de l'API win32 n'utilisent pas le "standard"cdecl
. Donc, même si je pouvais tromper l'éditeur de liens d'une manière ou d'une autre, le code ne fonctionnerait probablement pas de toute façon./Gz
(par défaut__stdcall
)?printf()
sans prototype?-mrtd
, mais je ne sais pas ce qui arriveraitprintf()
; il y a peut-être une inclusion plus courte pour cela?Excel VBA, 150 octets
Limité aux installations Windows 32 bits du bureau, car l'appel Windows Kernel32 n'est pas sûr pour le pointeur 64 bits.
Sorties dans la cellule
A1
de l'ActiveSheet.-26 octets grâce à une sortie flexible
-7 octets grâce à @Neil pour avoir utilisé un Int au lieu de 2 octets
la source
Declare PtrSafe Sub GetSystemPowerStatus Lib"kernel32"(f As t)
_SYSTEM_POWER_STATUS
structure , qui contient à la fois des valeurs d'octet et de dword, ce qui signifie que, dans ce cas, la structure doit être émulée à partir de vba, et un tableau d'octets ne peut pas être utilisé .QPython pour Android , 133 octets
Le
+"%"
n'est pas strictement nécessaire car il utilise de toute façon le nouveau format de sortie plus flexible, mais il rend la sortie légèrement plus agréable à seulement +4 octets.la source
d.notify
(créer une alerte de notification) aurait été beaucoup plus court que de créer et d'afficher la boîte de dialogue, mais pour une raison quelconque, cela ne fonctionne pas, du moins sur mon appareil (peut-être, il n'a pas été mis à jour pour les nouvelles API Android).]Emacs Lisp, 9 octets
Indique l' état actuel de la batterie dans le mini-tampon au fond (ou stdout lors de l' utilisation
--batch
) en format tels que:Power N/A, battery Unknown (99.1% load, remaining time N/A)
.Devrait fonctionner sous Windows, OSX, BSD et Linux.
la source
Japt , 60 octets
Essaye-le
la source
Java, 546 octets (Windows XP ou supérieur)
L'utilitaire powercfg est entré en jeu pour Windows XP, je n'ai aucune idée des utilitaires disponibles avant cela. Je dois également être exécuté en tant qu'administrateur. C'est horrible et je n'ai pas fait de tentative de golf extrême ...
Formaté / commenté ...
Honnêtement, j'étais plus intéressé à voir si c'était même possible en Java.
la source
{Runtime.getRuntime().exec("powercfg energy").waitFor();x=new XMLSlurper(new File("C:\\windows\\system32\\energy-report.html"));x.html.table.tr[#].span[0] as int/x.html.table.tr[#].span[0] as int}