Questions tagged «interactive»

用于在运行时需要用户交互的挑战

30
关闭计算机!
挑战: 用您选择的编程语言,关闭在其上执行代码的计算机。 规则 不会因资源耗尽而关闭(例如:Forkbomb强制关闭) 如果需要,您可以编写仅在特定环境/ OS中工作的代码。 禁止出现标准漏洞 这是代码高尔夫球,因此赢得了最低的字节数!

25
创建一个Paint程序!
介绍 有一天,您正在向孩子展示如何在计算机上绘画。您mspaint.exe在运行栏中键入。令您惊恐的是,“没有符合您搜索条件的项目”。您必须创建一个简单的绘画版本,以便您的孩子可以绘画! 挑战 您必须创建一个简单的绘图程序。为此,请打开白色显示窗口(大于99x99像素)。每当按下鼠标时,请将鼠标打开的像素更改为黑色。 这是代码高尔夫球,因此最短答案以字节为单位!

30
创建一个复选框
编写一个程序,创建一个两个状态的复选框,人们可以使用鼠标进行交互。 具体来说,您的程序应实现以下所有目的: 在屏幕上有一个8×8像素(或更大的像素)区域,该区域是复选框的可单击区域。此后,此区域简称为复选框。 当鼠标光标在复选框内移动并按下默认*鼠标按钮时,复选框应切换状态。 已检查变为未检查。未选中变为选中。 切换复选框后,该复选框不应移动。 在选中状态,复选框可以是任何颜色。 在未检查状态下,复选框可以是任何颜色,只要至少16个像素在视觉上与已检查状态不同即可。 在一个程序实例中,所有选中状态在视觉上都应该彼此相同,而所有未选中状态在视觉上都应该彼此相同。 在程序被明确终止之前(例如,通过退出按钮或Alt + F4)不要结束程序,这样用户可以根据需要单击任意复选框。 *您可以假设默认鼠标按钮始终是左键单击,但是也可以使用由鼠标软件或操作系统定义的默认按钮,根据用户的不同,默认情况下可能不会真正单击鼠标左键。 笔记 复选框区域之外的内容无关紧要。它可能只是桌面。它可能是控制台的一部分,每次切换都会更改。 复选框以什么状态开始都没有关系。 复选框区域可以具有等于或大于8×8像素的任何尺寸。它不必是正方形的。 您可以为超出控制范围的设置(例如控制台字体大小,浏览器缩放,监视器分辨率等)留出少量余地。只要您的程序在合理的测试设置下运行,它就应该有效。 如果您的程序打开了一个窗口,则可以假定它已被拖动到屏幕上的适当位置(例如,左上角)。 您可以使用标记语言,例如HTML或其他我们通常不认为是成熟的编程语言的语言。 您的复选框必须是可使用默认鼠标按钮切换的。如果它还能切换其他形式的输入(例如,鼠标右键),也可以,鼠标移动除外。也就是说,如果仅在复选框内移动鼠标,则状态不应更改。 强烈建议您使用复选框的屏幕截图! 计分 以字节为单位的最短代码获胜。 例 一个23字节的规范HTML示例。 <input type="checkbox"> 运行代码段隐藏结果展开摘要 对我来说,在Google Chrome浏览器中,这会形成12×12像素的复选框,并且大约30像素会在选中状态和未选中状态之间明显变化。 我将浏览器缩放比例设为100%。

19
尽快输入字母!
您的任务是创建一个程序,该程序可以测量您键入英文字母的速度。 该程序只接受小写字母a到z字母顺序。 每个字母都按在同一行上键入的方式回显(没有换行或字母之间的任何其他分隔符)。 如果键入无效字符,程序将Fail 在新行输出并退出。 如果键入所有26个字母,程序将在新行上输出从第一个字母到最后一个字母所花费的时间(以毫秒为单位),然后退出。 当您输入第一个字母时,计时器开始计时a。 输出示例: b Fail abcdefgg Fail abcdefghijklmnopqrstuvwxyz 6440 这是代码高尔夫球,因此最短答案以字节为单位。

