操作最適化の練習が動かなくなっていた→修正
mement → memento
何か
Random random_shuffle

diff --git a/lib/vortex/mode.rb b/lib/vortex/mode.rb
index 0fde89d..02d6a29 100644
--- a/lib/vortex/mode.rb
+++ b/lib/vortex/mode.rb
@@ -29,7 +29,7 @@ def initialize(*)
         @fields = []
         @players = []
         @kachimake_info = {}
-        p @kachimake_info.object_id
+        # p @kachimake_info.object_id
         @setuped = false
         @state = State.new(:boot)
       end
@@ -49,9 +49,11 @@ def iroiro_setup_once

       def iroiro_setup
         # @controllers = @players.collect{|e|e.controller}.uniq
+        new_seed = Random.new_seed
         @fields.each.with_index{|e, i|e._index ||= i}
         @players.each.with_index{|e, i|e._index ||= i}
         @players.each{|e|e.frame2 = self}
+        @players.each{|e|e.randomizer.random_shuffle(new_seed)}
       end

       def iroiro_ugokasu
@@ -88,15 +90,15 @@ def show_loop(&block)
       end

       def start(fps = nil, &block)
-        @menu = Stylet::Menu::Soundy.new(name: "[GAME OVER]", list: [
-            {:name => "もう1回", :safe_command => proc { @retry = true }},
-            {:name => "おわる",  :safe_command => proc { Stylet.run { vputs "Hello World" } }},
-            {:name => "閉じる",  :safe_command => :force_close },
-          ])
+        # @menu = Stylet::Menu::Soundy.new(name: nil, list: [
+        #     {:name => "もう1回", :safe_command => proc { @retry = true }},
+        #     {:name => "おわる",  :safe_command => proc { Stylet.run { vputs "Hello World" } }},
+        #     {:name => "閉じる",  :safe_command => :force_close },
+        #   ])
         catch(:exit) do
           loop do
             next_frame
-            @menu.update
+            # @menu.update
             block.call if block
           end
         end
@@ -146,7 +148,7 @@ def start_with_retry
               when :menu_dasuyo
                 if @state.start?
                   @retry = false
-                  @menu = Stylet::Menu::Simple.new(name: "[GAME OVER]", list: [
+                  @menu = Stylet::Menu::Simple.new(name: nil, list: [
                       {:name => "もう1回", :soft_command => proc { @retry = true }},
                       {:name => "やめる",  :soft_command => :force_close },
                     ])
diff --git a/lib/vortex/randomizer.rb b/lib/vortex/randomizer.rb
index 46c674a..d439d94 100644
--- a/lib/vortex/randomizer.rb
+++ b/lib/vortex/randomizer.rb
@@ -32,8 +32,8 @@ module Randomizer
     # end

     class Base
-      class_attribute :algorithm  # アルゴリズム名
-      class_attribute :infinite   # 無限生成が可能か？
+      class_attribute :algorithm    # アルゴリズム名
+      class_attribute :infinite     # 無限生成が可能か？

       self.algorithm = "unknown"
       self.infinite  = true
@@ -52,12 +52,15 @@ def next_get_without_history
         raise NotImplementedError, "#{__method__} is not implemented"
       end

-      def clone
-        Marshal.load(Marshal.dump(self)) # FIXME: 取る
-      end
+      # def clone
+      #   Marshal.load(Marshal.dump(self)) # FIXME: 取る
+      # end

       def reset
       end
+
+      def random_shuffle(new_seed)
+      end
     end

     # 7種類xNをシャッフルして配る
@@ -78,6 +81,10 @@ def next_get_without_history

       def reset
         @randy = Randy.new(@randy.seed)
+      end
+
+      def random_shuffle(new_seed)
+        @randy = Randy.new(new_seed)
         @pool = []
       end

@@ -138,6 +145,16 @@ def next_get_without_history
         @_hist.pop
         v
       end
+
+      def reset
+        @randy = Randy.new(@randy.seed)
+        @_hist = Array.new(@depth)
+      end
+
+      def random_shuffle(new_seed)
+        @randy = Randy.new(new_seed)
+        @_hist = Array.new(@depth)
+      end
     end

     # 引数で指定したパターン通りに出現
diff --git a/lib/vortex/randy.rb b/lib/vortex/randy.rb
index d75ea88..37d552b 100644
--- a/lib/vortex/randy.rb
+++ b/lib/vortex/randy.rb
@@ -18,11 +18,27 @@ def sample(a, n = nil)
         shuffle(a).first
       end
     end
+
+    # def new_same_instance
+    #   self.class.new(seed)
+    # end
+    #
+    # def reset
+    #   self.replace(new_same_instance)
+    # end
+    #
+    # def more_mix
+    #   replace(self.class.new)
+    # end
   end

   if $0 == __FILE__
     randy = Randy.new
-    3.times.collect { randy.rand } # => [0.744652490107807, 0.9663508543957792, 0.6594249788980022]
-    5.times.collect { randy.shuffle([*:a..:c]) } # => [[:a, :b, :c], [:a, :c, :b], [:b, :c, :a], [:c, :b, :a], [:b, :a, :c]]
+    3.times.collect { randy.rand } # => [0.9066018228172368, 0.0605711241964666, 0.8817882520486195]
+    5.times.collect { randy.shuffle([*:a..:c]) } # => [[:b, :a, :c], [:a, :b, :c], [:c, :a, :b], [:a, :b, :c], [:b, :a, :c]]
+    randy.reset                                  # =>
   end
 end
+# ~> -:27:in `reset': undefined method `replace' for #<Vortex::Randy:0x007fb82c970608> (NoMethodError)
+# ~>    from -:39:in `<module:Vortex>'
+# ~>    from -:2:in `<main>'
puyo db
add_field 関連
load_file → load
assign_pad 追加
modes/*_mode.rb の整理
simple_clone 追加
19_BATANKYU
Mode ghost 1P/2P独立選択
Mode キャラ選択
TechList title→name 初期値 Arle