Створіть прапорець


51

Напишіть програму, яка створює прапорець у двох станах, з яким люди можуть взаємодіяти за допомогою миші.

Зокрема, ваша програма повинна досягти всього наступного:

  1. Майте область на екрані 8 × 8 пікселів (або більше за бажанням), яка є областю для натискання кнопки. Відтепер цей регіон просто називається прапором.

  2. Коли курсор миші переміщується в межах прапорця і натискається кнопка миші за замовчуванням *, прапорець повинен перемикати стани.
    Поставлений прапорець не встановлений. Позначено без позначення.

  3. Під час перемикання прапорець не повинен переміщуватися.

  4. У встановленому стані прапорець може бути будь-яких кольорів.

  5. У неперевіреному стані прапорець може бути будь-яких кольорів до тих пір, поки щонайменше 16 пікселів візуально відрізняються від перевіреного стану .

  6. В одному екземплярі програми всі перевірені стани повинні бути візуально однакові один одному, а всі неперевірені стани повинні бути візуально ідентичними один одному.

  7. Не закінчуйте програму, поки вона явно не припиниться (наприклад, за допомогою кнопки виходу або Alt + F4), тому користувач може натиснути прапорець стільки, скільки захоче.

* Ви можете припустити, що типова кнопка миші - це завжди клацання лівою кнопкою миші, але також непогано використовувати типовий параметр, визначений програмним забезпеченням миші або ОС, що насправді не може бути клацанням лівою кнопкою миші залежно від користувача.

Примітки

  • Не має значення, що знаходиться за межами регіону вашого прапорця. Це може бути просто робочий стіл. Це може бути частина консолі, яка змінюється на кожному перемиканні.

  • Не має значення, у якому стані починається ваш прапорець.

  • Область прапорця може мати будь-які розміри, що перевищують 8 × 8 пікселів. Він не повинен бути квадратним.

  • Ви можете зробити незначні пристосування для налаштувань, які не знаходяться під вашим контролем, таких як розмір шрифту консолі, масштабування браузера, роздільна здатність монітора тощо. Поки ваша програма працює в розумному тестовому режимі, вона повинна бути дійсною.

  • Якщо ваша програма відкриє вікно, ви можете припустити, що вона була перетягнута у відповідне місце на екрані, якщо це необхідно (наприклад, лівий верхній кут).

  • Ви можете використовувати мови розмітки, такі як HTML або інші мови, які ми зазвичай не вважаємо повноцінними мовами програмування.

  • Ваш прапорець повинен бути зміненим за допомогою кнопки миші за замовчуванням. Це добре, якщо він також переключається на інші форми введення (наприклад, праву кнопку миші), за винятком руху миші . тобто стан не повинен змінюватися, якщо миша просто переміщується в межах прапорця.

  • Скріншоти вашого прапорця в дії настійно рекомендуємо!

Оцінка балів

Виграє найкоротший код у байтах.

Приклад

Приклад канонічного HTML у 23 байтах.

<input type="checkbox">

Для мене в Google Chrome це означає, що прапорець 12 × 12 пікселів і приблизно 30 пікселів чітко змінюються між зареєстрованим та неперевіреним станами.

Я враховую, що масштаб браузера становить 100%.


2
Чи може прапорець охоплювати весь екран?
Kritixi Lithos

@KritixiLithos Так, це було б дійсно. Хоча зауважте, що при бажанні ви можете вважати певний регіон 8х8 як офіційний прапорець, навіть якщо більший регіон працює.
Захоплення Кальвіна

@Helka Homba - чи дозволено додатку відображати інші елементи керування, окрім самого прапорця?
zeppelin

Чи гаразд, щоб прапорець увімкнув інші види введення? (Наприклад, чи правильне рішення правильне, якщо прапорець переключається на будь-який тип вводу користувача, незалежно від того, чи це клацання миші, рух миші чи натискання клавіші? Це перемикатиме клацання миші, але воно перемикається на інші подразники теж.)

