静态语言处理 JSON 就是很麻烦
Yotta 技术不错
#14 楼 @bluexuemei 判断一下剩下的数的取值范围不会导致和超过 80,这样的话就可以一次性取成功,复杂度为 O(1)。至于不平均的问题倾斜一下概率就好了,不会增加复杂度。
a = []; 10.times { |i| a << rand([4, 80 - a.sum - (10 - 1 - i) * 13].max..[13, 80 - a.sum - (10 - 1 - i) * 4].min) }
注意一下随机数不要超过范围就行了
合并成一个项目吧
可以结合一下
module ApiHelper
%w(get post put patch delete).each do |method|
define_method "api_#{method}" do
request_send method
end
end
def request_send(method)
# dosometing
end
end
[x + 1] * (y % x) + [x] * (y / x - y % x)
Bravo!
nginx
add_header Access-Control-Allow-Origin *;
#61 楼 @WRLin 呵呵,测试一下同事做的 JavaScript 插件 https://github.com/fr0m/background.js
(1..12).map { |month| (3 - Date.new(2014, month, 1).wday) % 7 + 1 } # => [1, 5, 5, 2, 7, 4, 2, 6, 3, 1, 5, 3]
Ruby 其实可以写的更简单
https://gist.github.com/swordray/a04e9fda23107f26f284
class Game2048
def initialize
@array = 4.times.map { [ nil ] * 4 }
2.times { fill }
end
def fill
i, j = rand(4), rand(4)
return fill if @array[i][j]
@array[i][j] = [2, 2, 2, 2, 4].shuffle.first
end
def move(direction)
@array = @array.transpose if %w[up down].include?(direction)
@array.each(&:reverse!) if %w[right down].include?(direction)
4.times do |i|
a = @array[i].compact
4.times { |x| a[x], a[x + 1] = a[x] * 2, nil if a[x].to_i == a[x + 1] }
@array[i] = a.compact.concat([ nil ] * 4)[0..3]
end
@array.each(&:reverse!) if %w[right down].include?(direction)
@array = @array.transpose if %w[up down].include?(direction)
end
def play
puts @array.map { |line| "[%5s] " * 4 % line }
move({ a: 'left', s: 'down', d: 'right', w: 'up' }[gets.strip.to_sym])
fill && play if @array.flatten.include?(nil)
end
end
Game2048.new.play
感谢主要作者 @mystery from 优众网
何苦呢,何必呢?
1939年9月,德国军队以保护德裔居民的名义发动闪电战入侵波兰领土,随即导致大英帝国与法国向德国宣战,从而引发第二次世界大战。
我觉得 JavaScript 前端工程师插手后端开发是非常不冷静的
使用正确的 IDE
#6 楼 @fresh_fish 可以不开启它的浏览器端监控
QA Own 就没办法了
#6 楼 @yukihiro_matz 所有语言都需要考虑性能,只不过性能优化最重要的原则就是不要过早优化
Ruby 好慢啊,吓尿了,立马 rvm uninstall all
没有了魔法的魔法师,跟普通人又有什么区别?大可用 C++ / Java 来写
这也问?试试不就知道了
东京节点在国内 ping 大概 100 ms 左右,应该算是很快了,可以试试我的小站 http://www.shuhai.org/
呵呵