CoRサンプル集: テトリスのような落ちものパズルゲームのサンプル
テトリスのような落ちものパズルゲームのサンプル。
音楽・画像などの素材は一切使用していないので、コピペだけで移植出来ます。
操作方法
横移動:←→
ソフトドロップ:↓
ハードドロップ:↑
左回転:Z
右回転:X
ホールド:C
音楽・画像などの素材は一切使用していないので、コピペだけで移植出来ます。
操作方法
横移動:←→
ソフトドロップ:↓
ハードドロップ:↑
左回転:Z
右回転:X
ホールド:C
プレー:3
(人数:2)
クリア:2
評価: 10 (1回)
タグが設定されていません
#==============================================================================
# 補助機能
#==============================================================================
class Extension
# 配列の各次元の要素数を返す
# @param array [Array] 調べたい配列
# @return [Array<Integer>] 各次元の長さ
def self.array_size(array)
size = []
obj = array
while obj.is_a?(Array)
size << obj.size
obj = obj[0]
end
return size
end
# 2次元配列を右に90度回転
# @param matrix [Array<Array>] 回転前の2次元配列
# @return [Array<Array>] 回転後の2次元配列
def self.rotate_right(matrix)
height = matrix.length
width = matrix[0].length
result = Array.new(width) { Array.new(height) }
height.times do |y|
width.times do |x|
result[x][height - 1 - y] = matrix[y][x]
end
end
return result
end
# 2次元配列を左に90度回転
# @param matrix [Array<Array>] 回転前の2次元配列
# @return [Array<Array>] 回転後の2次元配列
def self.rotate_left(matrix)
height = matrix.length
width = matrix[0].length
result = Array.new(width) { Array.new(height) }
height.times do |y|
width.times do |x|
result[width - 1 - x][y] = matrix[y][x]
end
end
return result
end
# 2次元配列を180度回転
# @param matrix [Array<Array>] 回転前の2次元配列
# @return [Array<Array>] 回転後の2次元配列
def self.rotate_180(matrix)
height = matrix.length
width = matrix[0].length
result = Array.new(height) { Array.new(width) }
height.times do |y|
width.times do |x|
result[height - 1 - y][width - 1 - x] = matrix[y][x]
end
end
return result
end
end
コード一覧
プレー内容を公開する