Questions tagged «keyboard»

对于涉及一个或多个键盘布局的挑战,例如QWERTY和AZERTY。

30
没有A,只有大写锁定
如果CapsLock键盘上的键没有缺口,会发生什么? “这很高兴。” 该程序的目标是一致地模拟每次A按替换为时的键盘遗漏CapsLock。源中的大写字母“ A”应产生相同的效果。当CapsLock启用时,资本是相反的。 测试用例 "The quick brown fox jumps over the lazy dog." -> "The quick brown fox jumps over the lZY DOG." "Compilation finished successfully." -> "CompilTION FINISHED SUCCESSFULLY." "What happens when the CapsLock key on your keyboard doesn't have a notch in it?" -> "WhT Hppens when …

30
闪烁大写锁定
大多数计算机键盘都有一个集成的小型LED灯,可通过CAPS LOCK按钮控制当前输入模式。 您的任务是使其闪烁: 打开它; 等待0.5(+/- 0.1)秒; 再次关闭它。 LED闪烁的视频片段受到高度赞赏! 规则 如果需要,您可以使另一个LED闪烁(例如,滚动锁定,数字锁定,Wi-Fi状态等),但是必须物理上位于键盘上; 如果您的语言缺少亚秒级sleep命令,则您的程序可能会使用1秒的延迟,但要加2个字节(这是的代价0.); 您的程序必须至少闪烁一次,然后由您自己决定,即程序可以继续闪烁(在这种情况下,您必须等待相同的延迟,然后才能重新打开),或者暂停等。 如果所选的LED默认情况下为ON,则在系统上,您可以假定在运行程序之前已将其明确关闭(例如,手动关闭); 这是代码高尔夫球,最短的答案以字节为单位。 排行榜 var QUESTION_ID=110974,OVERRIDE_USER=61904;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i; body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px} <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" …

1
键入给定文本所需的击键次数最少
我们都知道程序员往往很懒。为了最大限度地利用您的空闲时间,您决定编写一个程序,该程序为输入的文本输出最少的击键次数。 输入:必须转换为击键的文本。您可以决定如何输入文本(STDIN /从参数中提供的文件中读取) 输出:以下格式的必要操作: 他们必须编号 H它:按下一个键并立即释放它 P提示:按下一个键然后不松开(将键R作为下一个击键时,这将永远不是最佳选择) Release:释放P密钥 范例: 输入: Hello! 输出: 一个幼稚的解决方案是: 1 P Shift 2 H h 3 R Shift 4 H e 5 H l 6 H l 7 H o 8 P Shift 9 H 1 10 R Shift 这样会更有效: 1 P Shift 2 H h …

21
密钥在哪一行上?
给定以下任何字符(或换行符): `1234567890-=~!@#$%^&*()_+qwertyuiop[]\QWERTYUIOP{}|asdfghjkl;'ASDFGHJKL:"zxcvbnm,./ZXCVBNM<>? 您的程序必须输出它在键盘上的行 由于我的键盘(几乎)没电了,因此您的代码必须尽可能短 您的程序应使用的键盘(用于行查找),应类似于: Row 1:~` !1@2 #3$4 %5^6 &7*8 (9)0 _-+= Row 2: Q W E R T Y U I O P {[ }] |\ Row 3: A S D F G H J K L :; "' ↵ return Row 4: Z X C V B …

30
输出qwerty键盘
给定一个字符,输出(到屏幕)该字符之后的整个qwerty键盘布局(带有空格和换行符)。这些例子很清楚。 输入1 f 输出1 g h j k l z x c v b n m 输入2 q 输出2 w e r t y u i o p a s d f g h j k l z x c v b n m 输入3 m 输出3 (程序终止而没有输出) 输入4 l …