6
可视化眼睛
您可能记得也可能不会记得Xeyes,它是X窗口系统附带的演示程序(据我所知,仍然附带)。其目的是在鼠标光标后画一双眼睛: 您的挑战是用ASCII艺术重新创建Xeyes。编写一个程序或函数,无论用户单击什么,它都会画出两只ASCII艺术眼(在下面指定),然后移动他们的瞳孔以指向光标的方向。 上面的GIF记录了这种非Golf的Ruby实现,可以与任何最新版本的Ruby一起运行。您可能还会发现它对于Xterm控制序列很有用。 技术指标 这是代码高尔夫球,因此以字节数最少的解决方案为准。 这是一个ASCII艺术的挑战,让你的程序必须提醒使用ASCII字符特异性,人物-,.,|,',0,空间和换行符。1 2 这是一个交互式的挑战,因此您的程序必须接受输入并实时绘制其输出。3 在程序开始接受输入之前,它应初始化至少20行20列的空白画布。除非用户单击画布,否则它不应绘制任何内容。 每当用户在画布上单击4时,程序应清除任何先前的输出,然后在画布上以最靠近鼠标光标位置的字符为中心绘制这些ASCII眼睛。5 6(以下✧表示鼠标光标,不应绘制。) .---. .---. | | | | | 0|✧|0 | | | | | '---' '---' 注意瞳孔如何“指向”光标。 每当鼠标光标在画布上移动时,程序应重新绘制瞳孔,使它们继续指向光标,例如7: ✧ .---. .---. | 0| | 0| | | | | | | | | '---' '---' 学生指点 假设我们枚举每只眼睛的内部九个字符的位置,如下所示: .---. |678| |591| …

17
映射输入的ASCII字符
确保看到另一个挑战,反向ASCII字符映射! ASCII字符集(美国信息交换标准代码)是使用最广泛的字符编码标准。ASCII码表示计算机,电信设备和其他设备中的文本。 挑战 您面临的挑战是在用户输入ASCII字符集时打印它们的映射。GIF: 用户输入每个ASCII字符后,输出应如下所示: 映射 每个字符在16x6逻辑网格上都有一个分配的位置,从左上角的空格字符开始,然后换行以使数字0出现在其下方。 收到可打印的ASCII输入时,请在其分配的屏幕位置打印该ASCII字符,而不删除当前在屏幕上的任何字符。 规则 您的程序仅需要将可打印的ASCII字符映射0x20到0x7E。 在输入所有可打印的ASCII字符之前,您的程序不得终止并继续将字符映射到屏幕。从这里,您的程序可以终止,也可以运行到Neverland中。 您的程序可以按照您喜欢的任何方式将字符映射到电子表格,表格,控制台窗口或图形窗口。 无论您如何显示映射,都必须实时更新(一旦收到用户输入)。 如果您的程序没有以静默方式读取输入,则必须将光标移开,这样文本就不会成为地图的障碍。 救命 这是我用来生成GIF的伪代码算法: loop forever c = input y_coord = c / 16 x_coord = c - y * 16 if c is printable print c at (x_coord * 2 + 1, y_coord + 1) end if …

