编程拼图和代码高尔夫

编程益智爱好者和代码高尔夫球手的问答

8
追捕W
当我还是个小伙子的时候,孩子们会逛到电脑商店玩“狩猎泵车”,直到员工把我们赶出去。这是一个简单的游戏,可以在1970年代中期的家用计算机上进行编程,其设备非常初级,因此我认为其中有些可能不是真正的小鸡,而不是小鸡大小的微处理器。 让我们通过在现代硬件上重现游戏来唤起过去的时代。 玩家从二十面体地图上的一个随机房间开始(因此,总共有20个房间,像二十面体的面孔一样相互连接,每个房间正好有三个出口)。 乌贼开始于随机选择的不同房间。尽管玩家无法确定气味的方向,但在与其位置相邻的三个房间中的任何一个房间中,都可以检测到汗味和气味。游戏仅报告“您闻到了臭味”。 玩家携带弓箭和无数箭矢,他可以随时向自己前方的房间射击。如果wumpus在那个房间里,它就会死亡并且玩家获胜。如果wumpus不在那个房间中,它会被吓住并随机进入连接到其当前位置的三个房间中的任何一个。 一个随机选择的房间(保证不是玩家开始的房间)包含一个无底洞。如果玩家在维修区附近的任何房间中,他都会感到微风,但不知道微风来自哪个门。如果他带着小坑走进房间,他就会死去,而小熊赢了。臀部不受坑的影响。 如果玩家走进wumpus的房间,或者如果wumpus走进玩家的房间,则wumpus获胜。 玩家使用数字指定面对的方向(1 =右,2 =左,3 =向后),然后进行一个动作(4 =射箭,5 =沿指定方向行走)。 为了得分,可以将每个游戏字符串(“您感到微风”,“闻到汗味”,“您的箭没有击中任何东西”,等等)视为一个字节。不要滥用此功能将游戏代码隐藏在文本中;这只是为了与玩家互动。 减去megabat的字节数的10%,以实施megabat,它始于与玩家不同的随机房间(尽管它们可以与wumpus和/或pit共享一个房间)。如果玩家带着蝙蝠走进房间,蝙蝠将把玩家带到另一个随机选择的房间(保证不是房间里有坑或小熊),然后飞到自己的新的随机位置。在与蝙蝠相邻的三个房间中,可以听到它们吱吱作响的声音,但是不会向玩家提供声音来自哪个房间的信息。 减去35%的字节数即可实现图形界面,以显示二十面体地图,以及有关玩家迄今为止所掌握的有关坑,腹肌和蝙蝠(如果适用)位置的信息的某种指示玩家。显然,如果腹部移动或玩家被蝙蝠移动,则地图需要相应地重置。 调整后的最低字节数为准。 可以在此网站以及其他网站上找到该游戏版本的BASIC源代码(不一定符合上述规则,并且在任何情况下完全不符合要求)。

7
贝塞尔曲线的动画图
您的工作是根据控制点绘制贝塞尔曲线。唯一的条件是您实际上必须显示如何绘制从初始控制点到最后一个控制点的曲线。 标准 结果必须是动画的,例如必须以某种方式显示绘图过程。制作动画的方式无关紧要,它可以生成.gif,可以绘制到窗口或生成ASCII结果(并可能在每次绘制后清除屏幕),等等。 它必须至少支持64个控制点。 这是一场人气竞赛,因此您可能需要在程序中添加一些其他功能以获得更多支持。(例如,我的答案画出了控制点,以及一些关于如何生成图像的视觉帮助) 获胜者是上次提交有效作品后7天获得最高评价的有效答案。 我提交的内容无效。 如何绘制贝塞尔曲线 假设我们要绘制100次迭代。要获得n曲线的th点,可以使用以下算法: 1. Take each adjanced control point, and draw a line between them 2. Divide this line by the number of iterations, and get the nth point based on this division. 3. Put the points you've got into a separate list. Let's …

30
使用有效的代码写格言[关闭]
您最多可以用4行代码写一个格言吗? 代码应该尽可能用普通的英语格言朗读,并且应该返回布尔值true。 语言:选择。 可接受答案的标准:180 个投票日内最多投票30天。(2014年7月8 日) 独创性:可以是一种古老的格言,但富有创造力的格言会受到更多的赞赏。