1
@zeppelin "Не має значення, що знаходиться поза вашою областю прапорця. Це може бути просто робочий стіл. Це може бути частина консолі, яка змінюється на кожному перемиканні". Отже, доки прапорець є, не має значення, що ще є.
Захоплення Кальвіна

Відповіді:


33

Математика, 10 байт

Checkbox[]

Передбачає середовище ноутбука Mathematica .

Два стану виглядають так:

введіть тут опис зображення


73
Звичайно. Математика знову обманює.
Меттью Рох

1
Смішно, як коментар має більше відгуків, ніж відповідь
Рудольф Джелін

4
@ RudolfL.Jelínek це смішно, як відповідь взагалі має відгуки ...
Мартін Ендер

31

HTML, 20 байт

Не знаю, наскільки це буде правильним як відповідь. HTML вимагає, щоб тег був закритий для юридичної перевірки, але сучасні браузери автоматично закриють їх, щоб він був виконуваним.

<input type=checkbox


3
Я розглядав це як варіант раніше (без лапок), але повністю пропустив закриття >. +1 та дійсний IMHO.
ElPedro

1
На цьому сайті мови визначаються їх реалізацією, тому мені це здається прекрасним.
Джон Гоуерс

1
Дякую @JohnGowers, мені було цікаво визначити, наскільки допустимі зловживання.
січня

27

Баш , 67 55 50 35 32 31 байт

:()(read -p$[i^=1]
›?9h -sn6
:)

Код містить байт CR (перший новий рядок) і байт CSI (невеликий прямий кутовий дужок з кодуванням Windows-1252). Для цього потрібні xterm (або еквівалент) та кодування ISO-8859-1 (або подібне).

Код визначає функцію з назвою :, яка по черзі відображає білий 1 або 0 у чорному прямокутнику. Існує рівно 24 різних пікселя з налаштуваннями xterm за замовчуванням. ( доказ )

Для старішої версії, яка змінює колір усього терміналу, перегляньте версію 10 цієї відповіді.

Дякуємо @ ais523 за пропозицію xterm, яка економить 4 байти!

Як це працює

:(...)створює функцію, названу :що виконує ....