30
ASCII三角形
您的任务是编写一个打印ASCII三角形的程序或函数。他们看起来像这样: |\ | \ | \ ---- 您的程序将采用单个数字输入n,并带有约束0 <= n <= 1000。上面的三角形的值为n=3。 ASCII三角形将具有n反斜杠(\)和竖线(|),n+1线和破折号(-),并且每行除最终行外还将具有等于行号(从0开始,即第一行为行0)的空格。 。 例子: 输入: 4 输出: |\ | \ | \ | \ ----- 输入: 0 输出: 在此测试用例中,输出必须为空。没有空格。 输入: 1 输出: |\ -- 输入和输出必须完全是我指定的方式。 这是代码高尔夫球,因此请争取尽可能短的代码!
30 code-golf  ascii-art  code-golf  rubiks-cube  code-golf  path-finding  maze  regular-expression  code-golf  math  rational-numbers  code-golf  kolmogorov-complexity  graphical-output  code-golf  tips  code-golf  string  permutations  code-golf  sorting  base-conversion  binary  code-golf  tips  basic  code-golf  number  number-theory  fibonacci  code-golf  date  code-golf  restricted-source  quine  file-system  code-golf  code-golf  math  code-golf  ascii-art  code-golf  math  primes  code-golf  code-golf  math  matrix  code-golf  string  math  logic  factorial  code-golf  palindrome  code-golf  quine  stateful  code-golf  interactive  code-golf  board-game  code-golf  math  arithmetic  code-golf  string  code-golf  math  matrix  code-golf  math  abstract-algebra  polynomials  code-golf  date  code-golf  string  array-manipulation  sorting  code-golf  game  code-golf  string  code-golf  ascii-art  decision-problem  code-golf  number  sequence  code-golf  code-golf  code-golf  sequence  fibonacci  code-golf  math  geometry  random  code-golf  code-golf  math  decision-problem  fractal  rational-numbers  code-golf  number  number-theory  code-golf  combinatorics  permutations  card-games  code-golf  math  sequence  array-manipulation  fibonacci  code-golf  sequence  decision-problem  graph-theory  code-golf  ascii-art  parsing  lisp  code-golf  string  math  natural-language  logic  code-golf  math  logic  code-golf  string  alphabet  code-golf  string  code-golf  string 

14
两点之间的最短距离是一条线
对程序或函数进行编码,以在屏幕上构造至少400像素x 400像素的交互式画布。画布可以是您想要的任何颜色,有边框或无边框,有或没有标题栏等,仅是某种形式的显而易见的画布。 用户将单击画布的两个不同区域,并且程序必须以某种方式(STDOUT,显示警报等)输出两次单击之间的欧几里得距离(以像素为单位)。两次单击只能是左键单击,只能是右键单击,第一次单击是左键单击,第二次单击是右键,两次双击都以此类推,可以接受任何组合。特别说明:明确不允许单击和拖动(例如,使用MOUSEUP作为第二点);它们必须是两次不同的点击。 用户必须能够多次执行此操作,并且每次都必须获得输出,直到程序关闭/强制退出/被杀死/等等。您可以选择关闭的方法(单击X,Ctrl-C等),无论哪种代码适合您。 规则 完整的程序或功能都是可以接受的。但是,如果是函数,则仍必须以某种方式向用户显示输出(仅返回值是不可接受的)。 输出可以发送到控制台,显示为警报,填充到画布等。 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常用的高尔夫规则都适用,并且最短的代码(以字节为单位)获胜。

10
自然日志上的蚂蚁
这是一个很好的初学者挑战,也是一个很好的时间杀手。 我只说了-自然-对数,因为标题太短了,这与对数无关。 给定2个变量: 蚂蚁数量n。 日志的宽度w。 输出日志宽度w与n蚁(实施例示出w=3,n=6) | | | \O/ \O/ \O/ | | -O- -O- -O- | | /o\ /o\ /o\ | | ^ ^ ^ | | | | \O/ \O/ \O/ | | -O- -O- -O- | | /o\ /o\ /o\ | | ^ ^ ^ | …

