443 lines
86 KiB
HTML
443 lines
86 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
|
<meta name="generator" content="Doxygen 1.9.8"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>GOL: D:/Drive/Professionnel/ETS/Enseignement/GPA675/2024_01_Hiver/lab/01/GPA675Lab1App/GOLEngine/GOL.h Source File</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr id="projectrow">
|
|
<td id="projectlogo"><img alt="Logo" src="logo_64.png"/></td>
|
|
<td id="projectalign">
|
|
<div id="projectname">GOL
|
|
</div>
|
|
<div id="projectbrief">Game Of Life</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.9.8 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
/* @license-end */
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(document).ready(function() { init_codefold(0); });
|
|
/* @license-end */
|
|
</script>
|
|
</div><!-- top -->
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<div id="MSearchResults">
|
|
<div class="SRPage">
|
|
<div id="SRIndex">
|
|
<div id="SRResults"></div>
|
|
<div class="SRStatus" id="Loading">Loading...</div>
|
|
<div class="SRStatus" id="Searching">Searching...</div>
|
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="header">
|
|
<div class="headertitle"><div class="title">D:/Drive/Professionnel/ETS/Enseignement/GPA675/2024_01_Hiver/lab/01/GPA675Lab1App/GOLEngine/GOL.h</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#pragma once</span></div>
|
|
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#ifndef GOL_INTERFACE_H</span></div>
|
|
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#define GOL_INTERFACE_H</span></div>
|
|
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span> </div>
|
|
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span> </div>
|
|
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include <string></span></div>
|
|
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include <optional></span></div>
|
|
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
|
|
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
|
|
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">//</span></div>
|
|
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment">// ___ __ __ ____ ___ ____ _____ _ _ _ _____ </span></div>
|
|
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment">// |_ _| \/ | _ \ / _ \| _ \_ _|/ \ | \ | |_ _|</span></div>
|
|
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">// | || |\/| | |_) | | | | |_) || | / _ \ | \| | | | </span></div>
|
|
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment">// | || | | | __/| |_| | _ < | |/ ___ \| |\ | | | </span></div>
|
|
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">// |___|_| |_|_| \___/|_| \_\|_/_/ \_\_| \_| |_| </span></div>
|
|
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment">// </span></div>
|
|
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment">// </span></div>
|
|
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment">// Attention, vous ne pouvez pas modifier ce fichier.</span></div>
|
|
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment">// </span></div>
|
|
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
|
|
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
|
|
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
|
|
<div class="foldopen" id="foldopen00123" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"><a class="line" href="class_g_o_l.html"> 123</a></span><span class="keyword">class </span><a class="code hl_class" href="class_g_o_l.html">GOL</a></div>
|
|
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span>{</div>
|
|
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="comment">// ____ __ __ _ _ _ _ _ _ </span></div>
|
|
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="comment">// | _ \ /_/ / _(_)_ __ (_) |_(_) ___ _ __ __| | ___ ___ | |_ _ _ _ __ ___ ___ </span></div>
|
|
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="comment">// | | | |/ _ \ |_| | '_ \| | __| |/ _ \| '_ \ / _` |/ _ \/ __| | __| | | | '_ \ / _ \/ __|</span></div>
|
|
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="comment">// | |_| | __/ _| | | | | | |_| | (_) | | | | | (_| | __/\__ \ | |_| |_| | |_) | __/\__ \</span></div>
|
|
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="comment"> // |____/ \___|_| |_|_| |_|_|\__|_|\___/|_| |_| \__,_|\___||___/ \__|\__, | .__/ \___||___/</span></div>
|
|
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="comment">// |___/|_| </span></div>
|
|
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="comment">// </span></div>
|
|
<div class="foldopen" id="foldopen00135" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"><a class="line" href="class_g_o_l.html#ab40533a07f138789826faa52a6f644aa"> 135</a></span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="class_g_o_l.html#ab40533a07f138789826faa52a6f644aa">State</a> : uint8_t {</div>
|
|
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <a class="code hl_enumvalue" href="class_g_o_l.html#ab40533a07f138789826faa52a6f644aaaf58e6a506c76fc2c90a7d29cbc631c2f">dead</a> = 0, </div>
|
|
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <a class="code hl_enumvalue" href="class_g_o_l.html#ab40533a07f138789826faa52a6f644aaa7bd3d5f5b3cdb13aed632121206e729c">alive</a> = 1, </div>
|
|
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"><a class="line" href="class_g_o_l.html#a63f73ea2245fe25688a8f2b8ad444498"> 142</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="class_g_o_l.html#a63f73ea2245fe25688a8f2b8ad444498">IterationType</a> = uint32_t;</div>
|
|
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="comment">// </span></div>
|
|
<div class="foldopen" id="foldopen00150" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"><a class="line" href="class_g_o_l.html#a8f80ecf85fb6970fb8aa19fdc72488c5"> 150</a></span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="class_g_o_l.html#a8f80ecf85fb6970fb8aa19fdc72488c5">BorderManagement</a> : uint8_t {</div>
|
|
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <a class="code hl_enumvalue" href="class_g_o_l.html#a8f80ecf85fb6970fb8aa19fdc72488c5a1959daeb0273318781b4aa35f118676d">immutableAsIs</a> = 0, </div>
|
|
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <a class="code hl_enumvalue" href="class_g_o_l.html#a8f80ecf85fb6970fb8aa19fdc72488c5a303cf94b70e6f7dffb1e094570e1759f">foreverDead</a>, </div>
|
|
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <a class="code hl_enumvalue" href="class_g_o_l.html#a8f80ecf85fb6970fb8aa19fdc72488c5a6845ed92fb9b5afe34b3cb58a03143bb">foreverAlive</a>, </div>
|
|
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <a class="code hl_enumvalue" href="class_g_o_l.html#a8f80ecf85fb6970fb8aa19fdc72488c5ad26fea1f666f50ab33e246806ed4829b">warping</a>, </div>
|
|
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <a class="code hl_enumvalue" href="class_g_o_l.html#a8f80ecf85fb6970fb8aa19fdc72488c5afbe322a89bc0ba531c3f0050e3935f28">mirror</a>, </div>
|
|
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"><a class="line" href="class_g_o_l.html#a8dfa284246f15ca8b2fe3b72d39398c4"> 160</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="class_g_o_l.html#a8dfa284246f15ca8b2fe3b72d39398c4">ColorChannelType</a> = uint8_t;</div>
|
|
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="comment">//</span></div>
|
|
<div class="foldopen" id="foldopen00164" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_color.html"> 164</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="struct_g_o_l_1_1_color.html">Color</a> {</div>
|
|
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_color.html#a8f580a1ff7d2037d9f78bb6dcaf98a0c"> 165</a></span> <a class="code hl_typedef" href="class_g_o_l.html#a8dfa284246f15ca8b2fe3b72d39398c4">ColorChannelType</a> <a class="code hl_variable" href="struct_g_o_l_1_1_color.html#a8f580a1ff7d2037d9f78bb6dcaf98a0c">red</a> = 0; </div>
|
|
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_color.html#a024ce041fb574f2531e8c3ccedfdf872"> 166</a></span> <a class="code hl_typedef" href="class_g_o_l.html#a8dfa284246f15ca8b2fe3b72d39398c4">ColorChannelType</a> <a class="code hl_variable" href="struct_g_o_l_1_1_color.html#a024ce041fb574f2531e8c3ccedfdf872">green</a> = 0; </div>
|
|
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_color.html#af5ba4c4c2734b3de66dc3d5ddfd33067"> 167</a></span> <a class="code hl_typedef" href="class_g_o_l.html#a8dfa284246f15ca8b2fe3b72d39398c4">ColorChannelType</a> <a class="code hl_variable" href="struct_g_o_l_1_1_color.html#af5ba4c4c2734b3de66dc3d5ddfd33067">blue</a> = 0; </div>
|
|
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <span class="comment">//</span></div>
|
|
<div class="foldopen" id="foldopen00186" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_statistics.html"> 186</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="struct_g_o_l_1_1_statistics.html">Statistics</a> {</div>
|
|
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_statistics.html#ace8337d109af59325bdcb5d58b801df4"> 187</a></span> std::optional<std::string> <a class="code hl_variable" href="struct_g_o_l_1_1_statistics.html#ace8337d109af59325bdcb5d58b801df4">rule</a>; </div>
|
|
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_statistics.html#aaf2de20f90d08fe72e7c19bafdabf9a7"> 188</a></span> std::optional<BorderManagement> <a class="code hl_variable" href="struct_g_o_l_1_1_statistics.html#aaf2de20f90d08fe72e7c19bafdabf9a7">borderManagement</a>; </div>
|
|
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_statistics.html#a26d329b7b472a18fda78e9e4399effbc"> 189</a></span> std::optional<size_t> <a class="code hl_variable" href="struct_g_o_l_1_1_statistics.html#a26d329b7b472a18fda78e9e4399effbc">width</a>; </div>
|
|
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_statistics.html#acc45f6dc5a08918b5a2a4a4a54c0efd3"> 190</a></span> std::optional<size_t> <a class="code hl_variable" href="struct_g_o_l_1_1_statistics.html#acc45f6dc5a08918b5a2a4a4a54c0efd3">height</a>; </div>
|
|
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_statistics.html#a980f0bf8ca7d7838f29c18069b406284"> 191</a></span> std::optional<size_t> <a class="code hl_variable" href="struct_g_o_l_1_1_statistics.html#a980f0bf8ca7d7838f29c18069b406284">totalCells</a>; </div>
|
|
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_statistics.html#a94192cc3db009bc06ce178bc70093f52"> 192</a></span> std::optional<IterationType> <a class="code hl_variable" href="struct_g_o_l_1_1_statistics.html#a94192cc3db009bc06ce178bc70093f52">iteration</a>; </div>
|
|
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_statistics.html#a0c7ac4a263ba69f0e1a453039037b3b9"> 193</a></span> std::optional<size_t> <a class="code hl_variable" href="struct_g_o_l_1_1_statistics.html#a0c7ac4a263ba69f0e1a453039037b3b9">totalDeadAbs</a>; </div>
|
|
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_statistics.html#ab27d09a97457ede162c76476105e13e1"> 194</a></span> std::optional<size_t> <a class="code hl_variable" href="struct_g_o_l_1_1_statistics.html#ab27d09a97457ede162c76476105e13e1">totalAliveAbs</a>; </div>
|
|
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_statistics.html#a0eb0a1aaa2d76c389b3d49ea1c6c9bed"> 195</a></span> std::optional<float> <a class="code hl_variable" href="struct_g_o_l_1_1_statistics.html#a0eb0a1aaa2d76c389b3d49ea1c6c9bed">totalDeadRel</a>; </div>
|
|
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_statistics.html#af9cead801f8e57055bb74ec119aa4908"> 196</a></span> std::optional<float> <a class="code hl_variable" href="struct_g_o_l_1_1_statistics.html#af9cead801f8e57055bb74ec119aa4908">totalAliveRel</a>; </div>
|
|
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_statistics.html#ae96e52cf979cb8cfe8841b92c2bbc9eb"> 197</a></span> std::optional<int> <a class="code hl_variable" href="struct_g_o_l_1_1_statistics.html#ae96e52cf979cb8cfe8841b92c2bbc9eb">tendencyAbs</a>; </div>
|
|
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_statistics.html#ae981c7b738fd3cf1b4c6cbf006f425b0"> 198</a></span> std::optional<float> <a class="code hl_variable" href="struct_g_o_l_1_1_statistics.html#ae981c7b738fd3cf1b4c6cbf006f425b0">tendencyRel</a>; </div>
|
|
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="comment">//</span></div>
|
|
<div class="foldopen" id="foldopen00203" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_author.html"> 203</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="struct_g_o_l_1_1_author.html">Author</a> {</div>
|
|
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_author.html#a789800726a95c045b18135641bdd4a0d"> 204</a></span> std::string <a class="code hl_variable" href="struct_g_o_l_1_1_author.html#a789800726a95c045b18135641bdd4a0d">lastName</a>; </div>
|
|
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_author.html#a852b5f97cd31f1c698bdec4ac123efb0"> 205</a></span> std::string <a class="code hl_variable" href="struct_g_o_l_1_1_author.html#a852b5f97cd31f1c698bdec4ac123efb0">firstName</a>; </div>
|
|
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_author.html#ab0d7c78b1dbe43191bc19a08a3632630"> 206</a></span> std::string <a class="code hl_variable" href="struct_g_o_l_1_1_author.html#ab0d7c78b1dbe43191bc19a08a3632630">studentEmail</a>; </div>
|
|
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="comment">//</span></div>
|
|
<div class="foldopen" id="foldopen00218" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_implementation_information.html"> 218</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="struct_g_o_l_1_1_implementation_information.html">ImplementationInformation</a> {</div>
|
|
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_implementation_information.html#a537522ac3ca67d3c0f8495558e9ec82c"> 219</a></span> std::string <a class="code hl_variable" href="struct_g_o_l_1_1_implementation_information.html#a537522ac3ca67d3c0f8495558e9ec82c">title</a>; </div>
|
|
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_implementation_information.html#a74518907e65d8c8d469032ee52bb574d"> 220</a></span> std::vector<Author> <a class="code hl_variable" href="struct_g_o_l_1_1_implementation_information.html#a74518907e65d8c8d469032ee52bb574d">authors</a>; </div>
|
|
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_implementation_information.html#ae17a4cf1efe7db0c0191a2e1ce9b0ea3"> 221</a></span> std::vector<std::string> <a class="code hl_variable" href="struct_g_o_l_1_1_implementation_information.html#ae17a4cf1efe7db0c0191a2e1ce9b0ea3">answers</a>; </div>
|
|
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"><a class="line" href="struct_g_o_l_1_1_implementation_information.html#ad0179a43523be2c9a96a930413457cc0"> 222</a></span> std::vector<std::string> <a class="code hl_variable" href="struct_g_o_l_1_1_implementation_information.html#ad0179a43523be2c9a96a930413457cc0">optionnalComments</a>; </div>
|
|
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> </div>
|
|
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> </div>
|
|
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> </div>
|
|
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> <span class="comment">// ____ _ _ __ ____ _ _ </span></div>
|
|
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <span class="comment">// / ___|___ _ __ ___| |_ _ __ _ _ ___| |_ ___ _ _ _ __ ___ / / | _ \ ___ ___| |_ _ __ _ _ ___| |_ ___ _ _ _ __ </span></div>
|
|
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> <span class="comment">// | | / _ \| '_ \/ __| __| '__| | | |/ __| __/ _ \ | | | '__/ __| / / | | | |/ _ \/ __| __| '__| | | |/ __| __/ _ \ | | | '__|</span></div>
|
|
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <span class="comment">// | |__| (_) | | | \__ \ |_| | | |_| | (__| || __/ |_| | | \__ \ / / | |_| | __/\__ \ |_| | | |_| | (__| || __/ |_| | | </span></div>
|
|
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <span class="comment">// \____\___/|_| |_|___/\__|_| \__,_|\___|\__\___|\__,_|_| |___/ /_/ |____/ \___||___/\__|_| \__,_|\___|\__\___|\__,_|_| </span></div>
|
|
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <span class="comment">// </span></div>
|
|
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <span class="comment">// </span></div>
|
|
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> <span class="comment">// Les classes héritant de GOL doivent réaliser :</span></div>
|
|
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="comment">// - le constructeur par défaut : _class_()</span></div>
|
|
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="comment">// - le constructeur d'initialisation proposé : _class_(size_t width, size_t height, State defaultState = State::dead)</span></div>
|
|
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> <span class="comment">// - le destructeur : ~_class_()</span></div>
|
|
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> <span class="comment">// </span></div>
|
|
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"><a class="line" href="class_g_o_l.html#a2d1ce427c1902aa396385b78aa5faacd"> 241</a></span> <a class="code hl_function" href="class_g_o_l.html#a2d1ce427c1902aa396385b78aa5faacd">GOL</a>() = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <span class="comment">// </span></div>
|
|
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"><a class="line" href="class_g_o_l.html#ab93d6b83a53990fd27e6fc152b549e41"> 244</a></span> <a class="code hl_function" href="class_g_o_l.html#ab93d6b83a53990fd27e6fc152b549e41">GOL</a>(<span class="keywordtype">size_t</span> <a class="code hl_function" href="class_g_o_l.html#a0f9371c1d919e8731a00f72c9e7e5338">width</a>, <span class="keywordtype">size_t</span> <a class="code hl_function" href="class_g_o_l.html#a639614c14d19f9f200208c1b1d13e610">height</a>, <a class="code hl_enumeration" href="class_g_o_l.html#ab40533a07f138789826faa52a6f644aa">State</a> defaultState = <a class="code hl_enumvalue" href="class_g_o_l.html#ab40533a07f138789826faa52a6f644aaaf58e6a506c76fc2c90a7d29cbc631c2f">State::dead</a>) {}</div>
|
|
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> <span class="comment">// </span></div>
|
|
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"><a class="line" href="class_g_o_l.html#a71f920566f6053820e4a39c1c0ffe14a"> 247</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="class_g_o_l.html#a71f920566f6053820e4a39c1c0ffe14a">~GOL</a>() = <span class="keywordflow">default</span>;</div>
|
|
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="comment">// </span></div>
|
|
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <span class="comment">// Les 4 autres fonctions spéciales sont laissées à votre discrétion.</span></div>
|
|
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> <span class="comment">// Toutefois, un simple -delete- est suffisant pour ce premier laboratoire.</span></div>
|
|
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <span class="comment">// _class_(_class_ const &) = delete;</span></div>
|
|
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <span class="comment">// _class_(_class_ &&) = delete;</span></div>
|
|
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> <span class="comment">// _class_& operator=(_class_ const &) = delete;</span></div>
|
|
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="comment">// _class_& operator=(_class_ &&) = delete;</span></div>
|
|
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> </div>
|
|
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> </div>
|
|
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <span class="comment">// </span></div>
|
|
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> <span class="comment">// _ </span></div>
|
|
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <span class="comment">// / \ ___ ___ ___ ___ ___ ___ _ _ _ __ ___ </span></div>
|
|
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> <span class="comment">// / _ \ / __/ __/ _ \/ __/ __|/ _ \ | | | '__/ __|</span></div>
|
|
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> <span class="comment">// / ___ \ (_| (_| __/\__ \__ \ __/ |_| | | \__ \</span></div>
|
|
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span><span class="comment"> // /_/ \_\___\___\___||___/___/\___|\__,_|_| |___/</span></div>
|
|
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> <span class="comment">// </span></div>
|
|
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"><a class="line" href="class_g_o_l.html#a0f9371c1d919e8731a00f72c9e7e5338"> 268</a></span> <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="class_g_o_l.html#a0f9371c1d919e8731a00f72c9e7e5338">width</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"><a class="line" href="class_g_o_l.html#a639614c14d19f9f200208c1b1d13e610"> 273</a></span> <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="class_g_o_l.html#a639614c14d19f9f200208c1b1d13e610">height</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"><a class="line" href="class_g_o_l.html#a7e362245fec1c4411835b6ca5eb1a62b"> 279</a></span> <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="class_g_o_l.html#a7e362245fec1c4411835b6ca5eb1a62b">size</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"><a class="line" href="class_g_o_l.html#a33f034838a60adb25e1ef26a3eb309aa"> 290</a></span> <span class="keyword">virtual</span> <a class="code hl_enumeration" href="class_g_o_l.html#ab40533a07f138789826faa52a6f644aa">State</a> <a class="code hl_function" href="class_g_o_l.html#a33f034838a60adb25e1ef26a3eb309aa">state</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y) <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"><a class="line" href="class_g_o_l.html#a3e7c43805a2ffbc09d0c76a20953d40d"> 300</a></span> <span class="keyword">virtual</span> std::string <a class="code hl_function" href="class_g_o_l.html#a3e7c43805a2ffbc09d0c76a20953d40d">rule</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"><a class="line" href="class_g_o_l.html#acb7eb9dfd0d705bcd3093374a65071e9"> 306</a></span> <span class="keyword">virtual</span> <a class="code hl_enumeration" href="class_g_o_l.html#a8f80ecf85fb6970fb8aa19fdc72488c5">BorderManagement</a> <a class="code hl_function" href="class_g_o_l.html#acb7eb9dfd0d705bcd3093374a65071e9">borderManagement</a>() <span class="keyword">const</span> = 0; </div>
|
|
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"><a class="line" href="class_g_o_l.html#a034f2b25cdb174e8db8b45c19c6ff227"> 316</a></span> <span class="keyword">virtual</span> <a class="code hl_struct" href="struct_g_o_l_1_1_color.html">Color</a> <a class="code hl_function" href="class_g_o_l.html#a034f2b25cdb174e8db8b45c19c6ff227">color</a>(<a class="code hl_enumeration" href="class_g_o_l.html#ab40533a07f138789826faa52a6f644aa">State</a> <a class="code hl_function" href="class_g_o_l.html#a33f034838a60adb25e1ef26a3eb309aa">state</a>) <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"><a class="line" href="class_g_o_l.html#ac1855e686984d4533fc2442f6f3b89f2"> 346</a></span> <span class="keyword">virtual</span> <a class="code hl_struct" href="struct_g_o_l_1_1_statistics.html">Statistics</a> <a class="code hl_function" href="class_g_o_l.html#ac1855e686984d4533fc2442f6f3b89f2">statistics</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> <span class="comment">// </span></div>
|
|
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"><a class="line" href="class_g_o_l.html#aee16ffdbff2b3fe49bdfb961cf85a7af"> 366</a></span> <span class="keyword">virtual</span> <a class="code hl_struct" href="struct_g_o_l_1_1_implementation_information.html">ImplementationInformation</a> <a class="code hl_function" href="class_g_o_l.html#aee16ffdbff2b3fe49bdfb961cf85a7af">information</a>() <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> <span class="comment">// </span></div>
|
|
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> <span class="comment">// __ __ _ _ </span></div>
|
|
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> <span class="comment">// | \/ |_ _| |_ __ _| |_ ___ _ _ _ __ ___ </span></div>
|
|
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span> <span class="comment">// | |\/| | | | | __/ _` | __/ _ \ | | | '__/ __|</span></div>
|
|
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> <span class="comment">// | | | | |_| | || (_| | || __/ |_| | | \__ \</span></div>
|
|
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span><span class="comment"> // |_| |_|\__,_|\__\__,_|\__\___|\__,_|_| |___/</span></div>
|
|
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> <span class="comment">// </span></div>
|
|
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span> <span class="comment">// </span></div>
|
|
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"><a class="line" href="class_g_o_l.html#aeeb68a308596df6cc833915fe25b8b31"> 391</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_g_o_l.html#aeeb68a308596df6cc833915fe25b8b31">resize</a>(<span class="keywordtype">size_t</span> <a class="code hl_function" href="class_g_o_l.html#a0f9371c1d919e8731a00f72c9e7e5338">width</a>, <span class="keywordtype">size_t</span> <a class="code hl_function" href="class_g_o_l.html#a639614c14d19f9f200208c1b1d13e610">height</a>, <a class="code hl_enumeration" href="class_g_o_l.html#ab40533a07f138789826faa52a6f644aa">State</a> defaultState = <a class="code hl_enumvalue" href="class_g_o_l.html#ab40533a07f138789826faa52a6f644aaaf58e6a506c76fc2c90a7d29cbc631c2f">State::dead</a>) = 0;</div>
|
|
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"><a class="line" href="class_g_o_l.html#aed680727507df7541f28b1b3be099364"> 432</a></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="class_g_o_l.html#aed680727507df7541f28b1b3be099364">setRule</a>(std::string <span class="keyword">const</span> & <a class="code hl_function" href="class_g_o_l.html#a3e7c43805a2ffbc09d0c76a20953d40d">rule</a>) = 0;</div>
|
|
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"><a class="line" href="class_g_o_l.html#a4e05013566674a629cb5046be9c4fd53"> 486</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_g_o_l.html#a4e05013566674a629cb5046be9c4fd53">setBorderManagement</a>(<a class="code hl_enumeration" href="class_g_o_l.html#a8f80ecf85fb6970fb8aa19fdc72488c5">BorderManagement</a> <a class="code hl_function" href="class_g_o_l.html#acb7eb9dfd0d705bcd3093374a65071e9">borderManagement</a>) = 0;</div>
|
|
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> <span class="comment">// </span></div>
|
|
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"><a class="line" href="class_g_o_l.html#ae421e565fbf6ba31db44d71eba7227b3"> 497</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_g_o_l.html#ae421e565fbf6ba31db44d71eba7227b3">setState</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <a class="code hl_enumeration" href="class_g_o_l.html#ab40533a07f138789826faa52a6f644aa">State</a> <a class="code hl_function" href="class_g_o_l.html#a33f034838a60adb25e1ef26a3eb309aa">state</a>) = 0;</div>
|
|
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"><a class="line" href="class_g_o_l.html#a7fd8fe0cc3c4ea6e0234f165e0ae0909"> 509</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_g_o_l.html#a7fd8fe0cc3c4ea6e0234f165e0ae0909">fill</a>(<a class="code hl_enumeration" href="class_g_o_l.html#ab40533a07f138789826faa52a6f644aa">State</a> <a class="code hl_function" href="class_g_o_l.html#a33f034838a60adb25e1ef26a3eb309aa">state</a> = <a class="code hl_enumvalue" href="class_g_o_l.html#ab40533a07f138789826faa52a6f644aaaf58e6a506c76fc2c90a7d29cbc631c2f">State::dead</a>) = 0;</div>
|
|
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"><a class="line" href="class_g_o_l.html#ae15588c452004483dd12ed01f63ebb7a"> 522</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_g_o_l.html#ae15588c452004483dd12ed01f63ebb7a">fillAlternately</a>(<a class="code hl_enumeration" href="class_g_o_l.html#ab40533a07f138789826faa52a6f644aa">State</a> firstCell = <a class="code hl_enumvalue" href="class_g_o_l.html#ab40533a07f138789826faa52a6f644aaaf58e6a506c76fc2c90a7d29cbc631c2f">State::dead</a>) = 0;</div>
|
|
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"><a class="line" href="class_g_o_l.html#a48a750d5e715c35bcddc1c5702a1c1bd"> 536</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_g_o_l.html#a48a750d5e715c35bcddc1c5702a1c1bd">randomize</a>(<span class="keywordtype">double</span> percentAlive = 0.5) = 0;</div>
|
|
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"><a class="line" href="class_g_o_l.html#af09cbd32232ddf08296e4709f2a7b7b7"> 556</a></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="class_g_o_l.html#af09cbd32232ddf08296e4709f2a7b7b7">setFromPattern</a>(std::string <span class="keyword">const</span> & pattern, <span class="keywordtype">int</span> centerX, <span class="keywordtype">int</span> centerY) = 0;</div>
|
|
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"><a class="line" href="class_g_o_l.html#ad7f2161a93817f8eda610319a9593f82"> 569</a></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="class_g_o_l.html#ad7f2161a93817f8eda610319a9593f82">setFromPattern</a>(std::string <span class="keyword">const</span> & pattern) = 0;</div>
|
|
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"><a class="line" href="class_g_o_l.html#a98dbb31bb7d7ab708f69f276a0849361"> 582</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_g_o_l.html#a98dbb31bb7d7ab708f69f276a0849361">setSolidColor</a>(<a class="code hl_enumeration" href="class_g_o_l.html#ab40533a07f138789826faa52a6f644aa">State</a> <a class="code hl_function" href="class_g_o_l.html#a33f034838a60adb25e1ef26a3eb309aa">state</a>, <a class="code hl_struct" href="struct_g_o_l_1_1_color.html">Color</a> <span class="keyword">const</span> & <a class="code hl_function" href="class_g_o_l.html#a034f2b25cdb174e8db8b45c19c6ff227">color</a>) = 0;</div>
|
|
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span> </div>
|
|
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> </div>
|
|
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> <span class="comment">// __ __ _ _ __ _ _ </span></div>
|
|
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> <span class="comment">// | \/ | ___ __| (_)/ _(_) ___ __ _| |_ ___ _ _ _ __ ___ </span></div>
|
|
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> <span class="comment">// | |\/| |/ _ \ / _` | | |_| |/ __/ _` | __/ _ \ | | | '__/ __|</span></div>
|
|
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> <span class="comment">// | | | | (_) | (_| | | _| | (_| (_| | || __/ |_| | | \__ \</span></div>
|
|
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span><span class="comment"> // |_| |_|\___/ \__,_|_|_| |_|\___\__,_|\__\___|\__,_|_| |___/</span></div>
|
|
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span> <span class="comment">// </span></div>
|
|
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"><a class="line" href="class_g_o_l.html#a163e43658479f589311944e45f9d2f7d"> 608</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_g_o_l.html#a163e43658479f589311944e45f9d2f7d">processOneStep</a>() = 0;</div>
|
|
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> <span class="comment">//</span></div>
|
|
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> <span class="comment">// </span></div>
|
|
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"><a class="line" href="class_g_o_l.html#a023f299fa22d29d595ce8f5b559556eb"> 644</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_g_o_l.html#a023f299fa22d29d595ce8f5b559556eb">updateImage</a>(uint32_t * buffer, <span class="keywordtype">size_t</span> buffer_size) <span class="keyword">const</span> = 0;</div>
|
|
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span> </div>
|
|
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span> </div>
|
|
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span> </div>
|
|
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> </div>
|
|
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span> </div>
|
|
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> </div>
|
|
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span> </div>
|
|
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> </div>
|
|
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</span><span class="comment">//</span></div>
|
|
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span><span class="comment">// _ _ _ </span></div>
|
|
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span><span class="comment">// (_)_ __ ___ _ __ ___ _ __| |_ __ _ _ __ | |_ </span></div>
|
|
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span><span class="comment">// | | '_ ` _ \| '_ \ / _ \| '__| __/ _` | '_ \| __|</span></div>
|
|
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span><span class="comment">// | | | | | | | |_) | (_) | | | || (_| | | | | |_ </span></div>
|
|
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span><span class="comment">// |_|_| |_| |_| .__/ \___/|_| \__\__,_|_| |_|\__|</span></div>
|
|
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span><span class="comment">// |_| </span></div>
|
|
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"> 661</span><span class="comment">// </span></div>
|
|
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</span><span class="comment">// Attention, vous devez implémenter et utiliser une classe Grid.</span></div>
|
|
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</span><span class="comment">// </span></div>
|
|
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span><span class="comment">// L'ébauche sous forme de commentaire plus bas est un guide </span></div>
|
|
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span><span class="comment">// semi-contraignant.</span></div>
|
|
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span><span class="comment">// </span></div>
|
|
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span><span class="comment">// Toutefois :</span></div>
|
|
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"> 668</span><span class="comment">// - Vous DEVEZ implémenter l'interface présentée.</span></div>
|
|
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span><span class="comment">// - Vous POUVEZ ajouter des éléments comme vous le voulez.</span></div>
|
|
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span><span class="comment">//</span></div>
|
|
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span><span class="comment">// > Autrement dit, l'interface proposé est minimum. </span></div>
|
|
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span><span class="comment">// > NÉANMOINS, vous devez garder en tête l'intention générique de </span></div>
|
|
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span><span class="comment">// cette classe et ne pas la spécialiser pour le contexte du projet </span></div>
|
|
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span><span class="comment">// de GOL. Par exemple, si on faisait un copier/coller du code et </span></div>
|
|
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span><span class="comment">// qu'on modifiait le CellType pour autre chose (un Vect2D par exemple), </span></div>
|
|
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span><span class="comment">// alors, tout fonctionnerait et la classe serait encore pertinente.</span></div>
|
|
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno"> 677</span><span class="comment">// D'ailleurs, vous remarquez que c'est le seul endroit où il existe un </span></div>
|
|
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span><span class="comment">// lien entre cette classe et le projet courant.</span></div>
|
|
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"> 679</span><span class="comment">//</span></div>
|
|
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno"> 680</span><span class="comment">// De plus, vous devez gérer manuellement l'allocation dynamique de la mémoire.</span></div>
|
|
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno"> 681</span><span class="comment">//</span></div>
|
|
<div class="line"><a id="l00682" name="l00682"></a><span class="lineno"> 682</span><span class="comment">//</span></div>
|
|
<div class="line"><a id="l00683" name="l00683"></a><span class="lineno"> 683</span><span class="comment">// class Grid // Classe facilitant la gestion d'un tableau dynamique 2d.</span></div>
|
|
<div class="line"><a id="l00684" name="l00684"></a><span class="lineno"> 684</span><span class="comment">// { // </span></div>
|
|
<div class="line"><a id="l00685" name="l00685"></a><span class="lineno"> 685</span><span class="comment">// public: // </span></div>
|
|
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span><span class="comment">// // Définition des types //</span></div>
|
|
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span><span class="comment">// using CellType = GOL::State; // Correspond au type fondamental de chaque cellule de la grille. </span></div>
|
|
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno"> 688</span><span class="comment">// using DataType = ...; // Correspond à la grille, au conteneur de cellules. À vous de déterminer la structure de données à utiliser.</span></div>
|
|
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"> 689</span><span class="comment">// //</span></div>
|
|
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno"> 690</span><span class="comment">// // Définition des cosntructeurs / destructeur //</span></div>
|
|
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno"> 691</span><span class="comment">// Grid(); // </span></div>
|
|
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno"> 692</span><span class="comment">// Grid(size_t width, size_t height, CellType initValue = CellType{}); // </span></div>
|
|
<div class="line"><a id="l00693" name="l00693"></a><span class="lineno"> 693</span><span class="comment">// Grid(Grid const&) = delete; // </span></div>
|
|
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno"> 694</span><span class="comment">// Grid(Grid&&) = delete; // </span></div>
|
|
<div class="line"><a id="l00695" name="l00695"></a><span class="lineno"> 695</span><span class="comment">// Grid& operator=(Grid const&) = delete; // </span></div>
|
|
<div class="line"><a id="l00696" name="l00696"></a><span class="lineno"> 696</span><span class="comment">// Grid& operator=(Grid&&) = delete; // </span></div>
|
|
<div class="line"><a id="l00697" name="l00697"></a><span class="lineno"> 697</span><span class="comment">// ~Grid(); // </span></div>
|
|
<div class="line"><a id="l00698" name="l00698"></a><span class="lineno"> 698</span><span class="comment">// //</span></div>
|
|
<div class="line"><a id="l00699" name="l00699"></a><span class="lineno"> 699</span><span class="comment">// // Accesseurs et mutateurs de la grille // </span></div>
|
|
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</span><span class="comment">// size_t width() const; // Accesseur retournant la largeur de la grille.</span></div>
|
|
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</span><span class="comment">// size_t height() const; // Accesseur retournant la hauteur de la grille.</span></div>
|
|
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno"> 702</span><span class="comment">// size_t size() const; // Accesseur retournant le nombre de cellule de la grille.</span></div>
|
|
<div class="line"><a id="l00703" name="l00703"></a><span class="lineno"> 703</span><span class="comment">// // </span></div>
|
|
<div class="line"><a id="l00704" name="l00704"></a><span class="lineno"> 704</span><span class="comment">// void resize(size_t width, size_t height, CellType initValue = CellType{}); // Mutateur modifiant la taille de la grille et initialise le contenu par la valeur spécifiée.</span></div>
|
|
<div class="line"><a id="l00705" name="l00705"></a><span class="lineno"> 705</span><span class="comment">// //</span></div>
|
|
<div class="line"><a id="l00706" name="l00706"></a><span class="lineno"> 706</span><span class="comment">// // Accesseurs et mutateurs des cellules //</span></div>
|
|
<div class="line"><a id="l00707" name="l00707"></a><span class="lineno"> 707</span><span class="comment">// CellType value(int column, int row) const; // Accesseur retournant la valeur d'une cellule à une certaine coordonnée. Pour une raison de performance, cette fonction NE VALIDE PAS ses entrées. Autrement dit, c'est la responsabilité du programmeur utilisateur de faire ses validations, au risque de 'crasher' le programme.</span></div>
|
|
<div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</span><span class="comment">// void setValue(int column, int row, CellType value); // Mutateur modifiant la valeur d'une cellule à une certaine coordonnée. Pour une raison de performance, cette fonction NE VALIDE PAS ses entrées. Autrement dit, c'est la responsabilité du programmeur utilisateur de faire ses validations, au risque de 'crasher' le programme.</span></div>
|
|
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno"> 709</span><span class="comment">// // </span></div>
|
|
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno"> 710</span><span class="comment">// std::optional<CellType> at(int column, int row) const; // Accesseur retournant la valeur d'une cellule à une certaine coordonnée. Cette fonction VALIDE ses entrées et retourne un optional nul si la coordonnée est invalide. </span></div>
|
|
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno"> 711</span><span class="comment">// void setAt(int column, int row, CellType value); // Mutateur modifiant la valeur d'une cellule à une certaine coordonnée. Cette fonction VALIDE ses entrées et ne fait rien si la coordonnée est invalide. </span></div>
|
|
<div class="line"><a id="l00712" name="l00712"></a><span class="lineno"> 712</span><span class="comment">// // </span></div>
|
|
<div class="line"><a id="l00713" name="l00713"></a><span class="lineno"> 713</span><span class="comment">// // Accesseurs du "buffer" de la grille. //</span></div>
|
|
<div class="line"><a id="l00714" name="l00714"></a><span class="lineno"> 714</span><span class="comment">// DataType const & data() const; // Accesseur en lecture seule sur le "buffer" de la grille.</span></div>
|
|
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span><span class="comment">// DataType & data(); // Accesseur en lecture/écriture sur le "buffer" de la grille.</span></div>
|
|
<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"> 716</span><span class="comment">// // </span></div>
|
|
<div class="line"><a id="l00717" name="l00717"></a><span class="lineno"> 717</span><span class="comment">// private: // </span></div>
|
|
<div class="line"><a id="l00718" name="l00718"></a><span class="lineno"> 718</span><span class="comment">// // ... // Il y a des attributs essentiels au fonctionnement de cette classe.</span></div>
|
|
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno"> 719</span><span class="comment">// // ... // À vous de les déterminer. </span></div>
|
|
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span><span class="comment">// // ... // </span></div>
|
|
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span><span class="comment">// }; // </span></div>
|
|
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span><span class="comment">// // </span></div>
|
|
<div class="line"><a id="l00723" name="l00723"></a><span class="lineno"> 723</span><span class="comment">// // </span></div>
|
|
<div class="line"><a id="l00724" name="l00724"></a><span class="lineno"> 724</span><span class="comment">// // </span></div>
|
|
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno"> 725</span> </div>
|
|
<div class="line"><a id="l00726" name="l00726"></a><span class="lineno"> 726</span> </div>
|
|
<div class="line"><a id="l00727" name="l00727"></a><span class="lineno"> 727</span> </div>
|
|
<div class="line"><a id="l00728" name="l00728"></a><span class="lineno"> 728</span><span class="preprocessor">#endif </span><span class="comment">// GOL_INTERFACE_H</span></div>
|
|
<div class="ttc" id="aclass_g_o_l_html"><div class="ttname"><a href="class_g_o_l.html">GOL</a></div><div class="ttdoc">Moteur de simulation d'un automate cellulaire à 2 dimensions.</div><div class="ttdef"><b>Definition</b> GOL.h:124</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_a023f299fa22d29d595ce8f5b559556eb"><div class="ttname"><a href="class_g_o_l.html#a023f299fa22d29d595ce8f5b559556eb">GOL::updateImage</a></div><div class="ttdeci">virtual void updateImage(uint32_t *buffer, size_t buffer_size) const =0</div><div class="ttdoc">Fonction dessinant l'état de la simulation sur une image passée en paramètre.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_a034f2b25cdb174e8db8b45c19c6ff227"><div class="ttname"><a href="class_g_o_l.html#a034f2b25cdb174e8db8b45c19c6ff227">GOL::color</a></div><div class="ttdeci">virtual Color color(State state) const =0</div><div class="ttdoc">Accesseur retournant la couleur d'un état.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_a0f9371c1d919e8731a00f72c9e7e5338"><div class="ttname"><a href="class_g_o_l.html#a0f9371c1d919e8731a00f72c9e7e5338">GOL::width</a></div><div class="ttdeci">virtual size_t width() const =0</div><div class="ttdoc">Accesseur retournant la largeur de la grille de simualtion.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_a163e43658479f589311944e45f9d2f7d"><div class="ttname"><a href="class_g_o_l.html#a163e43658479f589311944e45f9d2f7d">GOL::processOneStep</a></div><div class="ttdeci">virtual void processOneStep()=0</div><div class="ttdoc">Fonction effectuant une itération de la simulation.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_a2d1ce427c1902aa396385b78aa5faacd"><div class="ttname"><a href="class_g_o_l.html#a2d1ce427c1902aa396385b78aa5faacd">GOL::GOL</a></div><div class="ttdeci">GOL()=default</div><div class="ttdoc">Constructeur par défaut.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_a33f034838a60adb25e1ef26a3eb309aa"><div class="ttname"><a href="class_g_o_l.html#a33f034838a60adb25e1ef26a3eb309aa">GOL::state</a></div><div class="ttdeci">virtual State state(int x, int y) const =0</div><div class="ttdoc">Accesseur retournant l'état d'une cellule.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_a3e7c43805a2ffbc09d0c76a20953d40d"><div class="ttname"><a href="class_g_o_l.html#a3e7c43805a2ffbc09d0c76a20953d40d">GOL::rule</a></div><div class="ttdeci">virtual std::string rule() const =0</div><div class="ttdoc">Accesseur retournant la chaîne de caractères correspondant à la règle courante.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_a48a750d5e715c35bcddc1c5702a1c1bd"><div class="ttname"><a href="class_g_o_l.html#a48a750d5e715c35bcddc1c5702a1c1bd">GOL::randomize</a></div><div class="ttdeci">virtual void randomize(double percentAlive=0.5)=0</div><div class="ttdoc">Mutateur remplissant de façon aléatoire toutes les cellules de la grille.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_a4e05013566674a629cb5046be9c4fd53"><div class="ttname"><a href="class_g_o_l.html#a4e05013566674a629cb5046be9c4fd53">GOL::setBorderManagement</a></div><div class="ttdeci">virtual void setBorderManagement(BorderManagement borderManagement)=0</div><div class="ttdoc">Mutateur modifiant la stratégie de gestion de bord.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_a639614c14d19f9f200208c1b1d13e610"><div class="ttname"><a href="class_g_o_l.html#a639614c14d19f9f200208c1b1d13e610">GOL::height</a></div><div class="ttdeci">virtual size_t height() const =0</div><div class="ttdoc">Accesseur retournant la hauteur de la grille de simualtion.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_a63f73ea2245fe25688a8f2b8ad444498"><div class="ttname"><a href="class_g_o_l.html#a63f73ea2245fe25688a8f2b8ad444498">GOL::IterationType</a></div><div class="ttdeci">uint32_t IterationType</div><div class="ttdoc">Le type représentant le nombre d'itération de la simulation.</div><div class="ttdef"><b>Definition</b> GOL.h:142</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_a71f920566f6053820e4a39c1c0ffe14a"><div class="ttname"><a href="class_g_o_l.html#a71f920566f6053820e4a39c1c0ffe14a">GOL::~GOL</a></div><div class="ttdeci">virtual ~GOL()=default</div><div class="ttdoc">Destructeur.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_a7e362245fec1c4411835b6ca5eb1a62b"><div class="ttname"><a href="class_g_o_l.html#a7e362245fec1c4411835b6ca5eb1a62b">GOL::size</a></div><div class="ttdeci">virtual size_t size() const =0</div><div class="ttdoc">Accesseur retournant le nombre total de cellules de la grille de simualtion.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_a7fd8fe0cc3c4ea6e0234f165e0ae0909"><div class="ttname"><a href="class_g_o_l.html#a7fd8fe0cc3c4ea6e0234f165e0ae0909">GOL::fill</a></div><div class="ttdeci">virtual void fill(State state=State::dead)=0</div><div class="ttdoc">Mutateur remplissant de façon uniforme toutes les cellules de la grille.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_a8dfa284246f15ca8b2fe3b72d39398c4"><div class="ttname"><a href="class_g_o_l.html#a8dfa284246f15ca8b2fe3b72d39398c4">GOL::ColorChannelType</a></div><div class="ttdeci">uint8_t ColorChannelType</div><div class="ttdoc">Le type représentant un canal de couleur.</div><div class="ttdef"><b>Definition</b> GOL.h:160</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_a8f80ecf85fb6970fb8aa19fdc72488c5"><div class="ttname"><a href="class_g_o_l.html#a8f80ecf85fb6970fb8aa19fdc72488c5">GOL::BorderManagement</a></div><div class="ttdeci">BorderManagement</div><div class="ttdoc">Le type représentant la stratégie de gestion de bord.</div><div class="ttdef"><b>Definition</b> GOL.h:150</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_a8f80ecf85fb6970fb8aa19fdc72488c5a1959daeb0273318781b4aa35f118676d"><div class="ttname"><a href="class_g_o_l.html#a8f80ecf85fb6970fb8aa19fdc72488c5a1959daeb0273318781b4aa35f118676d">GOL::BorderManagement::immutableAsIs</a></div><div class="ttdeci">@ immutableAsIs</div><div class="ttdoc">Les cellules du contour ne sont jamais modifiées. Elles sont laissées dans leur état courant.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_a8f80ecf85fb6970fb8aa19fdc72488c5a303cf94b70e6f7dffb1e094570e1759f"><div class="ttname"><a href="class_g_o_l.html#a8f80ecf85fb6970fb8aa19fdc72488c5a303cf94b70e6f7dffb1e094570e1759f">GOL::BorderManagement::foreverDead</a></div><div class="ttdeci">@ foreverDead</div><div class="ttdoc">Les cellules du contour ne sont jamais modifiées. Elles sont toujours mortes.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_a8f80ecf85fb6970fb8aa19fdc72488c5a6845ed92fb9b5afe34b3cb58a03143bb"><div class="ttname"><a href="class_g_o_l.html#a8f80ecf85fb6970fb8aa19fdc72488c5a6845ed92fb9b5afe34b3cb58a03143bb">GOL::BorderManagement::foreverAlive</a></div><div class="ttdeci">@ foreverAlive</div><div class="ttdoc">Les cellules du contour ne sont jamais modifiées. Elles sont toujours vivantes.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_a8f80ecf85fb6970fb8aa19fdc72488c5ad26fea1f666f50ab33e246806ed4829b"><div class="ttname"><a href="class_g_o_l.html#a8f80ecf85fb6970fb8aa19fdc72488c5ad26fea1f666f50ab33e246806ed4829b">GOL::BorderManagement::warping</a></div><div class="ttdeci">@ warping</div><div class="ttdoc">Les cellules du contour sont évaluées. On utilise les cellules du côté opposé de la grille pour les c...</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_a8f80ecf85fb6970fb8aa19fdc72488c5afbe322a89bc0ba531c3f0050e3935f28"><div class="ttname"><a href="class_g_o_l.html#a8f80ecf85fb6970fb8aa19fdc72488c5afbe322a89bc0ba531c3f0050e3935f28">GOL::BorderManagement::mirror</a></div><div class="ttdeci">@ mirror</div><div class="ttdoc">Les cellules du contour sont évaluées. On utilise les cellules du côté opposé de la cellule pour les ...</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_a98dbb31bb7d7ab708f69f276a0849361"><div class="ttname"><a href="class_g_o_l.html#a98dbb31bb7d7ab708f69f276a0849361">GOL::setSolidColor</a></div><div class="ttdeci">virtual void setSolidColor(State state, Color const &color)=0</div><div class="ttdoc">Mutateur modifiant la couleur d'un état.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_ab40533a07f138789826faa52a6f644aa"><div class="ttname"><a href="class_g_o_l.html#ab40533a07f138789826faa52a6f644aa">GOL::State</a></div><div class="ttdeci">State</div><div class="ttdoc">Le type représentant l'état d'une cellule.</div><div class="ttdef"><b>Definition</b> GOL.h:135</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_ab40533a07f138789826faa52a6f644aaa7bd3d5f5b3cdb13aed632121206e729c"><div class="ttname"><a href="class_g_o_l.html#ab40533a07f138789826faa52a6f644aaa7bd3d5f5b3cdb13aed632121206e729c">GOL::State::alive</a></div><div class="ttdeci">@ alive</div><div class="ttdoc">L'état vivant.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_ab40533a07f138789826faa52a6f644aaaf58e6a506c76fc2c90a7d29cbc631c2f"><div class="ttname"><a href="class_g_o_l.html#ab40533a07f138789826faa52a6f644aaaf58e6a506c76fc2c90a7d29cbc631c2f">GOL::State::dead</a></div><div class="ttdeci">@ dead</div><div class="ttdoc">L'état mort.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_ab93d6b83a53990fd27e6fc152b549e41"><div class="ttname"><a href="class_g_o_l.html#ab93d6b83a53990fd27e6fc152b549e41">GOL::GOL</a></div><div class="ttdeci">GOL(size_t width, size_t height, State defaultState=State::dead)</div><div class="ttdoc">Constructeur d'initialisation personnalisé.</div><div class="ttdef"><b>Definition</b> GOL.h:244</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_ac1855e686984d4533fc2442f6f3b89f2"><div class="ttname"><a href="class_g_o_l.html#ac1855e686984d4533fc2442f6f3b89f2">GOL::statistics</a></div><div class="ttdeci">virtual Statistics statistics() const =0</div><div class="ttdoc">Accesseurs retournant des informations générales sur la simulation en cours.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_acb7eb9dfd0d705bcd3093374a65071e9"><div class="ttname"><a href="class_g_o_l.html#acb7eb9dfd0d705bcd3093374a65071e9">GOL::borderManagement</a></div><div class="ttdeci">virtual BorderManagement borderManagement() const =0</div><div class="ttdoc">Accesseur retournant la stratégie courante de gestion des bords.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_ad7f2161a93817f8eda610319a9593f82"><div class="ttname"><a href="class_g_o_l.html#ad7f2161a93817f8eda610319a9593f82">GOL::setFromPattern</a></div><div class="ttdeci">virtual bool setFromPattern(std::string const &pattern)=0</div><div class="ttdoc">Mutateur remplissant la grille par le patron passé en argument.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_ae15588c452004483dd12ed01f63ebb7a"><div class="ttname"><a href="class_g_o_l.html#ae15588c452004483dd12ed01f63ebb7a">GOL::fillAlternately</a></div><div class="ttdeci">virtual void fillAlternately(State firstCell=State::dead)=0</div><div class="ttdoc">Mutateur remplissant de façon alternée toutes les cellules de la grille.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_ae421e565fbf6ba31db44d71eba7227b3"><div class="ttname"><a href="class_g_o_l.html#ae421e565fbf6ba31db44d71eba7227b3">GOL::setState</a></div><div class="ttdeci">virtual void setState(int x, int y, State state)=0</div><div class="ttdoc">Mutateur modifiant l'état d'une cellule de la grille.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_aed680727507df7541f28b1b3be099364"><div class="ttname"><a href="class_g_o_l.html#aed680727507df7541f28b1b3be099364">GOL::setRule</a></div><div class="ttdeci">virtual bool setRule(std::string const &rule)=0</div><div class="ttdoc">Mutateur modifiant la règle de la simulation.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_aee16ffdbff2b3fe49bdfb961cf85a7af"><div class="ttname"><a href="class_g_o_l.html#aee16ffdbff2b3fe49bdfb961cf85a7af">GOL::information</a></div><div class="ttdeci">virtual ImplementationInformation information() const =0</div><div class="ttdoc">Accesseurs retournant les informations sur la réalisation de l'implémentation.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_aeeb68a308596df6cc833915fe25b8b31"><div class="ttname"><a href="class_g_o_l.html#aeeb68a308596df6cc833915fe25b8b31">GOL::resize</a></div><div class="ttdeci">virtual void resize(size_t width, size_t height, State defaultState=State::dead)=0</div><div class="ttdoc">Mutateur modifiant la taille de la grille de simulation.</div></div>
|
|
<div class="ttc" id="aclass_g_o_l_html_af09cbd32232ddf08296e4709f2a7b7b7"><div class="ttname"><a href="class_g_o_l.html#af09cbd32232ddf08296e4709f2a7b7b7">GOL::setFromPattern</a></div><div class="ttdeci">virtual bool setFromPattern(std::string const &pattern, int centerX, int centerY)=0</div><div class="ttdoc">Mutateur remplissant la grille par le patron passé en argument.</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_author_html"><div class="ttname"><a href="struct_g_o_l_1_1_author.html">GOL::Author</a></div><div class="ttdoc">Le type représentant les informations permettant d'identifier les auteurs de l'implémentation.</div><div class="ttdef"><b>Definition</b> GOL.h:203</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_author_html_a789800726a95c045b18135641bdd4a0d"><div class="ttname"><a href="struct_g_o_l_1_1_author.html#a789800726a95c045b18135641bdd4a0d">GOL::Author::lastName</a></div><div class="ttdeci">std::string lastName</div><div class="ttdoc">Le nom de famille de l'auteur.</div><div class="ttdef"><b>Definition</b> GOL.h:204</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_author_html_a852b5f97cd31f1c698bdec4ac123efb0"><div class="ttname"><a href="struct_g_o_l_1_1_author.html#a852b5f97cd31f1c698bdec4ac123efb0">GOL::Author::firstName</a></div><div class="ttdeci">std::string firstName</div><div class="ttdoc">Le prénom de l'auteur.</div><div class="ttdef"><b>Definition</b> GOL.h:205</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_author_html_ab0d7c78b1dbe43191bc19a08a3632630"><div class="ttname"><a href="struct_g_o_l_1_1_author.html#ab0d7c78b1dbe43191bc19a08a3632630">GOL::Author::studentEmail</a></div><div class="ttdeci">std::string studentEmail</div><div class="ttdoc">L'adresse courriel de l'auteur. On désire l'adresse courriel étudiante.</div><div class="ttdef"><b>Definition</b> GOL.h:206</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_color_html"><div class="ttname"><a href="struct_g_o_l_1_1_color.html">GOL::Color</a></div><div class="ttdoc">Le type représentant une couleur.</div><div class="ttdef"><b>Definition</b> GOL.h:164</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_color_html_a024ce041fb574f2531e8c3ccedfdf872"><div class="ttname"><a href="struct_g_o_l_1_1_color.html#a024ce041fb574f2531e8c3ccedfdf872">GOL::Color::green</a></div><div class="ttdeci">ColorChannelType green</div><div class="ttdoc">Le canal de couleur verte.</div><div class="ttdef"><b>Definition</b> GOL.h:166</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_color_html_a8f580a1ff7d2037d9f78bb6dcaf98a0c"><div class="ttname"><a href="struct_g_o_l_1_1_color.html#a8f580a1ff7d2037d9f78bb6dcaf98a0c">GOL::Color::red</a></div><div class="ttdeci">ColorChannelType red</div><div class="ttdoc">Le canal de couleur rouge.</div><div class="ttdef"><b>Definition</b> GOL.h:165</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_color_html_af5ba4c4c2734b3de66dc3d5ddfd33067"><div class="ttname"><a href="struct_g_o_l_1_1_color.html#af5ba4c4c2734b3de66dc3d5ddfd33067">GOL::Color::blue</a></div><div class="ttdeci">ColorChannelType blue</div><div class="ttdoc">Le canal de couleur bleue.</div><div class="ttdef"><b>Definition</b> GOL.h:167</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_implementation_information_html"><div class="ttname"><a href="struct_g_o_l_1_1_implementation_information.html">GOL::ImplementationInformation</a></div><div class="ttdoc">Le type représentant les informations documentant l'implémentation.</div><div class="ttdef"><b>Definition</b> GOL.h:218</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_implementation_information_html_a537522ac3ca67d3c0f8495558e9ec82c"><div class="ttname"><a href="struct_g_o_l_1_1_implementation_information.html#a537522ac3ca67d3c0f8495558e9ec82c">GOL::ImplementationInformation::title</a></div><div class="ttdeci">std::string title</div><div class="ttdoc">Le titre de l'implémentation.</div><div class="ttdef"><b>Definition</b> GOL.h:219</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_implementation_information_html_a74518907e65d8c8d469032ee52bb574d"><div class="ttname"><a href="struct_g_o_l_1_1_implementation_information.html#a74518907e65d8c8d469032ee52bb574d">GOL::ImplementationInformation::authors</a></div><div class="ttdeci">std::vector< Author > authors</div><div class="ttdoc">Les auteurs de l'implémentation.</div><div class="ttdef"><b>Definition</b> GOL.h:220</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_implementation_information_html_ad0179a43523be2c9a96a930413457cc0"><div class="ttname"><a href="struct_g_o_l_1_1_implementation_information.html#ad0179a43523be2c9a96a930413457cc0">GOL::ImplementationInformation::optionnalComments</a></div><div class="ttdeci">std::vector< std::string > optionnalComments</div><div class="ttdoc">Des commentaires optionnels.</div><div class="ttdef"><b>Definition</b> GOL.h:222</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_implementation_information_html_ae17a4cf1efe7db0c0191a2e1ce9b0ea3"><div class="ttname"><a href="struct_g_o_l_1_1_implementation_information.html#ae17a4cf1efe7db0c0191a2e1ce9b0ea3">GOL::ImplementationInformation::answers</a></div><div class="ttdeci">std::vector< std::string > answers</div><div class="ttdoc">Les réponses aux questions du laboratoire.</div><div class="ttdef"><b>Definition</b> GOL.h:221</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_statistics_html"><div class="ttname"><a href="struct_g_o_l_1_1_statistics.html">GOL::Statistics</a></div><div class="ttdoc">Le type représentant des données statistiques de la simulation.</div><div class="ttdef"><b>Definition</b> GOL.h:186</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_statistics_html_a0c7ac4a263ba69f0e1a453039037b3b9"><div class="ttname"><a href="struct_g_o_l_1_1_statistics.html#a0c7ac4a263ba69f0e1a453039037b3b9">GOL::Statistics::totalDeadAbs</a></div><div class="ttdeci">std::optional< size_t > totalDeadAbs</div><div class="ttdoc">Le nombre total de cellules mortes en valeur absolue.</div><div class="ttdef"><b>Definition</b> GOL.h:193</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_statistics_html_a0eb0a1aaa2d76c389b3d49ea1c6c9bed"><div class="ttname"><a href="struct_g_o_l_1_1_statistics.html#a0eb0a1aaa2d76c389b3d49ea1c6c9bed">GOL::Statistics::totalDeadRel</a></div><div class="ttdeci">std::optional< float > totalDeadRel</div><div class="ttdoc">Le nombre total de cellules mortes en valeur relative du nombre total de cellules.</div><div class="ttdef"><b>Definition</b> GOL.h:195</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_statistics_html_a26d329b7b472a18fda78e9e4399effbc"><div class="ttname"><a href="struct_g_o_l_1_1_statistics.html#a26d329b7b472a18fda78e9e4399effbc">GOL::Statistics::width</a></div><div class="ttdeci">std::optional< size_t > width</div><div class="ttdoc">La largeur de la grille.</div><div class="ttdef"><b>Definition</b> GOL.h:189</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_statistics_html_a94192cc3db009bc06ce178bc70093f52"><div class="ttname"><a href="struct_g_o_l_1_1_statistics.html#a94192cc3db009bc06ce178bc70093f52">GOL::Statistics::iteration</a></div><div class="ttdeci">std::optional< IterationType > iteration</div><div class="ttdoc">Le nombre d'itération de la simulation.</div><div class="ttdef"><b>Definition</b> GOL.h:192</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_statistics_html_a980f0bf8ca7d7838f29c18069b406284"><div class="ttname"><a href="struct_g_o_l_1_1_statistics.html#a980f0bf8ca7d7838f29c18069b406284">GOL::Statistics::totalCells</a></div><div class="ttdeci">std::optional< size_t > totalCells</div><div class="ttdoc">Le nombre total de cellules.</div><div class="ttdef"><b>Definition</b> GOL.h:191</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_statistics_html_aaf2de20f90d08fe72e7c19bafdabf9a7"><div class="ttname"><a href="struct_g_o_l_1_1_statistics.html#aaf2de20f90d08fe72e7c19bafdabf9a7">GOL::Statistics::borderManagement</a></div><div class="ttdeci">std::optional< BorderManagement > borderManagement</div><div class="ttdoc">La stratégie de gestion de bord.</div><div class="ttdef"><b>Definition</b> GOL.h:188</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_statistics_html_ab27d09a97457ede162c76476105e13e1"><div class="ttname"><a href="struct_g_o_l_1_1_statistics.html#ab27d09a97457ede162c76476105e13e1">GOL::Statistics::totalAliveAbs</a></div><div class="ttdeci">std::optional< size_t > totalAliveAbs</div><div class="ttdoc">Le nombre total de cellules vivantes en valeur absolue.</div><div class="ttdef"><b>Definition</b> GOL.h:194</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_statistics_html_acc45f6dc5a08918b5a2a4a4a54c0efd3"><div class="ttname"><a href="struct_g_o_l_1_1_statistics.html#acc45f6dc5a08918b5a2a4a4a54c0efd3">GOL::Statistics::height</a></div><div class="ttdeci">std::optional< size_t > height</div><div class="ttdoc">La hauteur de la grille.</div><div class="ttdef"><b>Definition</b> GOL.h:190</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_statistics_html_ace8337d109af59325bdcb5d58b801df4"><div class="ttname"><a href="struct_g_o_l_1_1_statistics.html#ace8337d109af59325bdcb5d58b801df4">GOL::Statistics::rule</a></div><div class="ttdeci">std::optional< std::string > rule</div><div class="ttdoc">La règle de la simulation exprimé par la chaîne de caractères de format "B###/S###".</div><div class="ttdef"><b>Definition</b> GOL.h:187</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_statistics_html_ae96e52cf979cb8cfe8841b92c2bbc9eb"><div class="ttname"><a href="struct_g_o_l_1_1_statistics.html#ae96e52cf979cb8cfe8841b92c2bbc9eb">GOL::Statistics::tendencyAbs</a></div><div class="ttdeci">std::optional< int > tendencyAbs</div><div class="ttdoc">La tendance de la variation entre le nombre de cellules mortes et vivantes en valeur absolue.</div><div class="ttdef"><b>Definition</b> GOL.h:197</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_statistics_html_ae981c7b738fd3cf1b4c6cbf006f425b0"><div class="ttname"><a href="struct_g_o_l_1_1_statistics.html#ae981c7b738fd3cf1b4c6cbf006f425b0">GOL::Statistics::tendencyRel</a></div><div class="ttdeci">std::optional< float > tendencyRel</div><div class="ttdoc">La tendance de la variation entre le nombre de cellules mortes et vivantes en valeur relative.</div><div class="ttdef"><b>Definition</b> GOL.h:198</div></div>
|
|
<div class="ttc" id="astruct_g_o_l_1_1_statistics_html_af9cead801f8e57055bb74ec119aa4908"><div class="ttname"><a href="struct_g_o_l_1_1_statistics.html#af9cead801f8e57055bb74ec119aa4908">GOL::Statistics::totalAliveRel</a></div><div class="ttdeci">std::optional< float > totalAliveRel</div><div class="ttdoc">Le nombre total de cellules vivantes en valeur relative du nombre total de cellules.</div><div class="ttdef"><b>Definition</b> GOL.h:196</div></div>
|
|
</div><!-- fragment --></div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
|
|
</small></address>
|
|
</body>
|
|
</html>
|