Команда read читає справжню магію.

  • -p вказує запит на вхід, який друкується в STDOUT.

    • $[i^=1]- це арифметичне розширення, яке XOR змінна i з 1 . я, можливо, спочатку не буде налаштовано; коли це станеться, це буде розглядатися як 0 .

    • Повернення каретки переміщує курсор назад на початку рядка.

    • ›?9hзахоплює мишу в підтримуваних терміналах. Кожен клік відправить шість символів до терміналу, а саме ←[Mbxyтам, де представлений байт ESC ( 0x1b ). ←[вказує послідовність евакуації, Mмиша, bкнопку ( 0x20 + номер кнопки), х координату миші ( 0x20 + координати), і у координат.xy

    • -sn6змушує читати мовчки (введення миші не буде відголошено на STDERR) і зупиняється після читання рівно 6 байтів. Він зберігає вхід у змінній REPLY , але нас не цікавить результат, який вона виробляє.

Нарешті, після закінчення читання (після точно одного клацання мишкою) :рекурсивно викликає себе, входячи в нескінченний цикл.

Створення та виклик

$ echo $':()(read -p$[i^=1]\r\x9b?9h -sn6\n:);:' > checkbox.sh
$ xxd -c 17 -g 1 checkbox.sh
0000000: 3a 28 29 28 72 65 61 64 20 2d 70 24 5b 69 5e 3d 31  :()(read -p$[i^=1
0000011: 5d 0d 9b 3f 39 68 20 2d 73 6e 36 0a 3a 29 3b 3a 0a  ]..?9h -sn6.:);:.
$ LANG=en_US xterm -e bash checkbox.sh

Вихід

екранізація


Я сам працював над подібним рішенням для цього (хоча іншою мовою, змушуючи мене відмовитися, бо не міг знайти спосіб взяти вклад без нового рядка). Можливе вдосконалення: змініть 1000hна 9h(різниця полягає в тому, що він 1000hобробляє як натискання та звільнення миші, так і 9hобробку лише звільнення миші). Це може або не потребуватиме змін в іншому місці коду.

@ ais523 Я спробував це, але принаймні мій емулятор терміналу (Konsole), схоже, не підтримує це. Чи знаєте ви один, що робить?
Денніс

gnome-terminalСхоже, працює, саме це я використовував для тестування (редагувати: але я не думаю, що він підтримує 1-байтну CSI). xtermтакож має працювати і може бути простішим у встановленні, якщо у вас є система KDE. (Я просто перевірив це сам; він працює з, \x1b[але не з \x9bякихось причин, можливо, це стосується моїх налаштувань stty, а не самого терміналу.)

@ ais523 У мене є xterm. Я перевірю, коли я знову за своїм ПК.
Денніс

8
Я люблю , як це робиться :)з :(кінця
Андраш Деак

22

Обробка, 78 66 65 63 61 байт

2 байти збережено завдяки @TuukkaX, використовуючи -a%2замістьa%2*-1

2 байти збережено завдяки @TuukkaX за допомогою a=-a

int a=1;void draw(){background(a);}void mousePressed(){a=-a;}

Поле чергується між чорним і білим кольором.

Пояснення

int a=1;                   //the variable that contains the state of the checkbox
void mousePressed(){a=-a;} //if the mouse is pressed, change the sign of a

Зараз існує багато інших альтернатив, таких як використання if-оператора для обробки цього, але потім воно стає дивним і постійно змінює фон під час натискання миші. Я спершу спробував mouseButton, але потім мені знадобиться більше умов і більше коду, який просто закінчиться набагато більш багатослівним.

Тепер, mousePressed()щоб викликати його назавжди (інакше він би просто припинився після запуску програми), нам потрібна draw()функція.

void draw(){               //loop infinitely
  background(a);           //set the sketch's background to -a%2
  //if a ==  1, the background colour is set to almost black
  //if a == -1, the background colour is set to white
}

введіть тут опис зображення


Менший прапорець складе 90 байт (прапорець знаходиться у верхньому лівому куті, тому ми можемо видалити деякі умови миші):

int a=1;void draw(){fill(a);rect(0,0,8,8);}void mousePressed(){if(mouseX<9&mouseY<9)a=-1;}

2
Розумне використання способів обробки приймає одиничні цілі числа як кольори сірого!
FlipTack

@FlipTack Здається, що білий також може бути виражений якfill(-1)
Kritixi Lithos

1
У мене є ідея. Ініціалізуйте aна 1 замість 0. Змініть a++на a=-a, що робить -a%2просто a. Це буде перемикатися aміж 1 і -1. Я не знаю, який колір 1 дає.
Yytsi

@TuukkaX Так, це працює. color(1)виробляє, #010101що дуже близьке до чорного
Kritixi Lithos


20

Unix Shell (+ x11-додатки), 3 байти

Відмова від відповідальності

Відповідь нижче - нудна, прикордонна і "відчуває себе обманом" (принаймні, для мене).

Тим не менш, це, здається, не порушує жодних правил виклику "як написано" або "лазівки за замовчуванням", тому я публікую його.

(Якщо ви можете вказати на певне правило, яке воно порушує, будь ласка, прокоментуйте це!)

Гольф

xgc

Програма xgc демонструє різні особливості графічних примітивів X.

Екран xgc фактично заповнений різними прапорцями:

введіть тут опис зображення

та "липкі кнопки" (які відповідно до цих правил виклику кваліфікуються як прапорці):

введіть тут опис зображення


20

GitHub Flavored Markdown - 6 байт

- [ ] 

(Є простір)

У суть: перевірити / не перевірити


Впевнені, що це відповідає другій половині 1-го речення: "Напишіть програму, яка створює прапорець у двох державах, з яким люди можуть взаємодіяти за допомогою миші ".
манатура

1
Так, якщо вставити його в суть і створити суть (для "компіляції"), ви зможете з нею взаємодіяти.
Аксель

Цікаво. Дякуємо @ Ax31. Я ніколи не користувався сутичками.
манатура

1
Я б не очікував, що "Github Flavourred Markdown".
Jonas Schäfer



14

Python REPL, 45 байт

from tkinter import*
Checkbutton(Tk()).pack()

Я не беру участі в CG і не часто читаю ці пости. Однак мене дійсно дивує, що вам дозволяється використовувати зовнішні модулі. Хіба це не обман? Я не знаю, скільки байтів є вихідним кодом Tk, але чи не слід насправді ці байти додавати до вашого числа байтів?
FMaz

1
@Krazor tkinter- це стандартна бібліотека для Python (але навіть якщо це не так, я повинен був би оголосити лише Python REPL + tkinter). Це означає, що я можу використовувати його функції, просто імпортуючи їх. Штраф, який ви пропонуєте, схожий на прохання користувачів включити до підрахунку байтів кількість байтів у джерелі мови, якою ви пишете. Тут ми дозволяємо будь-якій мові чи модулю конкурувати до тих пір, як це було написано та опубліковано публічно раніше виклик було розміщено.
Блакитний

Гаразд, дякую за роз’яснення.
FMaz

14

GeoGebra , 10 байт

Checkbox[]

Введено у рядок введення.

Ось gif виконання:

Виконання програми


7
Whoah, GeoGebra. Я це пам’ятаю. Пройшло багато часу.
Нік Хартлі

Я знаю, що це поза темою, але ви ходите до Інституту колегіумів у Ватерлоо? Тільки з цікавості, виходячи з вашого імені. Я не
переслідувач.


11

HTML з JavaScript - 136 124 120 115 113 111 109 79 байт

<p style=height:20;border:solid onClick=t=this;t.innerHTML=(t.e=!t.e)?'x':''>

-2 завдяки @KritixiLithos

Знижено до 79 після фантастичного гольфу від @Jan. Хоча нова версія відповідає вимогам, я зберегла стару версію з професійних причин гордості.

Хоча використовувати вбудовані ідеально, я подумав, що було цікавіше створити власне з нуля. Тестували за допомогою Chrome та Firefox. border:solidє сумісність з IE, але я не знаю, чи вона насправді потрібна в нових версіях IE - у мене немає IE для тестування.

pxУ висоту є на користь «Run фрагмента коду» , тому що не входить в «реальному» лічильнику байтів. Він прекрасно працює в браузері без нього.

<p style=height:20px;border:solid onClick=t=this;t.innerHTML=(t.e=!t.e)?'x':''>

Попередня версія:

<p id=d style="width:20px;height:20px;border:solid 1px"onClick="d.innerHTML=d.innerHTML=='x'?'':'x'"align=center>


1
Ви можете зробити, id=dщоб видалити d=this?
Kritixi Lithos

1
@KritixiLithos - Дійсно, можу. Дякую і добре помітив :)
ElPedro

1
Не потрібно встановлювати ширину, правила кажуть, що це можуть бути будь-які розміри. Якщо ви зберігаєте стан у властивості, thisви збережете встановлення ідентифікатора. Якщо ви зберігаєте thisоб’єкт, ви заощадите кілька байт. Це alignзайве. Оскільки в рядках атрибутів немає пробілів, лапки вам не потрібні. <p style=height:20px;border:solid onClick=t=this;t.innerHTML=(t.e=!t.e)?'x':''>79 байт
січня

@Jan - Дякую! Біт ширини - моя власна професійна гордість. Якщо я не встановлю це, це виглядає некрасиво, і оскільки ця відповідь ніколи не виграє, а просто була розміщена як альтернатива, я, ймовірно, залишу її там. Крім цього, деякі чудові натяки. Дуже дякую. Оновиться завтра.
ElPedro

Дякую @Easterly. Оновили код, але забули інші біти. Вже пізно.
ElPedro

9

Minecraft 1.0.0, 1 байт

Важіль Minecraft відповідає всім критеріям прапорця. Ця відповідь справедлива лише для старих версій гри, коли пробивання важеля все ж перемикає його.

введіть тут опис зображення

Оцінено за допомогою пропонованої кількості байтів @Connor O'Brien.


Різниця 3 між двома відповідями навряд чи сприймає або порушує консенсус, але вважаючи, що відповідь Конора є досить суперечливою (зараз це + 24 / -10 ) і що прийнята відповідь надзвичайно добре отримана ( + 17 / -0 ), я думаю останні повинні бути використані для оцінки відповідей Minecraft.
Денніс

Однак у Minecraft 1.0.0
ev3commander

1
Це один nу Conor, btw :)
Conor O'Brien

Або ви можете відновити ліву та праву кнопки миші в будь-якій новій версії, щоб зробити її дійсною; D
seadoggie01

@ ConorO'Brien Це не так 1 block? Чому 1 byte? Я не думаю, що mc зберігає кожен блок як один байт ...
RedClover

8

TI-Basic, 15 байт

While 1:Shade(0,9:Input :ClrDraw:Input :End

Досить прямолінійний. Цей прапорець охоплює приблизно 40% екрана та чергується між чорним та білим. Якщо встановлено прапорець, екран буде виглядати приблизно так:

екран


8

Будь-яка версія командного рядка Windows, 3 байти

(cmd.exe, batch, powerhell, start-> run, як завгодно)

osk

Відкриває екранну клавіатуру, на якій є кілька "прапорців", наприклад, клавіші shift, ctrl, alt, caplock, подібні до відповіді xgc, і натхненний знімком екрану відповідей SmileBASIC.



7

К. В. Ланг , 8 байт

CheckBox

введіть тут опис зображення


припускаючи дійсно базове середовище Python для того, щоб kv lang навіть працював:

from kivy.app import runTouchApp
from kivy.lang import Builder
runTouchApp(Builder.load_string('CheckBox'))

Це в основному працює тому CheckBox, що віджет Kivy включений у kivy.Factoryкожен віджет зі стандартної бібліотеки.

Цей простий рядок створює екземпляр CheckBoxі через те, що я runTouchAppочікую запуск віджета, який я можу використовувати Builder.load_string.

Фон load_stringобробляє в основному кожен рядок kv, і якщо є окремий екземпляр віджета (наприклад CheckBox), то він піднесений до положення кореневого віджета, наприклад:

Application
    openGL Window
        root widget(mostly layout)
            main tree
            and some widgets
            ...

7

SmileBASIC, 49 байт

@L
O=T
TOUCH OUT T,,
X=T<O!=X
KEY 1,""[X]GOTO@L

і є порожньою скринькою та прапорець у шрифті SB.
Перемістіть прапорець, торкнувшись екрана (найближчого клацання мишкою)

введіть тут опис зображення введіть тут опис зображення

Відповіді на обман:

0 байт:

(на екранній клавіатурі є кнопки, які діють як прапорці, наприклад, кнопки блокування та вставки клавіш)

14 байт:

EXEC"SYS/SBGED

Відкриває вбудований графічний редактор, у якому є кілька кнопок, схожих на прапорці


Це просто геніально, хоча я не дуже розумію, що робить 4-й рядок. Чи можете ви пояснити?
равлик_

T<Oвірно, коли ви перестаєте торкатися екрана, і !=використовується як логічний XOR. X=X XOR (O && !T)
12Me21

7

C #, 124 120 байт

збережено 4 байти завдяки grabthefish.

прапорець встановлений і не встановлений Примітка: через редагування зображення не точно відображає те, що робить код, "checkBox1" не відображається з поточним кодом.

using System.Windows.Forms;class P{static void Main(){var a=new Form();a.Controls.Add(new CheckBox());a.ShowDialog();}}

неозорений: using System.Windows.Forms; class P{ static void Main(){ var a=new Form(); a.Controls.Add(new CheckBox()); Application.Run(a); a.ShowDialog(); } }


Якщо ви нічого не знайшли про це на мета, запитайте про це на мета.
Метью Ро

Ви можете позбутися місця в var a = new Form();.
clismique

@ Qwerp-Derp Я видалив їх для підрахунку, я просто вставив неправильну річ, дякую.
сатибель

ви можете використати a.ShowDialog();для збереження кількох байт
grabthefish

дякую @grabthefish, хоча c # все ще програє Java :(
satibel


6

HTML з JavaScript, 46 33 28 байт

<body onclick=innerHTML^=1>0

v2

<body onclick=this.innerHTML^=1>0

v1

<body onclick=t=this;t.innerHTML=t.e=!t.e||''>

Це варіант у відповіді @ ElPedro: Створіть прапорець . Знизився на 28 байт за допомогою @Albert Renshaw Це може бути ще більше зменшено, але це зробить його ідентичним Створити прапорець

Всю область застосування можна натискати. Він відображатиметься 0у offштаті та 1у onштаті. Спробуйте це на https://jsbin.com/nuhetiyocu/1/edit


1
Ось акуратний варіант у 39 байт. <body onclick=t=this;t.innerHTML^=t?1:0Правило 16 пікселів між зміною стану підготовлено для обговорення.
Альберт Реншо

38<body onclick=this.innerHTML^=this?1:0
Альберт Реншо

1
О ні , з вашою допомогою я вниз на 33 вже :)
Січня

1
28<body onclick=innerHTML^=1>0
Альберт Реншо

1
Тепер, коли всередині контейнера завжди є значення, його можна змінити з bodyелемента на на інший. Але я щойно помітив, що це буде ідентично іншій відповіді codegolf.stackexchange.com/questions/109155/create-a-checkbox/…, тому я просто залишаю це як є
січня

6

Powershell v5 +, 94 байт

($a=[Windows.Forms.Form]::new()).Controls.Add([Windows.Forms.Checkbox]::new());$a.ShowDialog()

введіть тут опис зображення введіть тут опис зображення

Це досить страшно, але я не можу отримати заяви більш короткими з або Add-Typeабо using namespace- і змінна потрібна, оскільки мені потрібно повторно використовувати об'єкт, щоб показати форму, і Controls.Add()не повертає нічого корисного.

ShowDialog Потрібно в моїй системі, щоб поле було інтерактивним після виконання цієї команди, інакше форма заморожена.

також System.Windows.Forms.Formможна скоротити лише до того, Windows.Forms.Formяк (принаймні, моя власна) система зупинить автоматичне завершення її в новому сеансі.


Приємно! Можна сказати, що для цього потрібна версія 5+.
британіст

@briantist оновлено, дякую.
colsw

6

Excel VBA, 38 32 31 29 Байт

Функція негайних вікон, яка вставляє прапорець висотою = 9 та шириною = 9, у комірці A1на першому аркуші активного проекту VBA Excel

Sheet1.CheckBoxes.Add 0,0,9,9

-6 Завдяки pajonk за заміну [A1],[A1],9,9на0,0,9,9

-1 для заміни Sheets(1)на[Sheet1]

-2 для усвідомлення сказаного було дурним і Sheet1замість цього використовувати


Здається, це і 1,1,9,9як аргументи працює.
pajonk

1
Вам цього не потрібно Sheet(1)., ви можете запустити це досить швидко в Excel, але CheckBoxesце передається на активний аркуш
Mr.Burns

@ Mr.Burns Я перевірив це, але без прямого посилання на будь-який об’єкт «Листа», CheckBoxes.Addметод видає помилку із зазначенням «Об’єкт необхідний»
Тейлор Скотт

@TaylorScott Ви маєте рацію, я помістив код у модуль аркуша, а не у звичайний модуль. Моя помилка xD
Mr.Burns

4

VBA (Word), 74 57 байт

-17 завдяки Тейлору Скотту

Sub a()
f = a.FormFields.Add(Selection.Range, 71)
End Sub

Ім'я документа має бути а.


1
Ви можете замінити wdFieldFormCheckBoxз 71(цілочисельного значення wdFieldFormCheckBoxконстанти) для економії в 17 байт
Taylor Scott

Я думаю, ви можете видалити нові рядки на -2 байти.
devRicher

4

Мопс, 20 байт

input(type=checkbox)

Крім того, що я рахую як 23. Якщо ви вилучите лапки, вона все ще працює на Firefox та Chrome (не вдається перевірити IE) і надійде в 21, і в цьому випадку я вважаю це поліпшенням на прикладі і тому є дійсним.
ElPedro

@heonlygusti - справді, але без лапок я б заперечував :-) btw, downvote не був я.
ElPedro