17
实施秒表
实现一个简单的数字秒表,它将以秒和分钟为单位显示经过的时间,如下所述。 重要 请阅读“ 显示”和“ 控件”部分! 显示 经过的时间应以MM:SS格式显示,方法是替换以前显示的时间字符串“就地”(也可以清除整个屏幕或部分屏幕)。 秒表必须至少每秒更新一次。 例子: 0分0秒 00:00 0分33秒 00:33 1分50秒 01:50 最初,您可以从“ 00:00”开始,也可以从[00:00-59:59]范围内的任何其他值开始。 秒表到达时59:59,它应重置为00:00并重新开始。 只要您遵循常规格式,就可以使用其他基数(而不是十进制),甚至可以使用其他数字系统。 例如13:03可以显示为: 小数 13:03 十六进制 0D:03 Base64 N:D 虚构基数 10101:3 罗马数字 XIII:III 请注意,如果您使用非十进制数字系统/基数,则必须使用可打印的ASCII(或Unicode)字符对它进行编码,例如,不允许使用两个二进制(不可打印的)字节分别表示分钟和秒。 如果数值系统允许的话,还必须在输出上用零填充左键。 :用任何其他可打印字符(包括数字)替换分隔符也是可以的。 控制项 秒表应开始暂停,并保持此状态,直到用户通过按“控制”键(见下文)明确启动它为止。 如果,当秒表计数,用户按下“控制”再次键,秒表应该暂停,直到(保持当前的时间),“控制”键被按下一次。 的“对照”键可以是单个键击,例如s,或键,例如任何组合Ctrl+Shift+X,但它必须是“原子”,按压在序列多个按键,例如s然后Enter,被不允许。 必须使用相同的“控制”键(或组合键)来暂停和恢复秒表。 您必须使用特定的“控制”键,即不允许使用“任何键”。 另外,您也可以单击一次或双击,而不用按下“控制”键。 规则 这是代码高尔夫,以字节为单位的最短答案为胜; 适用标准代码高尔夫球漏洞; 您的程序必须(理论上)能够永远运行。

15
几何挑战
每个人都喜欢几何。那么,为什么我们不尝试编写高尔夫球代码呢?这项挑战涉及输入字母和数字并根据其形状。 输入 输入将采用的形式(shapeIdentifier)(size)(inverter)。 但是shapeIdentifier,大小和逆变器是什么? 形状标识符是您将使用*s 制作的形状类型的标识符。以下是形状标识符: s -正方形 t - 三角形 大小将介于之间1-20,它是图形的大小。 逆变器确定形状是否上下颠倒,用a +或a 表示-。请注意: s3-==(等于),s3+因为正方形是对称的。但是,t5-!=(不相等)t5+。 在输出中可以使用尾随空白,但不能使用前置空白。 输出实例 Input: s3+ Output: *** *** *** Input: t5+ Output: * *** ***** Input: t3- Output: *** * 特别说明 三角形输入将始终为奇数,因此三角形*的顶部始终以1结尾。 三角形的大小(如果是)是底部的大小,如果是 +,则是顶部的大小-。
23 code-golf  string  ascii-art  geometry  code-golf  ascii-art  subsequence  fewest-operations  test-battery  code-golf  array-manipulation  bitwise  code-golf  interactive  code-golf  music  code-golf  string  kolmogorov-complexity  code-golf  string  decision-problem  simulation  code-golf  string  classification  code-golf  sequence  base-conversion  palindrome  code-golf  kolmogorov-complexity  code-golf  date  astronomy  code-golf  sequence  base-conversion  code-golf  geometry  combinatorics  code-golf  string  code-golf  math  array-manipulation  code-challenge  math  code-golf  card-games  code-challenge  array-manipulation  sorting  code-golf  code-golf  math  abstract-algebra  polynomials  code-golf  palindrome  factoring 