30
ASCII艺术“ Hello-World!” [关闭]
您的目标是编写输出“ Hello-World!”的最短程序。作为ASCII艺术。 规则: 它必须是人类可读的,我不在乎它的大小(cols / rows) 输出中只能包含空格(“”),尖号(“#”)和换行符 输出必须使用等宽字体(但字母不必使用等宽字体) 结果,每个字符必须彼此隔开至少一个空格 请在代码中添加标题以及语言和字节数。

20
爱情计算
小时候,我的姐姐向我展示了这个小小的爱心计算方法,以了解您与暗恋对象成功建立关系的机会。您只需要2个名字和一张纸。 约翰 简 然后,将这些名称与Loves分开。您可以将其写在一行或换行上。 约翰· 爱 简 然后开始计算。首先,您要计算一个字符从左到右出现的次数,如果从上到下也使用换行符,那么这种情况会发生。每个字符都被计数一次,因此,在计数John 的J后,您从Jane入手就不必再次对其计数。该示例的结果如下: J:2([J] ohn | [J] ane) O:2(J [o] hn | L [o] ves) H:1(Jo [h] n) N:2(Joh [n] | Ja [n] e) __ L:1([L] oves) O:已跳过 V:1(Lo [v] es) E:2(Lov [e] s | Jan [e]) S:1(Love [s ]) __ J:跳过 A:1(J [a] …

25
HelolW rdlo(线程挑战)
我为您带来挑战: 使用任何语言打印“ Hello World”。 每个字符必须从其自己的唯一线程中打印 而已。显然,由于不能保证线程按启动顺序运行,因此必须确保程序线程安全以确保按正确的顺序打印输出。 并且,因为这是代码高尔夫,所以最短的程序将获胜。 更新: 获奖者是Marinus的APL参赛作品(34个字符)。它还赢得了可读性最差的奖项。
39 code-golf 

30
挑战:写一段自己退出的代码[关闭]
我正在搜索(是吗?)寻找立即退出的一段代码-这绝对是一种非常规的方式。 这并不意味着:System.exit((int) 'A');(Java)。 这可能意味着: #!/usr/bin/env python3 # NOTE: This kills ALL RUNNING Python processes. Be careful! def exit(): import os os.system("killall python3") # Windows addon os.system("taskkill /im python.exe /f") exit() 最受好评的答案胜出!所有语言,所有体系结构。 编辑:通过抛出异常退出将不再被接受!

5
在编译时解决八皇后问题[关闭]
您可以在编译时解决八个皇后难题吗? 选择任何合适的输出格式。 我对C ++模板元编程解决方案特别感兴趣,但是您可以使用具有类似构造的语言,例如Haskell的类型系统。 理想情况下,您的元程序将输出所有解决方案。没有硬编码。

13
高级代码高尔夫-编写小型HTTP服务器
您的挑战是编写一个接受GET请求的代码高尔夫HTTP服务器。显然,它不必具有全部功能,但必须提供目录中的文件。 规则: HTTP服务器必须在TCP端口36895(0x901F)上侦听 它必须/var/www在* NIX系统(例如Linux)或C:\hgolfWindows 上提供文件。 您可以忽略除GET本身之外的所有传入HTTP标头。 如果HTTP方法不是GET,则必须发送回状态代码“ 405不支持”和正文“ 405不支持”。 如果文件不存在,则必须发送回状态代码“ 404未找到文件”和正文“ 404未找到文件”。 如果文件存在但由于某种原因无法读取,则必须发送回状态代码“ 500 Server Error”和正文“ 500 Server Error”。 如果用户请求/或任何其他现有的根目录(例如,/foo/其中一个目录foo存在/var/www/),空白页面响应。 您的回复必须至少包含最小标头,以允许内容在Firefox 8.0和Internet Explorer 8.0上显示 您必须使用Content-Type标头集进行响应,但只需要支持扩展名html => text/html和即可txt => text/plain。对于其他任何文件扩展名,请application/octet-stream作为内容类型发送。 您的代码必须能够同时传输ASCII和二进制数据,尽管您不必明确区分两者。 您不得使用第三方库。 您不得使用用于处理HTTP请求的内置类或功能(例如,HttpListener在C#中) 如果由于您使用的套接字API而使代码仅在特定的操作系统上运行,请说明这一点。 解决方案必须包含一个图像,该图像显示该图像向浏览器提供HTML页面。 如果您有任何疑问,请随时提问!:)
39 code-golf 

8
模拟魔方
魔方具有6种颜色:红色,橙色,黄色,白色,蓝色和绿色。红色和橙色,黄色和白色以及蓝色和绿色的面相对。 一个已解决的Rubik多维数据集的网络如下所示: Y BRGO W 磁贴看起来像这样: Y Y Y Y Y Y Y Y Y B B B R R R G G G O O O B B B R R R G G G O O O B B B R R R G G G O O …

20
打印包含n的第n个素数
这个问题将是找到n第素数的一个转折。 挑战 您必须编写一个程序,该程序将接受一个input n,并输出n第一个质数,该质数的十进制表示形式包含十进制表示n形式。 困惑?这里有些例子。 n=1 Primes: 2, 3, 5, 7, 11 ^1 first prime that contains a 1 Output: 11 n=2 Primes: 2, 3, 5, 7, 11, 13, 17, 19, 23 ^1 ^2 second prime that contains a 2 Output: 23 n=3 Primes: 2, 3, 5, 7, 11, 13, …

30
一系列产品
您的任务很简单:给定两个整数a和b,输出∏[a,b]; 也就是介于a和之间的乘积b。您可能需要a和b任何合理的格式,不管是参数的函数,一个列表输入,标准输入,等等。您可以以任何合理的格式输出,例如返回值(用于函数)或STDOUT。a永远小于b。 请注意,结尾可能是的排他或包含b。我不挑剔 ^ _ ^ 测试用例 [a,b) => result [2,5) => 24 [5,10) => 15120 [-4,3) => 0 [0,3) => 0 [-4,0) => 24 [a,b] => result [2,5] => 120 [5,10] => 151200 [-4,3] => 0 [0,3] => 0 [-4,-1] => 24 这是一个代码高尔夫球,因此以字节为单位的最短程序获胜。 排行榜 这篇文章底部的Stack Snippet会根据答案a)生成目录,a)作为每种语言最短解决方案的列表,b)作为整体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language …
39 code-golf  math 