3
醉酒的打字员
背景 一位打字员回到家后,发现一些重要的信件仍需加重。为了确保他审核文本正确,他将文本字符bh vjaracter t0确定为6he。但是,他仍然设法错过了一些钥匙。 您的任务是编写模仿其ttping的cose。为了最大程度地减少错误的发生,代码应尽可能短。 键盘 键盘是标准的ANSI键盘。在下图中,红色文本显示了键的宽度。所有行均为1单位高,未标记的键为1单位宽。 这些键执行以下操作(列出只是为了防止混淆): Shift本身不会执行任何操作,但是如果在常规键之前立即按Shift键,则会更改结果。 CapsLock切换Caps Lock。如果启用了Caps Lock,则字母键将输出反大小写的字母。 Backspace删除最后输出的字符(如果有)。 Tab,Return和Space分别插入一个制表符,换行符和空格。 Ctrl,Alt只是用于演示。他们(并完全缺少键盘)什么也不做。 所有字母键都会产生标记的小写字母。如果在它们之前按Shift键,则会产生大写字母。Caps Lock可逆转情况。 所有其他键产生中间标记的字符。如果在他们之前按Shift键,则会产生在顶部标记的字符。 打字 为了生成一个字符,打字员在键盘上找到它并检查是否需要按Shift键。如果是这样,他首先尝试按住Shift键。然后,他立即尝试按目标键并释放所有Shift键。在尝试按目标键之后,他必须严格释放Shift键。 然而,由于醉酒,他经常错过钥匙。这可以通过以下方法模拟:选择一个随机角度(均匀地),在该方向上将按压位置移动一个随机量(具有适当的分布),然后按下落下的按键。 挑战 作为输入,您将收到要写入的文本和指示醉酒程度的数字参数。您将输出醉酒打字员键入的文本,以及上述算法生成的错别字。 技术指标 输入文本将仅包含可打印的ASCII,制表符和换行符。 输入参数是某种标量数值。可以在答案中指定其范围,但增大该值应增加平均未命中距离,反之亦然。 您可以将键盘缩放到任何内部尺寸;上面的单位大小仅是示例。 使用的坐标必须精确到关键高度的千分之一。 该程序应为每次调用产生不同的结果。(诸如srand(time(NULL));每秒更改之类的东西就足够了。) 遗漏距离的分布可以是正态分布,也可以是其他类似的分布(较小值的大概率,对于较大值则迅速减小;例如,负指数就可以了)。 打字员的手指只有一点。无需考虑其半径。 打字员可以瞄准钥匙内的任何地方,只要它不在边缘上即可。中心,恒定位置等有效。 选择Shift键的方式可以是任何方式。允许进行恒定选择,但是如果错过Shift键的地方到此结束,则两个Shift键都需要起作用。 如果按住Shift键,则仅会影响该键(即在另一个键之前尝试Shift键并成功按下)。按下Shift键的“普通”键不起作用。 Shift键仅在真实键之前被按下并快速释放,因此如果按住错误的键,则不会重复字符。 示例I / O 以下所有示例均来自参考解决方案,该解决方案使用距离的正态分布并始终选择左Shift。选项卡以SE表示为空格,但应显示在实际输出中。 输入: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed posuere …

16
使用单行qwerty键盘的最长单词
三排QWERTY键盘的是qwertyuiop,asdfghjkl和zxcvbnm。您的任务是从给定的单词列表中找到只能使用键盘的一行即可输入的最长单词。 样品输入1 artist home gas writer geology marine twerp 输出量 writer (给定的话,只有gas,writer并且twerp可以使用单个行写入,并且writer是最长的) 这些单词可能不是实际单词(因此,请不要假定第三行无效)。但是,您可以假设始终只有一个答案(不多也不少)。 样品输入2 wrhuji bxnzmmx gllwssjjd vnccbb lrkjhgfdsa tttttt 输出量 bxnzmmx 可以在输入中提供其他标点符号和空格(根据语言要求)。但是,不应提供任何额外的输出。输入和输出均为小写。最短的代码胜出。

18
旋转对称数
给定一个整数,如果它是相同的上下颠倒(旋转180°),则输出真实值,否则输出虚假值。 0,1并且8具有旋转对称性。6成为9,反之亦然。 产生真实结果的数字序列:OEIS A000787 0, 1, 8, 11, 69, 88, 96, 101, 111, 181, 609, 619, 689, 808, 818, 888, 906, 916, 986, 1001, 1111, 1691, 1881, 1961, 6009, 6119, 6699, 6889, 6969, 8008, 8118, 8698, 8888, 8968, 9006, 9116, 9696, 9886, 9966, 10001, 10101, 10801, 11011, 11111, 11811, 16091, …
27 code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

