Skip to content

dtl::shape::CellularAutomatonMixIsland (形状クラス)

Kasugaccho edited this page Aug 17, 2019 · 11 revisions

バージョン:0.4.0.0以降

<DTL/Shape/CellularAutomatonMixIsland.hpp>

namespace dtl::shape {
  template <typename T>
  class CellularAutomatonMixIsland;
}

T は1bit以上の型

対応機能

機能名 対応
非長方形Matrix 不可

概要

CellularAutomatonMixIslandとは "Matrixの描画範囲に1/2の確率で1番目の描画値を設置し、残りの確率で2番目以降の描画値をランダムに設置し、セルオートマトンを指定回数行う" 機能を持つクラスである。

描画範囲の全てを必ず塗りつぶす。

例 (C++11)

#include <DTL.hpp>
#include <cstdint>
#include <array>

int main() {

	using shape_t = std::uint_fast8_t;
	std::array<std::array<shape_t, 32>, 24> matrix{ {} };

	dtl::shape::CellularAutomatonMixIsland<shape_t>(5, 0, 1, 2, 3, 4, 5).draw(matrix);

	dtl::console::OutputNumber<shape_t>(",").draw(matrix);
	dtl::console::OutputString<shape_t>("//", "AA", "BB", "CC", "DD", "EE").draw(matrix);

	return 0;
}

出力

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,
0,0,0,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,
0,3,0,3,3,2,3,3,0,0,0,1,1,1,0,0,0,0,0,2,2,2,0,0,0,0,0,0,0,0,0,0,
0,3,3,3,3,3,3,3,3,3,1,1,1,1,0,0,5,5,0,2,2,2,2,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,2,2,3,3,1,1,0,1,1,5,5,5,5,0,2,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,2,2,0,0,0,4,4,4,5,5,5,5,5,0,0,0,0,0,0,4,0,0,0,0,0,0,
0,0,0,0,0,0,0,2,0,0,4,4,4,2,5,5,0,0,5,0,0,0,0,0,0,4,0,0,0,1,1,0,
0,0,0,0,0,0,0,0,2,0,4,0,0,2,5,5,0,0,5,5,0,0,0,0,0,0,0,0,1,0,1,0,
0,0,0,0,2,2,0,0,2,2,2,2,0,5,2,2,2,2,2,5,5,0,0,0,0,0,0,0,0,0,1,0,
0,0,0,0,2,2,2,2,2,2,2,2,5,5,2,2,2,5,1,0,0,4,0,0,0,0,0,0,0,0,1,0,
0,0,0,0,0,2,2,2,2,5,5,5,5,5,2,2,2,2,5,5,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,2,5,5,5,5,5,5,5,5,2,2,2,0,5,5,5,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,2,5,0,0,5,5,2,2,2,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,5,5,5,5,2,2,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,5,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,2,2,2,0,5,0,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,
0,2,0,0,2,2,2,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,
0,0,5,5,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,
0,0,0,0,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,1,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
////////////////////////////////////////////////////////////////
//////////////////CC////////////////////////////////////////////
//////////////////////////////////////////AAAA//////////////////
//////CCCCCCCC//////////////////////////////////////////////////
//////CCCCCCCC////////////////////////////AA//////////AA////////
//CC//CCCCBBCCCC//////AAAAAA//////////BBBBBB////////////////////
//CCCCCCCCCCCCCCCCCCAAAAAAAA////EEEE//BBBBBBBB//////////////////
////////////BBBBCCCCAAAA//AAAAEEEEEEEE//BB//////////////////////
////////////BBBB//////DDDDDDEEEEEEEEEE////////////DD////////////
//////////////BB////DDDDDDBBEEEE////EE////////////DD//////AAAA//
////////////////BB//DD////BBEEEE////EEEE////////////////AA//AA//
////////BBBB////BBBBBBBB//EEBBBBBBBBBBEEEE//////////////////AA//
////////BBBBBBBBBBBBBBBBEEEEBBBBBBEEAA////DD////////////////AA//
//////////BBBBBBBBEEEEEEEEEEBBBBBBBBEEEE////////////////////////
//////////BBEEEEEEEEEEEEEEEEBBBBBB//EEEEEE//////////////////////
//////////BBEE////EEEEBBBBBBEEEE////////////////////////////////
//////////////EEEEEEEEBBBBEEEEEE////////////////////////////////
////////////////EE////////EEEEEE////////////////////////////////
////////BBBBBB//EE//////////EEEEEE//////////////////////////AA//
//BB////BBBBBB//////////////////EE////////////////////AAAAAA////
////EEEEBBBBBB////////////////////////////////////////AAAA//////
////////BBBBBB////////////////////////////////////////AA////////
////////////////////////////////////////////CC////////AA////////
////////////////////////////////////////////////////////////////

画像

ri

関連項目

dtl::shape::CellularAutomatonIsland

Clone this wiki locally