16
最小的棋盘压缩
编写可以对棋盘进行编码和解码的算法或程序。目标是制作棋盘的最小表示,可用于确定(一旦解码)棋手在该回合中的所有移动可能性。 编码必须能够显示: 轮到谁了。 玩家是否可以在两侧守城堡。 玩家是否可以执行陪练,如果可以,则执行哪一个棋子? 所有作品的位置。 关于cast皮的重要说明:如果白色将其国王移动一圈,然后再将其向后移动一次,则必须明确的是,此后他们无法在任一侧守城堡。如果他们移动左车子或右车子,情况​​也会一样。尽管棋盘在视觉上处于与两个回合之前相同的状态,但游戏状态已更改。此处提供更多信息:http : //en.wikipedia.org/wiki/Chess#Castling 有关通行证的重要说明:这也是一个转弯敏感动作。阅读规则以获取更多信息。http://en.wikipedia.org/wiki/Chess#En_passant 根据需要确定输入和输出。压缩力最大的道具! 您的分数取决于最坏的情况-最大可能的大小(以位为单位)。确保显示如何计算该数字以及所占金额。拍摄最小的最坏情况!

30
我反转了源代码,您否定了输出!
您的任务(如果希望接受)是编写一个输出非零数字(可以是整数或浮点数)的程序。棘手的部分是,如果我反转源代码,则输出必须是取反的原始整数。 规则 您必须构建一个完整的程序。也就是说,您的输出必须打印到STDOUT。 两个数字都必须以10为底(禁止以其他任何底数或以科学计数法输出)。 允许输出带有尾部/前导空格的数字。 这是代码高尔夫球,因此每种语言中最短的(原始)代码胜出! 默认漏洞适用。 例 假设您的源代码为,ABC并且其对应的输出为4。如果我CBA改为编写并运行它,则输出必须为-4。

30
输出传奇的Yggdrasil
您的任务是输出传奇生物树Yggdrasil的表示形式。 您必须编写一个程序,其输出正是这样的: /\ /**\ /****\ /******\ /******\ /********\ /**********\ /************\ /**************\ /************\ /**************\ /****************\ /******************\ /********************\ /**********************\ /******************\ /********************\ /**********************\ /************************\ /**************************\ /****************************\ /******************************\ /************************\ /**************************\ /****************************\ /******************************\ /********************************\ /**********************************\ /************************************\ /**************************************\ /******************************\ /********************************\ /**********************************\ /************************************\ /**************************************\ /****************************************\ /******************************************\ /********************************************\ /**********************************************\ /************************************\ /**************************************\ /****************************************\ /******************************************\ /********************************************\ /**********************************************\ /************************************************\ /**************************************************\ /****************************************************\ …

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.