6
滑动式转换器
SwiftKey在2014年4月1日发布了笔记本电脑打字的下一次革命。但是,我想成为第一个编写可擦写纳米克隆的人,但是,由于找不到适合实际文本库的可擦写文本,而且我等不及了,所以我在这里问。 任务 编写一个程序,该程序接受划动文本并输出等效的实文本。例: Input: hgrerhjklo Output: hello 当用户这样做时: 其他例子: Input: wertyuioiuytrtjklkjhgfd Output: world Input: poiuytrtyuioiugrewsasdfgbhnmkijnbg Output: programming Input: poiuygfdzxcvhjklkjhgres Output: puzzles Input: cvhjioiugfde Output: code Input: ghiolkjhgf Output: golf 规则 该程序将在stdin或argv上输入一个刷过的“单词” 滑动输入的首个字母和最后一个字母将等于真实单词的首个字母和最后一个字母 您可以假设用户将做出合理的直线,但是您可以使用样本数据来验证这一点(我制作了样本数据,然后制作了最终的测试数据) 对于模棱两可的输入,您可以选择任一输出,但是我将尝试消除测试数据中的所有模棱两可 该单词将在此单词列表中(但会被刷掉)。单词列表将在当前目录中,并且可以读取(换行符分隔,将命名为wordlist,无扩展名)。 滑动仅包含小写字母字符 如果用户在按键上暂停,则滑动可能包含重复的字符 程序必须在stdout上输出(大小写无关紧要) 程序必须0作为返回码返回 您必须提供运行命令,编译命令(如果需要),名称以及要使用的输入路径 存在标准漏洞(尽管可能没有帮助) 不允许非内置库 确定性,非高尔夫/模糊解决方案优先 没有文件写入,联网等 您的代码必须在一秒钟或更短的时间内运行(您的代码每个单词运行一次) 计分运行在具有4个虚拟代码(2个真实代码)的Intel i7 Haswell处理器上运行,因此如果需要,您可以使用线程 最大代码长度为5000字节 您使用的语言必须具有可用于Linux的免费(非试用版)版本(Arch …

24
它是命令词吗?
(此帖子的灵感来自于“ Puzzling”。注意:下面的拼图是令人窒息的。) 标准电话键盘将字母与数字关联如下: 1 -> 2 -> ABC 3 -> DEF 4 -> GHI 5 -> JKL 6 -> MNO 7 -> PQRS 8 -> TUV 9 -> WXYZ 0 -> 如果在使用上述命令将其转换为按键时,给定的输入单词定义为“有序单词”,则该数量为不递减或不递增。换句话说,结果数不能同时增加和减少。 例如,单词CAT翻译为228,它是非递减的,因此是有序单词。但是,单词DOGis 364,它都会增加和减少,因此不是有序单词。 挑战 给定单词,输出是否为有序。 输入项 仅由ASCII字母([A-Z]或任何形式)组成的单词(不一定是词典单词)。[a-z] 您选择输入是全部大写还是全部小写,但必须一致。 该单词的长度至少为3个字符。 输出量 输入的单词是有序(真)还是无序(假)的一致真/假值。 规则 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。 如果可能,请提供一个在线测试环境的链接,以便其他人可以尝试您的代码! 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常见的高​​尔夫规则都适用,并且最短的代码(以字节为单位)获胜。 例子 这是一些有序单词(即真词),还有更多相关的令人困惑的难题。 CAT …

6
对游戏男孩的有效打字
许多旧的Game Boy游戏经常需要用户输入字符串。但是,没有键盘。这是通过向用户显示“键盘屏幕”来解决的,如下所示: 该“字符指针”将开始于字母A的用户将导航到与所需的字符d-垫的四个按钮(UP,DOWN,LEFT和RIGHT),然后按BUTTON A将其追加到最终字符串。 请注意: 网格环绕,因此UP在字母A上同时按下可将您带到T。 附加字母后,“字符指针”保持不变 挑战 上面的键盘具有更改大小写的选项,并且形状不规则。因此,为简单起见,在此挑战中,我们将使用以下键盘(右下角为ASCII char 32,一个空格): A B C D E F G H I J K L M N O P Q R S T U V W X Y Z . 在这样的键盘上打字非常慢-因此,为了简化操作,您的任务是编写一个程序,该程序告诉用户以最快的方式键入给定字符串的方法。如果有多种最快的方法,则只需要显示一种即可。 输出密钥应为: > 对于 RIGHT < 对于 LEFT ^ 对于 UP v …

19
创建一个呈现其自身源代码的“黑客打字机”程序
如果您不熟悉hacker typer,请参阅hackertyper.net。简而言之,它是一个程序,每次击键都会输出一个代码库的一部分,以实现喜剧效果。但是,hackertyper.net版本太容易实现了。它只是从任意一段代码中一次输出三个字符。为了应对这一挑战,程序必须输出自己的源代码,并在每次击键时打印一个空格分隔的代码块。 细节 不能为程序的文件名硬编码。它必须动态确定其名称。如果程序编译为可执行文件,则可以将标准文件扩展名附加到可执行文件的名称(如果使用Windows,则不包括.exe),并假定源文件在可执行文件的目录内。例如,如果C可执行文件名为“ hacker”,则它应从同一目录中名为“ hacker.c”的文件中提取其源代码。如果已编译程序具有扩展名,则应在确定其源代码名称之前将其删除(“ typer.exe”->“ typer.cs”)。 程序必须包含至少5个空格,每个空格之间至少要有一个字符。这意味着此挑战的最小可能大小为9个字节。空格对于程序的功能不必很关键。 任何格式(缩进,换行等)都必须保留在输出中。可以使用继续执行该代码的格式来打印该格式,也可以跟随其后的代码打印,重要的是要保持格式。 除非使用其他语言来实现空格,否则请避免使用注释来满足5个空格的要求。 编辑:可以使用新行来代替空格,也可以将空格用作块分隔符。

21
我应该按几次?
我们都习惯了老式的电话键盘,对吗?供参考,如下所示: 给定一个仅包含小写ASCII字母和单个空格的字符串,您的任务是返回一个敲击次数,以便使用上面的电话键盘键入完整的字符串。 对于不熟悉此功能的人,以下是它的工作原理: 2例如,带有数字的键也记录有字符串abc。要键入a,必须按一次此键,因为b必须按两次,并且c必须按三次。 对于同一键上的连续字母,必须等待1秒钟再按一次。因此,如果要键入cb,则必须按3次c,等待一秒钟,然后按两次b,因此仍需点击5次。 除一个空格仅需按1 次外,其他所有键也是如此。另请注意,键7和上9有四个字母。应用相同的算法,唯一的区别是字母数。可以在上图(但小写)或以下列表中找到与每个键对应的字符串,其中包含您可能会收到的所有字符: "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz", " " 测试用例 输入->输出(说明) “”-> 0(不要轻敲) “ water”-> 8(“ w,a,t”分别需要敲击1次(在键9、2和8上),“ e”需要2次敲击(在3号键上),“ r”需要3次敲击(在7号键上) ),1 + 1 + 1 + 2 + 3 = 8) “肥皂”-> 9(4 + 3 + 1 + 1) “坎德拉”-> 13(3 + 1 …

30
圆形键盘螺旋
这是QWERTY键盘。 Q W E R T Y U I O P A S D F G H J K L Z X C V B N M 我们可以从G开始在此键盘上“螺旋出”。螺旋将从G开始,转到H,然后到Y,然后到T,然后是F,然后是V,然后是B,然后是N,然后是J,然后是U时,则R,然后d,然后C,...等你的挑战是,给定一个数1≤ ñ ≤26,输出第一ñ在此螺旋字符。(如果您感到困惑,请参阅文章末尾的图片。) 抓住?您的程序的分数与螺旋内发现的字符的索引成正比! 计分 对于代码中的每个字母(不区分大小写),将螺旋中该字符的索引添加到分数中(从1开始)。 对于不在螺旋中的每个字符,将其分数加10。 最低分获胜。 例如,该程序print("Hello, World!")的分数为300。 为了您的方便,我写了一个自动程序分级器。 显示代码段 var SPIRAL = "GHYTFVBNJURDCMKIESXLOWAZPQ"; function grade(program) { var score = 0; …

15
半回文之谜
回文是一个本身相反的词。 现在有些单词看起来像回文,但看起来却不然。例如,考虑单词 sheesh, sheesh不是回文,因为它的反向是hseehs不同的,但是如果我们认为sh是单个字母,那么它的反向是sheesh。我们将这种词称为半回文。 具体来说,如果我们可以将单词拆分成一定数量的块,则该单词为半回文,这样当块的顺序颠倒时,便形成了原始单词。(因为sheesh这些块是sh e e sh),我们也将不要求任何块包含两个单词的字母(否则每个单词都是半回文)。例如rear,不是半回文,因为它r ea r具有一个块(ea),其中包含来自原始单词两边的字母。我们认为奇数长度的单词的中心字符不在单词的两侧,因此对于奇数长度的单词,中心字符必须始终位于其自己的块中。 您的任务是获取正整数列表,并确定它们是否为半回文。您的代码应输出两个一致的不相等值,如果输入是半回文,则应输出一个,否则将输出另一个。但是,代码的字节序列本身必须是半回文。 答案将以字节计分,而字节数越少越好。 测试用例 [] -> True [1] -> True [2,1,2] -> True [3,4,2,2,3,4] -> True [3,5,1,3,5] -> True [1,2,3,1] -> False [1,2,3,3,4,1] -> False [11,44,1,1] -> False [1,3,2,4,1,2,3] -> False 程序生成更多的测试用例。 borrible指出,这些与广义Smarandache回文相似。因此,如果您想做进一步的阅读,那是一个开始的地方。

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.