30
获取一个具有不同数字的随机n位数字,第一个不是0
我读了这个问题,并认为这将是一个不错的挑战。 任务 给一个输入0<n<10生成一个随机数 正好n位数字 第一个不是 0 所以 f(n)>10**(n-1)-1 不同的数字 获奖标准 这是代码高尔夫球,因此最短的代码获胜。 随机 我的意思是随机分布均匀。因此,从程序的角度来看,每个可能的数字都有相同的机会。如果您使用的语言具有一个奇怪的随机数生成器,则可以使用该生成器。 例 要从中随机选择的值的列表n=2是: [10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, …
22 code-golf  number  random  grid  game  king-of-the-hill  javascript  code-golf  arithmetic  statistics  code-golf  math  code-golf  math  code-golf  string  palindrome  code-golf  string  interactive  code-golf  quine  polyglot  code-golf  string  stack-exchange-api  code-golf  number-theory  decision-problem  code-golf  tips  code-golf  string  internet  code-golf  graphical-output  image-processing  fractal  code-golf  ascii-art  geometry  hexagonal-grid  code-golf  string  restricted-source  hello-world  code-golf  game  code-golf  cipher  code-golf  permutations  cops-and-robbers  permutations  cops-and-robbers  code-golf  internet  stack-exchange-api  code-golf  ascii-art  random  code-golf  tips  code-golf  ascii-art  code-golf  code-golf  kolmogorov-complexity  code-golf  string  unicode  code-golf  number  sequence  primes  palindrome  code-golf  game  decision-problem  code-golf  math  geometry  code-golf  graphical-output  interactive  code-golf  set-partitions  code-golf  number  arithmetic  restricted-source  code-golf  decision-problem  python  recursion  code-golf  ascii-art  code-golf  source-layout  code-golf  function  recursion  functional-programming  code-golf  game  combinatorics  permutations  code-golf  string  file-system  code-golf  string  hashing  code-golf  stack-exchange-api  code-golf  string  code-golf  math  number  arithmetic  polyglot 

23
坚持使用新文件名
在运行时,不断提示输入一行,直到用户输入不是相对于当前工作目录的现有文件或目录或其他文件系统项的名称。然后返回/打印最后输入的文件名。您可以假定所有用户输入都是有效的文件名。 伪代码1 myform = new form("GUI") myform.mytxt = new editfield("") myform.ok = new button("OK") repeat waitfor(myform.ok,"click") until not filesystem.exists(myform.mytxt.content) return(myform.mytxt.content) 伪代码2 LET TEXT = "." WHILE HASFILE(TEXT) DO TEXT = PROMPT("") ENDWHILE RETURN TEXT 在TIO上时将引起重新提示的用户输入示例: . .. .env.tio / /bin/[ /lost+found 在TIO上返回的用户输入示例: ... env.tio ../../bin/] /lost/found

18
创建一个简单的行编辑器
输入:不带换行符的字符串* 允许用户编辑和提交换行符 :修改后的字符串(可选带尾随的换行符) 行编辑器至少必须允许用户: 左右移动可见光标 在光标位置插入和/或覆盖字符 删除光标位置的字符 提交新的字符串,即停止编辑会使修改后的字符串返回/打印/显示/保存(没有其他文本) 赞赏,但不是必需的: 您的代码的解释。 链接到可以演示您的程序/功能的在线测试站点 演示用法的动画图像(例如,TIO不允许交互) 注意: 键绑定仅是建议 不需要GUI或视觉样式 例子 在下面,用表示光标_。 进入: Just some text 允许用户编辑: Just some text_ 用户按下←九次(向左箭头键) Just ̲some text 用户按下Del四次 Just ̲ text 用户按下 用户按下Out:any Just any_text Enter Just any text 入: Remove me 允许用户编辑: Remove me_ 用户按Backspace九次 _ 用户按出:(空字符串)Enter …

15
扩展真理机
许多人知道编程中的真机。但是现在是时候让我们努力了。介绍,扩展的真机!扩展的真理机器将两件事作为输入,一个整数n和一个非空字符串s。输出s n带有可选尾随空格的时间。但是,如果n等于0,则必须输出,s直到手动停止程序为止,即永远不要终止它。 另外,如果n为负数,则字符串需要颠倒。例如,使用s=helloand n=-1,输出将为olleh。 输入的标准方法,任何种类的输出,只要可以处理无限。如果您的答案不能处理无限大,请在有趣的情况下或以无法处理无限大输出的语言随意发布。 测试用例 n, s, output 5, "hello world", "hello worldhello worldhello worldhello worldhello world" 0, "PPCG", "PPCGPPCGPPCGPPCG..." -2, "truThY", "YhTurtYhTurt" 2000, "o", "oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo" 这是代码高尔夫球,所以最短的代码获胜! 这是原始的沙盒帖子。已对其进行了编辑。感谢@ComradeSparklePony创建了这个挑战的想法

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.