[{"data":1,"prerenderedAt":244},["ShallowReactive",2],{"project-12866538":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":44,"post_text":45,"what":46,"said":62,"maker_in_thread":143,"shape":153,"grid":157,"attempts":205,"same_week":206,"maker_shows":202,"maker_hidden":236,"reader_version":237,"card":238},"12866538","Quick JavaScript Tetris","Based on Yesterday's Show HN","title","Show HN: Quick JavaScript Tetris – Based on Yesterday's Show HN","https:\u002F\u002Fgithub.com\u002Fsacert\u002FQuick-Tetris","github.com","sacert",1478197433,2016,56,22,669,2264,30,"notable","games","browser tetris game","web_app",[24,25,26,27],"javascript tetris","browser game","canvas game","tetris clone","roasted",-0.313,{"positive":31,"neutral":32,"mixed":31,"critical":33},2,3,9,16,{"performance":36,"design":39,"idea":40,"docs":42,"execution":43},{"positive":37,"critical":38},0,5,{"positive":37,"critical":31},{"positive":41,"critical":37},1,{"positive":37,"critical":37},{"positive":37,"critical":31},[37,38,41,37,41,41,41,41,32,37,38,32,32,41,37,37,32,41,32,41,41,37],null,{"problem":45,"audience":45,"pricing":45,"motivation":47,"time_to_build":45,"stack":54,"openness":59,"stage":60,"team_size":61},{"value":48,"source":49,"evidence":50},"Built a Tetris game in a short session inspired by a previous Show HN post","maker",[51],{"id":52,"by":11,"text":53},"12866567","After seeing yesterday's Show HN about building a Tetris game on a game, I decided to take a crack at it and build it within a short time frame before I went back to studying for…",[55],{"value":56,"source":49,"evidence":57},"JavaScript",[58],{"id":52,"by":11,"text":53},"unknown","prototype","solo",{"praise":63,"objections":80,"requests":126,"questions":141,"alternatives":142},[64],{"value":65,"source":66,"evidence":67},"Fun and well-liked short single-file project","commenter",[68,72,76],{"id":69,"by":70,"text":71},"12868103","nothrows","Love these short 1 file code things. C https:\u002F\u002Fgist.github.com\u002Fspaceexperiment\u002F4d6b116ef577a29712593c41747bd092 Tcl…",{"id":73,"by":74,"text":75},"12868860","KiDD","I love Tetris! Played it for a few minutes. Time to attach to blocks shouldn't be instant and I had the top and right game borders start flashing after a while but otherwise…",{"id":77,"by":78,"text":79},"12867225","ronilan","Super nice. I had to look in the code to find this: ``` Up arrow to rotate! ```",[81,104,111,118],{"value":82,"source":66,"evidence":83},"Game freezes or stops after a few minutes of play",[84,88,92,96,100],{"id":85,"by":86,"text":87},"12867489","vinay427","I experienced a bug where the game suddenly stops after a few minutes of playing. I'm using Firefox ESR 45.4.0 on RHEL if it helps. Otherwise, great job!",{"id":89,"by":90,"text":91},"12870008","mrpopo","Seconding that, Firefox 49 on Windows7.",{"id":93,"by":94,"text":95},"12870583","krusty76","Thirded w\u002F Chrome 54.0.2840.87 (64-bit) on OS X 10.11.6. Stopped about 15 pieces in the first time so I thought it was just an abbreviated demo.",{"id":97,"by":98,"text":99},"12879877","shakna","Me too. Jumping into the console gives a series errors like: > TypeError: tetrisBoard[(y - 1)] is undefined From within tick() Seems to be triggered by rotation followed by a drop.",{"id":101,"by":102,"text":103},"12889025","matthuggins","I couldn't get a second block to appear. I drop the first block, and the game just stops doing anything.",{"value":105,"source":66,"evidence":106},"Page scrolls when rotating with the up arrow",[107],{"id":108,"by":109,"text":110},"12867373","oneeyedpigeon","Fine idea, but it needs to cancel the default event because otherwise the page scrolls up when you rotate a piece.",{"value":112,"source":66,"evidence":113},"Playing field taller than small browser windows",[114],{"id":115,"by":116,"text":117},"12870173","bartl","The playing field is higher than the client area of my browser. (768px pix screen)",{"value":119,"source":66,"evidence":120},"Rotation delay too short and block attach timing off",[121,125],{"id":122,"by":123,"text":124},"12869908","lacampbell","I feel like delay you get when rotating the blocks is too short. I often ended up over-rotating it. Might just be me. Other than that good job.",{"id":73,"by":74,"text":75},[127,134],{"value":128,"source":66,"evidence":129},"Add mobile and touch support with swipe controls",[130],{"id":131,"by":132,"text":133},"12867661","rahkiin","Could you make it work on mobile (esp. touch screens)? Something where arrows are swipes?",{"value":135,"source":66,"evidence":136},"Show the next upcoming block",[137],{"id":138,"by":139,"text":140},"12869070","intralizee","It would be nice to see what the next block is going to be.",[],[],{"comments":144,"answered":41,"key":145},6,[146,147,150],{"id":52,"text":53},{"id":148,"text":149},"12867783","Thanks for pointing it out, I'll look into it.",{"id":151,"text":152},"12867910","That is quite interesting, I didn't really think about mobile capabilities while making this but it would be a fun thing to add. I'll look into it after my exam tomorrow!",{"commenters":154,"max_depth":155,"maker_replies":144,"first_comment_mins":32,"lifespan_hours":156},17,4,83,[158,160,164,166,167,168,169,170,171,173,175,177,181,183,185,188,191,193,197,199,201,203],[52,37,37,159,11,41],"maker\u002Fneutral\u002Fexecution",[161,37,38,162,163,37],"12868284","maker\u002Fpositive\u002Fnone","wmichelin",[85,41,41,165,86,37],"project\u002Fcritical\u002Fperformance",[148,41,37,159,11,41],[89,41,41,165,90,37],[93,41,41,165,94,37],[97,41,41,165,98,37],[101,41,41,165,102,37],[131,31,32,172,132,37],"project\u002Fneutral\u002Fdesign",[151,31,37,174,11,41],"maker\u002Fpositive\u002Fdesign",[69,32,38,176,70,37],"project\u002Fpositive\u002Fidea",[178,155,32,179,180,37],"12869080","maker\u002Fneutral\u002Fnone","lanius",[77,38,32,182,78,37],"project\u002Fmixed\u002Fdocs",[108,38,41,184,109,37],"project\u002Fcritical\u002Fexecution",[186,38,37,187,11,41],"12867452","maker\u002Fpositive\u002Fexecution",[189,38,37,190,11,41],"12867391","maker\u002Fneutral\u002Fdocs",[73,144,32,192,74,37],"project\u002Fmixed\u002Fdesign",[194,195,41,184,196,37],"12870555",7,"brockwhittaker",[138,198,32,172,139,37],8,[122,33,41,200,123,37],"project\u002Fcritical\u002Fdesign",[115,202,41,200,116,37],10,[204,202,37,187,11,41],"12870465",[],[207,212,217,222,226,231],{"id":208,"name":209,"points":210,"category":211},"12879179","Jasonette",648,"dev_tools",{"id":213,"name":214,"points":215,"category":216},"12909967","DevFreeBooks",571,"learning_science",{"id":218,"name":219,"points":220,"category":221},"12891158","DeepRhyme (D-Prime)",208,"ai",{"id":223,"name":224,"points":225,"category":211},"12874740","Best of Themes",164,{"id":227,"name":228,"points":229,"category":230},"12862195","Portainer",146,"infrastructure",{"id":232,"name":233,"points":234,"category":235},"12860602","SkateJS",144,"languages",false,"v2",{"id":239,"name":5,"line":6,"ai":236,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":240,"top":18,"kw":241,"maker":11,"domain":10,"tier":19,"attempts":37,"strip":242,"url":9,"mix":243,"praise":65,"objection":82,"sub":21},12866538,-0.31,[24,25,26,27],"0510111130533100313110",[31,32,31,33],1794036549192]