Я б голосував, якби не цитати, які не потрібні.
NightSkyCode

@theonlygusti зовсім не є. Спробувати.
NightSkyCode

4

Clojure, 201 195 145 127 байт

(ns c(:require[quil.core :as q]))(def a(atom nil))(q/defsketch b :draw #(q/background(if@a 0 99)):mouse-clicked #(swap! a not))

-6 байт, позбавившись від потреби m/fun-mode.

-50 байт шляхом видалення :setupта :sizeпараметрів, оскільки вони є невигідними та непотрібними в інших випадках fun-mode. Також видалено непотрібний імпорт середнього програмного забезпечення.

-18 байт завдяки @ ASCII. Змінено на "менші" кольори та видалить зайвий простір перед оператором скидання ( @).

Створюється ескіз Quil (бібліотека Clojure, яка забезпечує шар над обробкою), тому для цього потрібна бібліотека Quil.

(ns bits.golf.checkbox
  (:require [quil.core :as q]))

; Mutable global variable to hold the toggle state
(def a (atom nil))

(q/defsketch b
         ; Draw the background color to be either black or red depending on the toggle state.
         :draw #(apply q/background (if @a [0 0 0] [255 0 0]))

         ; Negate the state on mouse click
         :mouse-clicked #(swap! a not))

введіть тут опис зображення

введіть тут опис зображення


Ви не можете замінити 255 на 99? Також я б спробував видалити пробіли до / після символів і побачити, чи він все ще працює
лише для ASCII

@ ASCII-тільки так, я міг. Це зробило некрасивий некрасивий колір, хоча iirc, і я чомусь надав пріоритет цьому. І ні, це стільки місця, скільки я, на жаль, можу прибрати.
Carcigenicate

@ Тільки ASCII Проблема полягає в тому, що символи можуть містити майже будь-який символ, тому насправді єдиними «безпечними сусідами», з яких можна видалити пробіли, є будь-які дужки або лапки. На щастя, ця ляска до колишнього досить поширена.
Carcigenicate

Хм, може, [0 0 99]тоді? (якась темно-синя)
лише ASCII

@ ASCII-Тільки насправді, я думаю, що я можу скинути 0, коли я думаю про це. Я думаю, що Quil auto прокладає передню частину з 0, якщо вектор короткий. Якщо я пам'ятаю останнє, я це виправлю. Дякуємо, що надумали мене.
Carcigenicate

4

Операція Мова сценарію Flashpoint , 273 байт

Щоб показати прапорець:

createDialog"b"

Але спочатку його слід визначити:

Збережіть наступне у файлі, вказаному description.extв папці місії:

class b{idd=999;movingEnable=1;class controls{class c{idc=457;x=0.1;y=0.1;w=0.1;h=0.1;text="";action="if(ctrlText 457=={})then{ctrlSetText[457,{V}]}else{ctrlSetText[457,{}]}";type=1;style=2;colorText[]={1,1,1,1};font="tahomaB36";sizeEx=0.1;}}}

Дія:


3

AutoIt , 78 байт

GUICreate(0)
GUISetState(GUICtrlCreateCheckbox(0,0,0))
Do
Until GUIGetMsg()=-3

Відкриває максимальне вікно, яке можна закрити, як і будь-яке інше вікно. Максимізація і ... все-таки є побічним ефектом гольфу.

введіть тут опис зображення


Як би я запустив це на Linux?
dkudriavtsev

@wat wine AutoIt3.exe script.au3, де script.au3файл містить цей код.
mınxomaτ

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.