<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}
.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity:60)';}
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0em 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0em 1em 1em; left:0px; top:0px;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0em 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 .3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0em 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0em 0em 0em; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0em;}
.wizardFooter .status {padding:0em 0.4em 0em 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em 0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0em; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em 0.2em 0.2em 0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em 0.2em 0.2em 0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em 1em 1em 1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0em;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0em 0em 0.5em;}
.tab {margin:0em 0em 0em 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0em 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0em 1em;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0em 0.25em; padding:0em 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0em; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}

.fieldsetFix {border:0; padding:0; margin:1px 0px 1px 0px;}

.sparkline {line-height:1em;}
.sparktick {outline:0;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0em; right:0em;}
#backstageButton a {padding:0.1em 0.4em 0.1em 0.4em; margin:0.1em 0.1em 0.1em 0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none ! important;}
#displayArea {margin: 1em 1em 0em 1em;}
/* Fixes a feature in Firefox where print preview displays the noscript content */
noscript {display:none;}
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>
To get started with this blank TiddlyWiki, you'll need to modify the following tiddlers:
* SiteTitle & SiteSubtitle: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* MainMenu: The menu (usually on the left)
* DefaultTiddlers: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These InterfaceOptions for customising TiddlyWiki are saved in your browser

Your username for signing your edits. Write it as a WikiWord (eg JoeBloggs)

<<option txtUserName>>
<<option chkSaveBackups>> SaveBackups
<<option chkAutoSave>> AutoSave
<<option chkRegExpSearch>> RegExpSearch
<<option chkCaseSensitiveSearch>> CaseSensitiveSearch
<<option chkAnimate>> EnableAnimations

Also see AdvancedOptions
//that line is Conway's Game of Life in one line of APL (a programming language), thanks to [[catpad|http://catpad.net/michael/]].//
Le jeu de la vie en une ligne d'APL.

retour - //[[plan du site]]//
Ralph William ''Gosper'', Jr., né en 1943, est un mathématicien américain qui travailla avec le MIT. Il est considéré comme l'un des pères fondateurs du hacking.

Il a découvert le //glider gun// qui porte son nom - [[canon|canons]] à [[planeurs]] -, et gagné ainsi, en novembre 1970, un prix de 50$ offert par John [[Conway]]. Ce dernier croyait pouvoir démontrer qu'aucune [[croissance]] infinie n'était possible avec les [[règles]] qu'il venait d'inventer pour le [[jeu de la vie]].

retour - //[[chercheurs]]//
John Horton ''Conway'', né en 1937 à Liverpool, est un mathématicien britannique. Extrêmement prolifique, il s'est penché sur les théories des groupes finis, des nœuds, des nombres, des jeux et du codage.

Parmi les mathématiciens amateurs, il est principalement connu pour sa théorie combinatoire des jeux et pour avoir inventé le [[jeu de la vie]], un [[automate cellulaire|automates cellulaires]].

retour - //[[chercheurs]]//
[[automates cellulaires]]
|Author|Walt Woods|

Displays similar to the popular BreadCrumbsPlugin by AlanHecht, this plugin instead keeps a list of currently open tiddlers.

08-06-2007: Initial version.

version.extensions.DisplayOpenTiddlers = {major: 1, minor: 0, revision: 0};

function addOpenTiddlerLine(title, element)
 if (title != openTiddlerClosing)
  if (tiddlerLine != "")
   tiddlerLine += " | ";
  tiddlerLine += "[[" + title + "]]";

function refreshOpenTiddlersList()
 if (!document.getElementById("openTiddlers")) {
  var ta = document.createElement("div");
  ta.id = "openTiddlers";
  ta.style.visibility= "hidden";
  var targetArea = document.getElementById("tiddlerDisplay")||document.getElementById("storyDisplay");

 var tiddlers = document.getElementById("openTiddlers");
 tiddlers.style.visibility = "visible";
 tiddlerLine = "";

Story.prototype.displayTiddlerDisplayOpenTiddlers = Story.prototype.displayTiddler;
Story.prototype.displayTiddler = function(srcElement,title,template,animate,slowly)
 openTiddlerClosing = "";

Story.prototype.closeTiddlerDisplayOpenTiddlers = Story.prototype.closeTiddler;
Story.prototype.closeTiddler = function(title,animate,unused)
 openTiddlerClosing = title;
|''Name:''|LoadRemoteFileThroughProxy (previous LoadRemoteFileHijack)|
|''Description:''|When the TiddlyWiki file is located on the web (view over http) the content of [[SiteProxy]] tiddler is added in front of the file url. If [[SiteProxy]] does not exist "/proxy/" is added. |
|''Date:''|mar 17, 2007|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
version.extensions.LoadRemoteFileThroughProxy = {
 major: 1, minor: 1, revision: 0, 
 date: new Date("mar 17, 2007"), 
 source: "http://tiddlywiki.bidix.info/#LoadRemoteFileThroughProxy"};

if (!window.bidix) window.bidix = {}; // bidix namespace
if (!bidix.core) bidix.core = {};

bidix.core.loadRemoteFile = loadRemoteFile;
loadRemoteFile = function(url,callback,params)
 if ((document.location.toString().substr(0,4) == "http") && (url.substr(0,4) == "http")){ 
 url = store.getTiddlerText("SiteProxy", "/proxy/") + url;
 return bidix.core.loadRemoteFile(url,callback,params);
[[automates cellulaires]]

[[plan du site]]
[img[glider fixed|http://tbn3.google.com/images?q=tbn:S-jTNCKMteoOuM:http://farm1.static.flickr.com/186/389988146_6a6c3efcfa.jpg]]
//[[About ...|À propos de ce site]]//

^^[img[favicon.ico]]Moteur ~TiddlyWiki <<version>>
© 2009 [[UnaMesa|http://www.unamesa.org/]]^^
''Martin Gardner'', né en 1914, a beaucoup publié, notamment de janvier 1957 à 1982, dans la revue mensuelle //Scientific American// (et sa traduction française [[Pour la Science|sources]]), où il anima une rubrique consacrée aux jeux, casse-têtes et curiosités mathématiques ainsi qu'aux paradoxes logiques, qui contribua grandement à développer l'intérêt pour les mathématiques chez ses lecteurs.
Il a popularisé, par exemple, le [[jeu de la vie]] de John Horton [[Conway]], le jeu Hex, les tangrams, les [[polyminos]] et les pavages de Penrose.

Il est également considéré comme un spécialiste d'//Alice au Pays des Merveilles// et de l'œuvre de Lewis Carroll en général.

Je garde un excellent souvenir de quelques //Récréations mathématiques// qu'il m'a fait découvrir ...

retour - //[[chercheurs]]//
[[le jeu de la vie et moi]]
[[le jeu de la vie et le monde]]
[[le jeu]]

[[automates cellulaires]]
[[jeu de la vie]]


[[À propos de ce site]]

[[plan du site]]
|''Description:''|Extends TiddlyWiki options with non encrypted password option.|
|''Date:''|Apr 19, 2007|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (Beta 5)|
version.extensions.PasswordOptionPlugin = {
	major: 1, minor: 0, revision: 2, 
	date: new Date("Apr 19, 2007"),
	source: 'http://tiddlywiki.bidix.info/#PasswordOptionPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',
	coreVersion: '2.2.0 (Beta 5)'

config.macros.option.passwordCheckboxLabel = "Save this password on this computer";
config.macros.option.passwordInputType = "password"; // password | text
setStylesheet(".pasOptionInput {width: 11em;}\n","passwordInputTypeStyle");

merge(config.macros.option.types, {
	'pas': {
		elementType: "input",
		valueField: "value",
		eventName: "onkeyup",
		className: "pasOptionInput",
		typeValue: config.macros.option.passwordInputType,
		create: function(place,type,opt,className,desc) {
			// password field
			// checkbox linked with this password "save this password on this computer"
			// text savePasswordCheckboxLabel
		onChange: config.macros.option.genericOnChange

merge(config.optionHandlers['chk'], {
	get: function(name) {
		// is there an option linked with this chk ?
		var opt = name.substr(3);
		if (config.options[opt]) 
		return config.options[name] ? "true" : "false";

merge(config.optionHandlers, {
	'pas': {
 		get: function(name) {
			if (config.options["chk"+name]) {
				return encodeCookie(config.options[name].toString());
			} else {
				return "";
		set: function(name,value) {config.options[name] = decodeCookie(value);}

// need to reload options to load passwordOptions

if (!config.options['pasPassword'])
	config.options['pasPassword'] = '';

		pasPassword: "Test password"
<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "DD MMM YYYY">><<saveChanges>><<tiddler TspotSidebar>><<slider chkSliderOptionsPanel OptionsPanel "options »" "Change ~TiddlyWiki advanced options">> <<tabs aha [[mes sites persos]]  [[mes sites persos]] [[mes sites persos]] >>
<<tabs txtMainTab "Menu" "Menu" [[Menu]] "Timeline" "Timeline" TabTimeline "All" "All tiddlers" TabAll "Tags" "All tags" TabTags "More" "More lists" TabMore "Done" "Done" Done>>
toujours en vie [img[Hugo|http://i471.photobucket.com/albums/rr79/methodood/life_hugo0.jpg]]
Game of Life
Solomon Wolf ''Golomb'', né en 1932 à Baltimore, est un mathématicien, ingénieur et professeur, plus connu du grand public pour sa découverte et son étude des [[polyminos]], qui ont inspiré le jeu électronique //Tetris//.
Comme [[Martin Gardner]], il contribua au Scientific American pour la rubrique "Mathematical Games".
On lui doit des intuitions puissantes sur les nombres, les formes et la combinatoire.
[img[règle de Golomb|http://mathblogger.free.fr/images/regle-Golomb-4.png]]
La règle ci-dessus, dite de Golomb, mesure tous les nombres (de 1 à 6) avec un minimum de graduations (2). C'est un peu l'oeuf de Golomb! La liste des règles optimales n'est pas terminée à ce jour.

retour - //[[chercheurs]]//
Stephen ''Wolfram'', né en 1959, a créé le logiciel de calcul formel //Mathematica//.

Il s'est intéressé aux [[automates cellulaires]] et a publié //a New kind of science// (une nouvelle science), qui prétend donner l'origine du monde dans un jeu aux règles à notre portée :  la cosmogonie - la [[naissance]] de l'univers, ne serait que le résultat d'une simulation.

- D'une façon générale, il n'était venu à personne l'idée de faire tourner un programme par [[simple]] curiosité. Or la nature, nous dit Wolfram, fait tout le contraire. Comme elle ne poursuit pas de finalité, les systèmes [[évolutifs|évolution]] se déroulent jusqu'au bout de leurs potentiels. Ainsi il peuvent révéler des [[complexités|complexe]] inattendues.

Wolfram sort le 18 mai 2009 un site qui a réponse à tout automatiquement - entre autres en analysant les données de l'encyclopédie collaborative //Wikipedia//. Basé sur les possibilités de son logiciel //Mathematica, ~WolframAlpha// stocke des éléments de réponses, telles des statistiques sur les personnes, les villes et les pays, gagnant ainsi en temps de calcul et en pertinence au même titre que le [[logiciel|logiciels]] //~HashLife// utilisé dans le [[jeu de la vie]].

retour - //[[chercheurs]]//
Description: Contains the stuff you need to use Tiddlyspot
Note, you also need UploadPlugin, PasswordOptionPlugin and LoadRemoteFileThroughProxy
from http://tiddlywiki.bidix.info for a complete working Tiddlyspot site.

// edit this if you are migrating sites or retrofitting an existing TW
config.tiddlyspotSiteId = 'gameoflife';

// make it so you can by default see edit controls via http
config.options.chkHttpReadOnly = false;
window.readOnly = false; // make sure of it (for tw 2.2)
window.showBackstage = true; // show backstage too

// disable autosave in d3
if (window.location.protocol != "file:")
	config.options.chkGTDLazyAutoSave = false;

// tweak shadow tiddlers to add upload button, password entry box etc
with (config.shadowTiddlers) {
	SiteUrl = 'http://'+config.tiddlyspotSiteId+'.tiddlyspot.com';
	SideBarOptions = SideBarOptions.replace(/(<<saveChanges>>)/,"$1<<tiddler TspotSidebar>>");
	OptionsPanel = OptionsPanel.replace(/^/,"<<tiddler TspotOptions>>");
	DefaultTiddlers = DefaultTiddlers.replace(/^/,"[[WelcomeToTiddlyspot]] ");
	MainMenu = MainMenu.replace(/^/,"[[WelcomeToTiddlyspot]] ");

// create some shadow tiddler content

 "This document is a ~TiddlyWiki from tiddlyspot.com.  A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.",
 "@@font-weight:bold;font-size:1.3em;color:#444; //What now?// &nbsp;&nbsp;@@ Before you can save any changes, you need to enter your password in the form below.  Then configure privacy and other site settings at your [[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]] (your control panel username is //" + config.tiddlyspotSiteId + "//).",
 "<<tiddler TspotControls>>",
 "See also GettingStarted.",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working online// &nbsp;&nbsp;@@ You can edit this ~TiddlyWiki right now, and save your changes using the \"save to web\" button in the column on the right.",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// &nbsp;&nbsp;@@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick.  You can make changes and save them locally without being connected to the Internet.  When you're ready to sync up again, just click \"upload\" and your ~TiddlyWiki will be saved back to tiddlyspot.com.",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Help!// &nbsp;&nbsp;@@ Find out more about ~TiddlyWiki at [[TiddlyWiki.com|http://tiddlywiki.com]].  Also visit [[TiddlyWiki.org|http://tiddlywiki.org]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|http://groups.google.com/group/TiddlyWiki]], which is an excellent place to ask questions and get help.  If you have a tiddlyspot related problem email [[tiddlyspot support|mailto:support@tiddlyspot.com]].",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// &nbsp;&nbsp;@@ We hope you like using your tiddlyspot.com site.  Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments or suggestions."

 "| tiddlyspot password:|<<option pasUploadPassword>>|",
 "| site management:|<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . .  " + config.tiddlyspotSiteId + ">>//(requires tiddlyspot password)//<br>[[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]], [[download (go offline)|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download]]|",
 "| links:|[[tiddlyspot.com|http://tiddlyspot.com/]], [[FAQs|http://faq.tiddlyspot.com/]], [[blog|http://tiddlyspot.blogspot.com/]], email [[support|mailto:support@tiddlyspot.com]] & [[feedback|mailto:feedback@tiddlyspot.com]], [[donate|http://tiddlyspot.com/?page=donate]]|"

 "<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . .  " + config.tiddlyspotSiteId + ">><html><a href='http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download' class='button'>download</a></html>"

 "tiddlyspot password:",
 "<<option pasUploadPassword>>",

| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 20/08/2009 21:46:38 | H_man | [[gameoflife.html|file:///C:/Users/Robin/Documents/gameoflife.html]] | [[store.cgi|http://gameoflife.tiddlyspot.com/store.cgi]] | . | [[index.html | http://gameoflife.tiddlyspot.com/index.html]] | . | ok |
| 30/08/2009 22:39:15 | H_man | [[gameoflife.html|file:///C:/Users/Robin/Documents/gameoflife.html]] | [[store.cgi|http://gameoflife.tiddlyspot.com/store.cgi]] | . | [[index.html | http://gameoflife.tiddlyspot.com/index.html]] | . | ok |
| 15/09/2009 21:46:55 | H_man | [[gameoflife.html|file:///C:/Users/Robin/Documents/gameoflife.html]] | [[store.cgi|http://gameoflife.tiddlyspot.com/store.cgi]] | . | [[index.html | http://gameoflife.tiddlyspot.com/index.html]] | . | ok |
| 19/09/2009 10:16:01 | H_man | [[gameoflife.html|file:///C:/Users/Robin/Documents/gameoflife.html]] | [[store.cgi|http://gameoflife.tiddlyspot.com/store.cgi]] | . | [[index.html | http://gameoflife.tiddlyspot.com/index.html]] | . | ok |
| 15/10/2009 18:25:00 | H_man | [[gameoflife.html|file:///C:/Users/Robin/Documents/gameoflife.html]] | [[store.cgi|http://gameoflife.tiddlyspot.com/store.cgi]] | . | [[index.html | http://gameoflife.tiddlyspot.com/index.html]] | . | ok |
| 22/11/2009 18:34:48 | H_man | [[gameoflife.html|file:///C:/Users/Robin/Documents/gameoflife.html]] | [[store.cgi|http://gameoflife.tiddlyspot.com/store.cgi]] | . | [[index.html | http://gameoflife.tiddlyspot.com/index.html]] | . | ok |
| 23/12/2009 21:29:17 | H_man | [[gameoflife.html|file:///C:/Users/Robin/Documents/gameoflife.html]] | [[store.cgi|http://gameoflife.tiddlyspot.com/store.cgi]] | . | [[index.html | http://gameoflife.tiddlyspot.com/index.html]] | . | ok |
| 18/09/2010 17:21:50 | H_man | [[gameoflife.html|file:///C:/Users/Robin/Documents/gameoflife.html]] | [[store.cgi|http://gameoflife.tiddlyspot.com/store.cgi]] | . | [[index.html | http://gameoflife.tiddlyspot.com/index.html]] | . | ok |
| 18/09/2010 17:26:58 | H_man | [[gameoflife.html|file:///C:/Users/Robin/Documents/gameoflife.html]] | [[store.cgi|http://gameoflife.tiddlyspot.com/store.cgi]] | . | [[index.html | http://gameoflife.tiddlyspot.com/index.html]] | . | ok |
| 07/12/2013 17:47:22 | H_man | [[gameoflife.html|file:///C:/Users/Robin/Documents/sites/gameoflife.html]] | [[store.cgi|http://gameoflife.tiddlyspot.com/store.cgi]] | . | [[index.html | http://gameoflife.tiddlyspot.com/index.html]] | . |
|''Description:''|Save to web a TiddlyWiki|
|''Date:''|Feb 24, 2008|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
version.extensions.UploadPlugin = {
	major: 4, minor: 1, revision: 3,
	date: new Date("Feb 24, 2008"),
	source: 'http://tiddlywiki.bidix.info/#UploadPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	coreVersion: '2.2.0'

// Environment

if (!window.bidix) window.bidix = {}; // bidix namespace
bidix.debugMode = false;	// true to activate both in Plugin and UploadService
// Upload Macro

config.macros.upload = {
// default values
	defaultBackupDir: '',	//no backup
	defaultStoreScript: "store.php",
	defaultToFilename: "index.html",
	defaultUploadDir: ".",
	authenticateUser: true	// UploadService Authenticate User
config.macros.upload.label = {
	promptOption: "Save and Upload this TiddlyWiki with UploadOptions",
	promptParamMacro: "Save and Upload this TiddlyWiki in %0",
	saveLabel: "save to web", 
	saveToDisk: "save to disk",
	uploadLabel: "upload"	

config.macros.upload.messages = {
	noStoreUrl: "No store URL in parmeters or options",
	usernameOrPasswordMissing: "Username or password missing"

config.macros.upload.handler = function(place,macroName,params) {
	if (readOnly)
	var label;
	if (document.location.toString().substr(0,4) == "http") 
		label = this.label.saveLabel;
		label = this.label.uploadLabel;
	var prompt;
	if (params[0]) {
		prompt = this.label.promptParamMacro.toString().format([this.destFile(params[0], 
			(params[1] ? params[1]:bidix.basename(window.location.toString())), params[3])]);
	} else {
		prompt = this.label.promptOption;
	createTiddlyButton(place, label, prompt, function() {config.macros.upload.action(params);}, null, null, this.accessKey);

config.macros.upload.action = function(params)
		// for missing macro parameter set value from options
		if (!params) params = {};
		var storeUrl = params[0] ? params[0] : config.options.txtUploadStoreUrl;
		var toFilename = params[1] ? params[1] : config.options.txtUploadFilename;
		var backupDir = params[2] ? params[2] : config.options.txtUploadBackupDir;
		var uploadDir = params[3] ? params[3] : config.options.txtUploadDir;
		var username = params[4] ? params[4] : config.options.txtUploadUserName;
		var password = config.options.pasUploadPassword; // for security reason no password as macro parameter	
		// for still missing parameter set default value
		if ((!storeUrl) && (document.location.toString().substr(0,4) == "http")) 
			storeUrl = bidix.dirname(document.location.toString())+'/'+config.macros.upload.defaultStoreScript;
		if (storeUrl.substr(0,4) != "http")
			storeUrl = bidix.dirname(document.location.toString()) +'/'+ storeUrl;
		if (!toFilename)
			toFilename = bidix.basename(window.location.toString());
		if (!toFilename)
			toFilename = config.macros.upload.defaultToFilename;
		if (!uploadDir)
			uploadDir = config.macros.upload.defaultUploadDir;
		if (!backupDir)
			backupDir = config.macros.upload.defaultBackupDir;
		// report error if still missing
		if (!storeUrl) {
			return false;
		if (config.macros.upload.authenticateUser && (!username || !password)) {
			return false;
		bidix.upload.uploadChanges(false,null,storeUrl, toFilename, uploadDir, backupDir, username, password); 
		return false; 

config.macros.upload.destFile = function(storeUrl, toFilename, uploadDir) 
	if (!storeUrl)
		return null;
		var dest = bidix.dirname(storeUrl);
		if (uploadDir && uploadDir != '.')
			dest = dest + '/' + uploadDir;
		dest = dest + '/' + toFilename;
	return dest;

// uploadOptions Macro

config.macros.uploadOptions = {
	handler: function(place,macroName,params) {
		var wizard = new Wizard();
		var markList = wizard.getElement("markList");
		var listWrapper = document.createElement("div");
		var uploadCaption;
		if (document.location.toString().substr(0,4) == "http") 
			uploadCaption = config.macros.upload.label.saveLabel;
			uploadCaption = config.macros.upload.label.uploadLabel;
				{caption: uploadCaption, tooltip: config.macros.upload.label.promptOption, 
					onClick: config.macros.upload.action},
				{caption: this.cancelButton, tooltip: this.cancelButtonPrompt, onClick: this.onCancel}
	options: [
	refreshOptions: function(listWrapper) {
		var opts = [];
		for(i=0; i<this.options.length; i++) {
			var opt = {};
			opt.option = "";
			n = this.options[i];
			opt.name = n;
			opt.lowlight = !config.optionsDesc[n];
			opt.description = opt.lowlight ? this.unknownDescription : config.optionsDesc[n];
		var listview = ListView.create(listWrapper,opts,this.listViewTemplate);
		for(n=0; n<opts.length; n++) {
			var type = opts[n].name.substr(0,3);
			var h = config.macros.option.types[type];
			if (h && h.create) {
	onCancel: function(e)
		return false;
	wizardTitle: "Upload with options",
	step1Title: "These options are saved in cookies in your browser",
	step1Html: "<input type='hidden' name='markList'></input><br>",
	cancelButton: "Cancel",
	cancelButtonPrompt: "Cancel prompt",
	listViewTemplate: {
		columns: [
			{name: 'Description', field: 'description', title: "Description", type: 'WikiText'},
			{name: 'Option', field: 'option', title: "Option", type: 'String'},
			{name: 'Name', field: 'name', title: "Name", type: 'String'}
		rowClasses: [
			{className: 'lowlight', field: 'lowlight'} 

// upload functions

if (!bidix.upload) bidix.upload = {};

if (!bidix.upload.messages) bidix.upload.messages = {
	//from saving
	invalidFileError: "The original file '%0' does not appear to be a valid TiddlyWiki",
	backupSaved: "Backup saved",
	backupFailed: "Failed to upload backup file",
	rssSaved: "RSS feed uploaded",
	rssFailed: "Failed to upload RSS feed file",
	emptySaved: "Empty template uploaded",
	emptyFailed: "Failed to upload empty template file",
	mainSaved: "Main TiddlyWiki file uploaded",
	mainFailed: "Failed to upload main TiddlyWiki file. Your changes have not been saved",
	//specific upload
	loadOriginalHttpPostError: "Can't get original file",
	aboutToSaveOnHttpPost: 'About to upload on %0 ...',
	storePhpNotFound: "The store script '%0' was not found."

bidix.upload.uploadChanges = function(onlyIfDirty,tiddlers,storeUrl,toFilename,uploadDir,backupDir,username,password)
	var callback = function(status,uploadParams,original,url,xhr) {
		if (!status) {
		if (bidix.debugMode) 
		// Locate the storeArea div's 
		var posDiv = locateStoreArea(original);
		if((posDiv[0] == -1) || (posDiv[1] == -1)) {
	if(onlyIfDirty && !store.isDirty())
	// save on localdisk ?
	if (document.location.toString().substr(0,4) == "file") {
		var path = document.location.toString();
		var localPath = getLocalPath(path);
	// get original
	var uploadParams = new Array(storeUrl,toFilename,uploadDir,backupDir,username,password);
	var originalPath = document.location.toString();
	// If url is a directory : add index.html
	if (originalPath.charAt(originalPath.length-1) == "/")
		originalPath = originalPath + "index.html";
	var dest = config.macros.upload.destFile(storeUrl,toFilename,uploadDir);
	var log = new bidix.UploadLog();
	log.startUpload(storeUrl, dest, uploadDir,  backupDir);
	if (bidix.debugMode) 
		alert("about to execute Http - GET on "+originalPath);
	var r = doHttp("GET",originalPath,null,null,username,password,callback,uploadParams,null);
	if (typeof r == "string")
	return r;

bidix.upload.uploadRss = function(uploadParams,original,posDiv) 
	var callback = function(status,params,responseText,url,xhr) {
		if(status) {
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
		} else {
	// do uploadRss
	if(config.options.chkGenerateAnRssFeed) {
		var rssPath = uploadParams[1].substr(0,uploadParams[1].lastIndexOf(".")) + ".xml";
		var rssUploadParams = new Array(uploadParams[0],rssPath,uploadParams[2],'',uploadParams[4],uploadParams[5]);
		var rssString = generateRss();
		// no UnicodeToUTF8 conversion needed when location is "file" !!!
		if (document.location.toString().substr(0,4) != "file")
			rssString = convertUnicodeToUTF8(rssString);	
	} else {

bidix.upload.uploadMain = function(uploadParams,original,posDiv) 
	var callback = function(status,params,responseText,url,xhr) {
		var log = new bidix.UploadLog();
		if(status) {
			// if backupDir specified
			if ((params[3]) && (responseText.indexOf("backupfile:") > -1))  {
				var backupfile = responseText.substring(responseText.indexOf("backupfile:")+11,responseText.indexOf("\n", responseText.indexOf("backupfile:")));
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
		} else {
	// do uploadMain
	var revised = bidix.upload.updateOriginal(original,posDiv);

bidix.upload.httpUpload = function(uploadParams,data,callback,params)
	var localCallback = function(status,params,responseText,url,xhr) {
		url = (url.indexOf("nocache=") < 0 ? url : url.substring(0,url.indexOf("nocache=")-1));
		if (xhr.status == 404)
		if ((bidix.debugMode) || (responseText.indexOf("Debug mode") >= 0 )) {
			if (responseText.indexOf("Debug mode") >= 0 )
				responseText = responseText.substring(responseText.indexOf("\n\n")+2);
		} else if (responseText.charAt(0) != '0') 
		if (responseText.charAt(0) != '0')
			status = null;
	// do httpUpload
	var boundary = "---------------------------"+"AaB03x";	
	var uploadFormName = "UploadPlugin";
	// compose headers data
	var sheader = "";
	sheader += "--" + boundary + "\r\nContent-disposition: form-data; name=\"";
	sheader += uploadFormName +"\"\r\n\r\n";
	sheader += "backupDir="+uploadParams[3] +
				";user=" + uploadParams[4] +
				";password=" + uploadParams[5] +
				";uploaddir=" + uploadParams[2];
	if (bidix.debugMode)
		sheader += ";debug=1";
	sheader += ";;\r\n"; 
	sheader += "\r\n" + "--" + boundary + "\r\n";
	sheader += "Content-disposition: form-data; name=\"userfile\"; filename=\""+uploadParams[1]+"\"\r\n";
	sheader += "Content-Type: text/html;charset=UTF-8" + "\r\n";
	sheader += "Content-Length: " + data.length + "\r\n\r\n";
	// compose trailer data
	var strailer = new String();
	strailer = "\r\n--" + boundary + "--\r\n";
	data = sheader + data + strailer;
	if (bidix.debugMode) alert("about to execute Http - POST on "+uploadParams[0]+"\n with \n"+data.substr(0,500)+ " ... ");
	var r = doHttp("POST",uploadParams[0],data,"multipart/form-data; ;charset=UTF-8; boundary="+boundary,uploadParams[4],uploadParams[5],localCallback,params,null);
	if (typeof r == "string")
	return r;

// same as Saving's updateOriginal but without convertUnicodeToUTF8 calls
bidix.upload.updateOriginal = function(original, posDiv)
	if (!posDiv)
		posDiv = locateStoreArea(original);
	if((posDiv[0] == -1) || (posDiv[1] == -1)) {
	var revised = original.substr(0,posDiv[0] + startSaveArea.length) + "\n" +
				store.allTiddlersAsHtml() + "\n" +
	var newSiteTitle = getPageTitle().htmlEncode();
	revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");
	revised = updateMarkupBlock(revised,"PRE-HEAD","MarkupPreHead");
	revised = updateMarkupBlock(revised,"POST-HEAD","MarkupPostHead");
	revised = updateMarkupBlock(revised,"PRE-BODY","MarkupPreBody");
	revised = updateMarkupBlock(revised,"POST-SCRIPT","MarkupPostBody");
	return revised;

// UploadLog
// config.options.chkUploadLog :
//		false : no logging
//		true : logging
// config.options.txtUploadLogMaxLine :
//		-1 : no limit
//      0 :  no Log lines but UploadLog is still in place
//		n :  the last n lines are only kept
//		NaN : no limit (-1)

bidix.UploadLog = function() {
	if (!config.options.chkUploadLog) 
		return; // this.tiddler = null
	this.tiddler = store.getTiddler("UploadLog");
	if (!this.tiddler) {
		this.tiddler = new Tiddler();
		this.tiddler.title = "UploadLog";
		this.tiddler.text = "| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |";
		this.tiddler.created = new Date();
		this.tiddler.modifier = config.options.txtUserName;
		this.tiddler.modified = new Date();
	return this;

bidix.UploadLog.prototype.addText = function(text) {
	if (!this.tiddler)
	// retrieve maxLine when we need it
	var maxLine = parseInt(config.options.txtUploadLogMaxLine,10);
	if (isNaN(maxLine))
		maxLine = -1;
	// add text
	if (maxLine != 0) 
		this.tiddler.text = this.tiddler.text + text;
	// Trunck to maxLine
	if (maxLine >= 0) {
		var textArray = this.tiddler.text.split('\n');
		if (textArray.length > maxLine + 1)
			this.tiddler.text = textArray.join('\n');		
	// update tiddler fields
	this.tiddler.modifier = config.options.txtUserName;
	this.tiddler.modified = new Date();
	// refresh and notifiy for immediate update
	store.notify(this.tiddler.title, true);

bidix.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir,  backupDir) {
	if (!this.tiddler)
	var now = new Date();
	var text = "\n| ";
	var filename = bidix.basename(document.location.toString());
	if (!filename) filename = '/';
	text += now.formatString("0DD/0MM/YYYY 0hh:0mm:0ss") +" | ";
	text += config.options.txtUserName + " | ";
	text += "[["+filename+"|"+location + "]] |";
	text += " [[" + bidix.basename(storeUrl) + "|" + storeUrl + "]] | ";
	text += uploadDir + " | ";
	text += "[[" + bidix.basename(toFilename) + " | " +toFilename + "]] | ";
	text += backupDir + " |";

bidix.UploadLog.prototype.endUpload = function(status) {
	if (!this.tiddler)
	this.addText(" "+status+" |");

// Utilities

bidix.checkPlugin = function(plugin, major, minor, revision) {
	var ext = version.extensions[plugin];
	if (!
		(ext  && 
			((ext.major > major) || 
			((ext.major == major) && (ext.minor > minor))  ||
			((ext.major == major) && (ext.minor == minor) && (ext.revision >= revision))))) {
			// write error in PluginManager
			if (pluginInfo)
				pluginInfo.log.push("Requires " + plugin + " " + major + "." + minor + "." + revision);
			eval(plugin); // generate an error : "Error: ReferenceError: xxxx is not defined"

bidix.dirname = function(filePath) {
	if (!filePath) 
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(0, lastpos);
	} else {
		return filePath.substring(0, filePath.lastIndexOf("\\"));

bidix.basename = function(filePath) {
	if (!filePath) 
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("#")) != -1) 
		filePath = filePath.substring(0, lastpos);
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(lastpos + 1);
	} else
		return filePath.substring(filePath.lastIndexOf("\\")+1);

bidix.initOption = function(name,value) {
	if (!config.options[name])
		config.options[name] = value;

// Initializations

// require PasswordOptionPlugin 1.0.1 or better
bidix.checkPlugin("PasswordOptionPlugin", 1, 0, 1);

// styleSheet
setStylesheet('.txtUploadStoreUrl, .txtUploadBackupDir, .txtUploadDir {width: 22em;}',"uploadPluginStyles");

	txtUploadStoreUrl: "Url of the UploadService script (default: store.php)",
	txtUploadFilename: "Filename of the uploaded file (default: in index.html)",
	txtUploadDir: "Relative Directory where to store the file (default: . (downloadService directory))",
	txtUploadBackupDir: "Relative Directory where to backup the file. If empty no backup. (default: ''(empty))",
	txtUploadUserName: "Upload Username",
	pasUploadPassword: "Upload Password",
	chkUploadLog: "do Logging in UploadLog (default: true)",
	txtUploadLogMaxLine: "Maximum of lines in UploadLog (default: 10)"

// Options Initializations

// Backstage
	uploadOptions: {text: "upload", tooltip: "Change UploadOptions and Upload", content: '<<uploadOptions>>'}


<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler > fields syncing permalink references jump'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'></div>

<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
Un ''automate cellulaire'' fait jouer en séquence, sur un réseau, des règles qui s'appliquent à une configuration de cellules. L'exemple le plus connu d'automate est le [[jeu de la vie]] ''(Game of Life)''.
*L'automate peut être décrit par les composantes suivantes : dimension, topologie, voisinage ; espace d'états et [[règles]] de transition d'état.
Sur une ligne c'est une dimension, dans le plan, sur une sphère ou un tore (un anneau), deux dimensions, cas le plus courant. On peut en créer à trois dimensions :
ceci n'est pas un automate :
L'image ci-dessus tente de donner à voir des constructions de [[motifs|motif]] à trois dimensions, par exemple avec des petits cubes agrégés en plus gros.

Les bords du plateau de jeu, de la grille, sont aussi éloignés qu'on veut ou, à l'inverse, ils se touchent, réalisant l'équivalent topologique d'un tore (à force d'aller à gauche, on revient par la droite).
Chaque cellule réagit à l'état des cellules voisines, huit sur une grille carrée, six sur un réseau hexagonal (cellules de ruche). Parfois deux rangées de cellules contiguës sont analysées.
*Espace d'états
Une cellule a deux états : vivante ou morte (noire ou blanche ...) On peut définir des jeux avec autant d'états qu'on veut, en les symbolisant par des couleurs.
La grille de jeu peut garder une trace du passage d'une cellule, quand elle a disparu.
*Fonction de transition
La règle la plus importante définit les conditions de vie de la cellule : elle naît, survit ou meurt en fonction de l'état de ses voisines. Exemple dans le [[jeu de la vie]] : survie avec 2 ou 3 voisines vivantes, [[naissance]] avec 3, mort dans tous les autres cas.

À chaque séquence, l'automate calcule le sort de chaque cellule de la grille, puis modifie les états en fonction de ce calcul.
source : futura-sciences.com

Les populations de bactéries et tissus présentent bel et bien des cellules qui sont disposées en couches et, de forme polygonale, ont un nombre de voisins variable avec une moyenne de six à sept.
La [[croissance]] est localement favorisée ou inhibée, de manière assez mécanique, par l'état de l'environnement proche - une ou deux couches de cellules qui captent la nourriture, protègent des agressions extérieures, occasionnent une pression physique, &c.

retour - //[[plan du site]]//
//close// pour arrêter.

Lire l'image comme une BD : le bloc disparaît ou se transforme en hexagone avec l'ajout d'une cellule contiguë à un côté ou un coin. Avec la même opération l'hexagone se multiplie par quatre ; encore une fois un élément disparaît ou explose, selon la position de l'ajout.

retour - //[[plan du site]]//
Un ''canon'' à [[planeurs]] est un motif qui [[évolue|évolution]] en lançant sans trêve des planeurs au cours du jeu.

Il est possible de le créer à partir de deux paires de motifs très [[simples|simple]] sur lesquels viennent s'écraser deux planeurs.
[img[motif gun|http://i471.photobucket.com/albums/rr79/methodood/life_gun0.jpg]]
À gauche les quatre [[motifs|motif]] fixes ; au milieu deux planeurs arrivent ; à droite le canon lance son premier planeur.

Découvert par [[Bill Gosper]] en 1970, (et également dénommé Gosper's gun) le canon résoud en partie le [[problème]] de la régulation de la [[croissance]] du jeu.
On peut ajouter autant d'éléments qu'on veut ; on peut en détruire sélectivement une partie, &c.

On découvrira par la suite qu'il introduit, en collaboration avec d'autres innovations, la possibilité de considérer le [[jeu de la vie]] comme une machine de Turing (//calculateur universel//, outil doté de toutes les propriétés nécessaires pour traiter des algorithmes programmés).

voir aussi : //[[motif]]//
retour - //[[plan du site]]//
Les ''chercheurs'' s'intéressent aux formes particulières, aux régularités, aux processus réutilisables.

Ils ont mis beaucoup de mathématiques du coup, dans le [[jeu de la vie]], dans ce qui aurait pu sembler n'être qu'une [[simulation]] de certains effets d'origine biologique ; une façon de calculer la vie, comme l'ont fait les écologues depuis longtemps. Quelques-uns de ces chercheurs, la plupart mathématiciens, sont cités dans ces pages :

|[[John Conway|Conway]] |inventeur du jeu |
|[[Solomon Golomb]] |créateur des [[polyminos]] |
|[[Martin Gardner]] |journaliste scientifique |
|[[Bill Gosper]] |inventeur du [[canon|canons]] (Gosper's gun) |
|[[Stephen Wolfram]] |thuriféraire des [[automates cellulaires]] |
|[[d'Arcy Thompson]] |biologiste qui a étudié la [[croissance]] des formes dans la nature |

Une solution au problème de la conservation des données numérisées&nbsp;: les mathématiques&nbsp;! Le jeu de la vie&nbsp;pourrait permettre de stocker les conditions initiales extrêmement réduites qui [[génèrent|émergence]] ensuite les données. Le [[problème]] annexe à résoudre est celui d'automates inversibles (comme les méthodes de compression existantes). La méthode :
*coder un texte
*le passer dans un logiciel qui joue le code en question jusqu'à trouver une configuration de taille suffisamment réduite
*stocker la configuration avec le nombre de coups utilisés.
Pour lire le texte, il faut le passer dans l'automate dans l'autre sens avec le nombre de coups voulu.

retour - //[[plan du site]]//
Il faut, pour s'économiser, disposer de modèles, de patrons (patterns), de motifs reconnaissables, faciles à retrouver, soit de mémoire, soit par leurs propriétés marquantes au sein d'un ''classement''. L'alphabet sied mieux aux mots qu'aux formes.

Un classement des [[motifs|motif]] générés dans des environnements de [[règles]] assez dynamiques (dans certaines règles, la croissance est inéluctable, interdisant toute oscillation) montre une belle variété, jointe à une imagination un peu connotée seventies (années 70) :
Natures mortes, bouillons de culture (agars), jardins d'Eden, [[canons]], oscillateurs, souffleurs (puffers), scies, vaisseaux spatiaux, mèches ...

Avant de classer un motif, il faut l'avoir observé! Des programmes sont encore écrits pour vérifier si un motif intéressant se dégage, intéressant parce que présentant une durée de vie importante ([[mathusalems|mathusalem]]), une [[périodicité]] quelconque, &c.
Les classements démontrent surtout que l'oeil recherche, que l'esprit humain est attiré, tant par le mouvement que par la régularité ou par la pérennité, symboles de vie et de sécurité.

L'[[évolution]] du jeu de la vie amène une seconde forme de classement, quelque chose comme l'[[émergence]] d'un méta-classement : les objets sont répertoriés en fonction de leur utilité en tant que briques de constructions sophistiquées. Par exemple, certains effets nécessitent des motifs construits, [[complexes|complexe]], qui feront pivoter un vaisseau à 90° ou 180° : ce sont, dès lors, des réflecteurs.

retour - //[[règles]]//
La ''complexité'', voilà un de ces nouveaux paradigmes que certains n'hésitent pas à classer au rang des tartes à la crème, des redites fatigantes de la pensée actuelle.

Le fait est qu'on s'autorise aujourd'hui à penser la complexité sans s'abriter derrière des puissances incompréhensibles. Le principe de [[simplicité|simple]], le rasoir d'Occam, cherche à éviter d'intercaler trop de couches d'explication inutiles, tels les anges qui font mouvoir les sphères portant les astres.
Il est avéré qu'on dispose d'outils, patiemment construits, pour aborder les phénomènes complexes par l'analyse et la [[simulation]] - forcément réductrice, parfois éclairante - des parties les plus irréductibles. L'[[émergence]] de la complexité à partir d'élément simples est un sujet de réflexion toujours renouvelé.

La notion de Q-tree ou //quadtree// est utilisée pour analyser les régions du plan en sous-région ne contenant qu'un nombre limité de cellules à analyser. Simplifiant ainsi les calculs d'états d'un grand nombre de cellules, des notions de cet ordre permettent d'aborder le complexe avec une performance de traitement acceptable.

Dans son ouvrage, une Nouvelle Science //a New Kind of Science//, [[Stephen Wolfram]] prétend être à la recherche des [[règles]] ultimes qui gèrent l'univers tout entier, qu'il devine forcément simples ... la preuve mettra peut-être un temps équivalent à l'âge de l'Univers à nous apparaître à l'issue d'un calcul monstrueux, même monstrueusement accéléré à l'aide d'[[algorithmes|logiciels]] : on rejoint ici le concept du chef d'orchestre divin faisant parler la musique des sphères et dont on croyait se débarrasser pour de bon.

retour - //[[plan du site]]//
La maîtrise de la ''croissance'' semble une propriété essentielle associée à la vie.

*Il faut se développer à la [[naissance]] : jeunesse, conquête de l'espace extérieur.
*Il faut se renouveler en permanence ensuite : conquête de l'espace intérieur, maturité.

Le chêne de Vercingétorix, Gustave Courbet

Peut-on imaginer l'évolution d'un chêne, entre la plantule issue du gland il y a quelques centaines d'années et aujourd'hui ? Quelles cellules sont nées pour le faire croître ? Elles ont fini par se lignifier, créant la forme en perdant leur vie propre.

Les [[règles]] du [[jeu de la vie]] (amplement décrit dans [[ce site|plan du site]]) cherchent explicitement à émuler cette maîtrise et en fournissent une approximation saisissante : il s'agit d'un coup de maître dans l'art de la [[simulation]] scientifique.

La structuration, le formalisme s'opposent à la croissance ; un [[logiciel|logiciels]], surtout s'il est perçu comme très puissant, ne peut que figer l'état de l'art, jusqu'à ce que les limites qu'il pose implicitement et malgré son concepteur soient perçues.
L'étude du jeu de la vie passe par des paliers, à tout le moins, des paliers de croissance ; [[aujourd'hui|le jeu de la vie et le monde]], le jeu n'est pas mort.

retour - //[[plan du site]]//
D'Arcy Wentworth ''Thompson'', souvent appelé D'Arcy Thompson, est un biologiste et mathématicien écossais (1860-1948).

Il est l'auteur de //On Growth and Form// (1917), qui fit de lui le premier biomathématicien. Il a notamment montré qu'on pouvait passer d'une forme d'une espèce à la forme d'une espèce proche par certaines transformations géométriques.

Son livre, très long, bien écrit, et enrichi de nombreuses illustrations, a enthousiasmé et influencé des générations de biologistes, architectes, artistes et [[mathématiciens|chercheurs]]. //Claude ~Lévi-Strauss// affirma que la notion de transformation structurale ne venait pas tant de la linguistique ou de la logique que de la biologie de Thompson.

retour - //[[chercheurs]]//
Surprise! [[le jeu]] peut encore consister à mettre à contribution un logiciel pour travailler une image quelconque, pourvu qu'elle soit visible par le [[logiciel|logiciels]]. 
//Golly// accepte ainsi de lire toute image au format bitmap (.bmp, &c.) réduite à du noir et blanc.
[img[St Migen|http://i471.photobucket.com/albums/rr79/methodood/stMigen16.png]] 
Le travail peut s'apparenter à ce que l'on obtenait avec l'outil dessin de l'ancien //Hypercard// sous Mac : contour, remplissage au hasard ... aucun ancien château, transformé en mairie, n'a été sacrifié dans le processus. Noter que l'effet de moire n'est dû qu'à la réduction de taille de la copie d'écran.

//[[retour|le jeu]]//
Des ''fractales'' forment les constituants intimes de la structure apparente des nuages, des paysages, des branches d'arbres, des plumes, cailloux et coquillages ... 

[img[légumes| http://farm1.static.flickr.com/124/318347954_1a4cc39bcc.jpg]]

Des [[règles]] [[simples|simple]], à l'image des [[automates cellulaires]], codent leur [[croissance]]. Le terme de fractale est créé en 1975 par //Benoît Mandelbrot// qui s'intéresse à la notion de dimension, au chaos, à la finance ... Le succès du concept, popularisé par un petit bouddha noir au milieu des vagues, est assuré quelques années après.

Le code qui produit ces formes ramifiées est le suivant :
{{{startshape tt
background{b -0.1}
rule mm {CIRCLE{s 20 1}
3*{x 10}CIRCLE{x -10 s 2}
2*{f 90}mm{r -135 x -10 s 0.72} }
rule tt {8*{r 45 y 1}mm{r 90 x 60 b -1}
tt{s 0.85 r 10} } }}} - (c) Thomas Labarussias

[img[Buddha |http://upload.wikimedia.org/wikipedia/commons/thumb/9/99/Buddhabrot.jpg/800px-Buddhabrot.jpg]]

Leurs propriétés remarquables sont une grande [[complexité|complexe]] avec des règles simples et récursives (le calcul réutilise le résultat du calcul précédent), et leur autosimilarité à plusieurs échelles (la partie est ramifiée comme le tout). Cela en fait une application de choix pour tester des logiciels de simulation et de calcul : la puissance d'un logiciel destiné à réaliser une vingtaine de calculs par élément, sur de grandes configurations, à chaque coup, pendant des dizaines de milliers de coups, n'est rien sans une algorithmie efficace.
Leur utilisation dans le dessin de paysages, par exemple pour des films d'animation, a été une heureuse surprise.

retour - //[[plan du site]]//
Cet ''historique'' sera bref et personnel.

[[John Conway|Conway]], à qui ce site est dédié, cherche une méthode pour simuler des phénomènes vitaux. C'est dans les années 1970.
Il met en place des règles qui assurent une [[évolution]] relativement imprévisible à sa [[simulation]]. Et puis il demande de l'aide autour de lui : un prix de 50$ est proposé, pour résoudre un [[problème]] crucial de [[croissance]].
La communauté de [[chercheurs]], mathématiciens, biologistes ... se met très tôt sur la brèche.

Le [[jeu de la vie]], //game of Life// en anglais, que l'on abrège couramment en Life, porte un nom tout à fait banal. "Game of life" deviendra, dans le courant New Age, synonyme du défi de la vie humaine et des moyens (souvent payants) d'y faire face.
Son objet reste particulier en ce sens qu'il n'y a pas de joueurs. Il y a des [[règles]] de croissance des cellules, un plateau de jeu ou grille et des pions qui représentent les cellules. Très tôt ces éléments deviennent virtuels et il n'y a plus qu'à observer, en noir et blanc, comment les bactéries poussent.

Le jeu grandira dans une communauté très motivée et très ésotérique. Ses membres parlent de [[canons]] à [[planeurs]], de flottilles, de [[pentominos|polyminos]] ... tout cela en phase avec l'air du temps.
Parallèlement à la naissance de l'informatique et à la diffusion des productions artistiques, on voit les possibilités du jeu de la vie s'étendre. Les années 70, ce sont encore les cliquetis trop peu étoffés des Animals, bientôt supplantés par les symphonies encourageantes de Pink Floyd, qui s'échangent sur des cassettes audio.
Avec le système d'exploitation Unix, on propose un programme gratuit de jeu pour une émulation graphique : //Xlife//. Le fameux //Macintosh// d'Apple offre un logiciel, //Hypercard//, doté de possibilités graphiques intéressantes, appliquées à un dessin composé de points (mode bitmap). Il est possible de détourer, brouiller au hasard, inverser ... les points, obtenant des effets parfois analogues à ceux d'un jeu de la vie utilisé en mode "pas à pas".

Les années 90, ce sont les premières vidéos, les sites personnels avec le développement d'Internet. Des logiciels réalisés par des passionnés s'échangent et donnent à voir une floraison de formes où l'esthétique le dispute à la rigueur dans un élan stochastique et [[fractal|fractales]] qui sent toujours un peu l'emballement mystique. J'ai essayé quelques [[logiciels]] à cette époque, je n'avais pas encore Internet.
C'est le buzz, l'engouement, corrélé avec l'explosion de l'informatique individuelle; puis une relative stagnation, on attend quelques belles découvertes et le jeu repart à la conquête du monde scientifique et artistique.
Bientôt éclot un monde 2.0 où les journalistes semblent découvrir l'essor du travail collaboratif. La communauté des mordus de //Life// doit sourire.
Mais ... l'état de l'art est comparable, trente-neuf ans après, à ceui de la métallurgie à ses débuts - on fait des épées lourdes et moches, pas de vélos, de frigos ni de voitures ou de tour Eiffel.

Ce qui précède ne représente que mon point de vue. Quant aux détails de la naissance du jeu :

!!Officiellement ...
//Source// : fr.wikipedia.org
[[Conway]] était intéressé par un problème présenté vers les années 1940 par un mathématicien renommé, //John von Neumann//.
Ce dernier essayait de trouver une hypothétique machine qui pourrait s'auto-reproduire. Il y parvint en construisant un modèle mathématique aux règles [[complexes|complexe]] sur un repère cartésien. Conway essaya de [[simplifier|simple]] les idées de von Neumann ; couplant ses succès précédents sur les réseaux de Leech avec ses travaux sur les machines auto-réplicantes, il donna naissance au Jeu de la Vie.

Le premier contact que le grand public eut avec ces travaux se fit en 1970 à travers une publication dans //Scientific American// (et sa traduction française [[Pour la Science|sources]]) dans la rubrique de [[Martin Gardner]] : //Mathematical Games// ou (Récréations Mathématiques).

suite - //[[le jeu de la vie et moi]]//
retour - //[[plan du site]]//
//(Ok pour arrêter)//
<<tabs terch interchange interchange [[interchange0]] Ok Ok Ok>>
Composé de six blinkers de période 2, ce motif, ''interchange'', illustre la déroutante plasticité du jeu. Il suffit de disposer trois cellules en ligne pour créer un blinker : la cellule centrale survit (règle 1, 2 voisins), les cellules aux extrémités disparaissent, (règle 1, 1 seul voisin) mais les cellules situées à angle droit naissent (règle 2, trois voisins).
Le ''jeu de la vie'' est devenu le plus connu, sinon le plus utilisé, des [[automates cellulaires]].

Ses [[règles]] constituent un coup de génie du fait de leur simplicité et de leur efficacité à [[simuler|simulation]] la vie d'une population.

Chaque cellule réagit à l'état de ses voisines.
On décide de la survie avec 2 ou 3 voisines vivantes, [[naissance]] avec 3, mort dans tous les autres cas.
Toutes les cellules sont analysées, on calcule leur prochain état, on joue tous les changements et on recommence l'analyse.

Ceci crée une réelle dynamique, avec des effets qu'on peut comparer, globalement, à des incendies de forêt, à des sursauts, des batailles. Émulant ainsi ... la cybernétique du vivant, entre charybde et scylla, redondance et accidents, qui doit bien avoir un aspect chaotique, même avec des règles [[simples|simple]] à formuler. 

retour - //[[plan du site]]//
Le [[jeu de la vie]] s'est inspiré des phénomènes de [[croissance]] tels qu'ont su les voir et les analyser des hommes de science comme [[d'Arcy Thompson]].

Part of a dragonfly's wing from On Growth and Form. D'Arcy Thompson (Cet forme : aile de libelllule).

Le [[jeu de la vie]] a inspiré et continue d'inspirer une partie de nos vies, des décors urbains, des jeux électroniques et des créations artistiques.
[img[lvov | http://farm4.static.flickr.com/3586/3347201898_fc86fd2eb7.jpg?v=0]]

Ou bien, c'est qu'on ne voit plus le monde du même oeil.
[img[Chris Dessaigne|http://2photo.ru/uploads/posts/600px/4268/20091223/chris-dessaigne/23_12_2009_0098415001261570184_chris-dessaigne.jpg]]






[img[ming life|http://23.media.tumblr.com/tumblr_krroxdDIrz1qz59f5o1_500.jpg]]
ming life




Taryn Simon : Hanford facility

via APOD (NASA) : 2013 February 9 - The Great Meteor Procession of 1913

Voir aussi : http://2photo.ru/en/post/18072 lightscapes

[[easter egg]]

retour - //[[plan du site]]//
!!Conditions initiales
Les règles de construction d'un [[motif de départ|motif]] sont devenues très vite extrêmement [[complexes|complexe]] par rapport aux règles de fonctionnement de l'automate (ces [[règles]] portent sur la vie et la mort des cellules à chaque étape et s'énoncent en quelques mots).

Un [[motif]] qui crée des [[planeurs]] à intervalles réguliers - [[canon|canons]], glider gun - se décrit par la position initiale des cellules qui le composent : l'effet, pour ne dépendre que de la position adoptée et des règles de vie, reste impressionnant et, surtout, rien ne dit comment retrouver cette position ou en imaginer une similaire.

*De même, le jeu de la vie ne pouvait naître qu'à une époque capable de l'utiliser, techniquement, intellectuellement. L'Antiquité ne tentait pas de simuler une [[évolution]] qu'elle niait plutôt ; tout était écrit.

!!Évolution dans le jeu
Le déroulement d'une séquence du jeu basée sur un arrangement initial désordonné des cellules se termine vite par l'image de combats sporadiques au milieu d'un étang ou d'un océan de membres morts, à l'image aussi de la //carte sans nom// du tarot ; océan d'où se sont échappés quelques messagers courant leur marathon dans un désert gris : un chaos de poussières.
Le contraste avec les effets obtenus par ceux qui les maîtrisent n'en est que plus saisissant, à l'exemple d'une échelle de Jacob qui se développe à l'infini en calculant la [[suite des nombres premiers|premiers]].

La moindre modification apportée aux règles donne des comportements globaux très différents, tout en restant dans des motifs de dispersion, de [[croissance]], de circulations intenses. On retrouve des phénomènes à l'oeuvre, regroupés aujourd'hui sous l'appellation de [[fractales]].

!!Évolution du jeu
Des processus vitaux sont aujourd'hui mieux compris parce qu'on a monté une [[simulation]] dont l'intérêt est de rendre compte d'un phénomène de manière suffisamment précise à partir de très peu de paramètres : le [[jeu de la vie]] entre dans cette classe d'outils pour biologistes et spécialistes de l'écologie.

Mais le [[devenir|historique]] du jeu lui-même et de la science des [[automates cellulaires]] va finir par ressembler ... à une simulation, telle les jeux actuels de la biologie en somme, grands utilisateurs de ces simulations elles-mêmes : juste retour. 

On parle de l'augmentation miraculeuse de la puissance des ordinateurs ... balivernes! Il ne s'agit que de l'investissement qu'on consent à consacrer à les améliorer. 
Au même titre que les pyramides, les routes romaines, les moulins et abbayes du moyen-âge ... la croissance, le progrès, cela ne dépend que du nombre d'esclaves.

On pourrait croire que le [[jeu de la vie]] est passé de mode ? Un [[wiki]], un [[site|sources]] ou un [[logiciel|logiciels]] se créent, toujours plus complets, attrayants, efficaces.
On découvre encore des motifs intéressants, même si c'est moins d'une dizaine par an selon ce graphique, qui ne retient que ceux pour lesquels la date est certaine (cf [[LifeWiki|http://www.conwaylife.com/wiki/index.php?title=LifeWiki:About]]).

retour - //[[historique]]//
Je retrouve incidemment le royaume du [[jeu de la vie]] dans une [[revue|sources]] scientifique française inspirée d'outre-Atlantique.

Partant de [[simulations|simulation]] à base de [[cellules|automates cellulaires]], modélisées par des points ou des carrés sur un écran, on est arrivés à utiliser des [[métacellules]] et à quelques théorèmes, outils et notations bien [[évolués|évolution]] depuis que je m'intéressais au sujet.

Il me revient le souvenir des heures passées où le ballet des cellules sur un vieil écran - c'était avant que je connaisse Internet - me fascinait. J'étais le maître du jeu et j'utilisais un ordinateur, je créais des effets merveilleux sans savoir programmer!
L'envie me saisit alors de reprendre ce dossier des [[automates cellulaires]] pour en faire l'[[historique]], l'apologie et plus si affinité.

//(Ok pour arrêter)//
<<tabs bloc bloc bloc [[bloc]] Ok Ok Ok>>

Quel est l'importance de ce jeu aujourd'hui ? la règle n'est pas si universelle qu'il ne faille recourir à une multitude de médiums pour l'utiliser ou la montrer. La [[complexité|complexe]] croît de partout dans le monde.
Le bouton à quatre trous (1872), la bicyclette, l'énoncé du théorème des quatre couleurs, l'impossibilité d'une bijection entre les entiers et les points d'une droite, le jeu de la vie de Conway, les Post-it, les figures impossibles et d'autres découvertes récentes sont d'une grande [[simplicité|simple]] et on s'explique mal qu'elles aient tant tardé à surgir dans l'esprit humain.
Sinon que la possibilité d'imaginer est elle-même contrainte par les conditions dans lesquelles l'esprit se complaît à évoluer. L'individualisme, les droits de l'homme sont récents et étaient irréductiblement impertinents dans les empires égyptiens, chinois, romains (antique comme catholique).

suite - //[[le jeu de la vie et le monde]]//
|!français|!définition (type) |!anglais|
|[[canon|canons]] |motif émettant des planeurs|gun |
|[[motif]]|tout arrangement remarquable de cellules, qu'il soit stable ou non |pattern|
|[[planeur|planeurs]] |motif mobile (P4)* se déblaçant en oblique|glider |
|calculateur de nombres [[premiers]]|configuration assez étendue, qui génère des motifs avant de supprimer ceux dont le rang n'est pas un nombre premier|primer |
|cellule|unité minimale dans une grille du jeu, qui peut présenter un des états autorisés à un moment donné, tels que vie ou mort |cell|
|clignotants|le plus [[simple]] des motifs périodiques (P2) : trois points alignés passent de l'horizontale à la verticale : <<slider terch [[interchange]] "voir ici">> |blinker|
|configuration|motif ou ensemble de motifs à un moment du jeu ; peut se stocker sous forme de [[fichier|logiciels]] .rle, .life, &c.|configuration|
|état|statut, vivant ou non, d'une cellule ; les transitions sont [[naissance]], survie ou mort dans un jeu à 2 états|state|
|feu tricolore|formé de quatre clignotants|traffic lights|
|itération|synonyme de tour de jeu, coup, tic d'horloge|iteration|
|jardin d'Eden **|motif où l'on ne peut pas arriver en suivant les règles (ci-dessous)|garden of Eden|
|pentadécathlon|motif périodique (P15), utilisé pour renvoyer des planeurs <<slider terch [[pentadecathlon]] "voir ici">>|pentadecathlon|
|[[périodicité]]|"P", nombre de coups pour qu'un motif variable revienne à un état donné|periodicity|
|réseau|plateau de jeu, grille|grid|
|stable|motif immobile ou périodique, sans [[évolution]]|stable|
|vaisseau spatial |type de motif mobile, souvent utilisé en flottille|LWSS, lightweight space ship |
(*) P dénote la périodicité

(**) deux des trois jardins d'Eden connus ...

//Voir aussi : [[classement]]//
retour - //[[plan du site]]//
!!Exemples de logiciels
|applet ([[math.com|http://www.math.com/students/wonders/life/life.html]])|petit programme avec un catalogue de motifs, vaisseaux, &c.|
|[[CAV|http://www.rennard.org/alife/french/ac.html]]|simulation très riche, exploitant des règles assez exotiques|
|[[Golly|http://golly.sourceforge.net/]]|multi plateforme, le plus complet et le plus puissant testé, basé sur //~HashLife*//|

(*) //~HashLife// offre la possibilité de stocker des résultats partiels de calculs, tels l'évolution du contenu d'un carré à partir d'une population donnée. Cela ne nécessite plus que de gérer les interactions entre des carrés voisins, au lieu de tout recalculer à chaque tour.

De nombreux autres logiciels sont disponibles gratuitement sur le net. La plupart proposent le paramétrage des règles de [[naissance]] et de survie, un catalogue de configurations initiales, un zoom, un mode pas à pas. Golly permet de copier-coller les motifs (ou même du texte, converti en points). Le format des fichiers utilisé est basé sur une compression des données lisible à l'oeil nu.

Wikipedia - extrait de la règle 110 de [[Wolfram|Stephen Wolfram]] (automate [[unidimensionnel|automates cellulaires]], mais avec les états successifs empilés)

//Voir// aussi : [[sources]], pour des sites et des listes de liens spécialisés.

!!Format de fichiers
Pour importer ou exporter des motifs, le format //.rle// offre une [[simplicité|simple]] et une portabilité intéressante.
Exemple, un [[canon|canons]] à planeurs peut se décrire par ce schéma :<html><pre>

Avec le format //.rle//, il est résumé ainsi :
{{{x = 36, y = 9, rule = B3/S23}}}
Ce qui se lit : Sur une grille de 36 par 9, avec les règles {{{B3/S23}}} "3 = naissance, 2 ou 3 = survie"
{{{24bo$}}} Assembler 24 blancs (24b), une cellule (o), passer à la ligne ($) ... &c.

L'intérêt est que le logiciel //Golly//, présenté ci-dessus, accepte de lire un fichier à ce format compressé mais aussi d'échanger par copier-coller les deux types de descriptions ci-dessus, schéma ou encodage.
Le nom du format .rle est Run-length encoding, créé par //Dave Buckingham//. Un logiciel graphique, //the Gimp//, exporte des images bitmap (et noir et blanc) au format run-length :
# image - mode - niveaux de gris
# couleur - postériser - 2 niveaux
# format bmp - run length.

Il est encore possible de copier dans //Golly// certaines images telles quelles, ou du texte, ce qui donne des motifs d'apparence aléatoire, comme dans le [[titre|SiteSubtitle]] de cette page :
<html><pre>We never see one side of things; 
The other night dive in a frightening mystery. 
The man suffered the yoke without knowing the causes. 
All he sees is short, unnecessary and fleeing. 

retour - //[[plan du site]]//
Si des cellules naissent et meurent dans une [[simulation]] c'est aussi parce que, dans la vie réelle, la ''lutte'' pour la [[survie|règles]] n'est pas une figure de style.

Toute vie est confrontée à des problèmes de [[croissance]] vitaux. La forêt est limitée par la mer. Les coraux, les plus gros organismes vivants, sont aujourd'hui menacés, non que le sol se dérobe sous leurs pieds, ou que la mer monte, mais parce que le biotope est malade.

Sans être Malthus ni Machiavel, qui veut décrire correctement les phénomènes à l'oeuvre doit prendre en compte cette dimension. La science ne peut rien prévoir au-delà de quelques instants avec des équations et des formules dans le domaine du vivant, c'est pourquoi elle s'en remet à des calculs confiés aux [[automates cellulaires]] qui ne font qu'éclairer le chemin - telle voie est sans issue - mais on aurait mis des siècles à s'en apercevoir sinon.

La reproductibilité de l'expérience n'est pas là où on l'attend - si on coupe les pattes à une sauterelle, elle devient sourde, car elle ne saute plus ; mais on n'a rien appris. Les mathématiciens ne torturent pas la nature, à l'instar de Frankenstein, au contraire ils tentent d'observer avec des moyens ludiques et puissants.

retour - //[[plan du site]]//
Un ''mathusalem'' a une durée de vie intéressante.

L'original figure dans la bible : grand-père de Noé, mort à 969 ans peut-être du déluge ...
Les [[chercheurs]] du jeu de la vie en publient de beaux. Le record est [[Lidka|http://www.conwaylife.com/wiki/index.php?title=Lidka]] : 13 cellules en donnent 1 623 au bout de 29 055 coups.

Ce motif, dénommé //mymath1//, part de 18 cellules et en donne 858 au bout de 6 357 coups. 51 blocs, 40 clignotants, 39 vaisseaux ... et 21 planeurs. La [[recherche|problème]] de nouveaux records est à la portée de chacun.
Le code .rle pour le jouer est : <html><code>x = 9, y = 15, rule = B3/S23<br>

Celui-ci, //4733//, part de 16 cellules et en produit 921 avec le nombre de coups éponyme.
.rle : <html><code>
x = 8, y = 12, rule = B3/S23<br>
retour - //[[règles]]//
<html><a href="http://cythere.tiddlyspot.com">Cythère voyages mythiques    </a>
<a href="http://dovecots.tumblr.com/"> Dovecotez & updwellingz  </a>
<a href="http://precession.tiddlyspot.com"> précession - tout sur la précession  </a>
<a href="http://toogood.tiddlyspot.com">Too Good ! tarot	   </a>
<a href="http://site.voila.fr/rosesjerusalem">Des roses rouges pour Jérusalem   </a>
<a href="http://apfyt.blogspot.com/">Ha'penny for you Thot   </a>
<a href="http://rvstman.tumblr.com/">SIP and clichés - statistically cliché   </a>
<a href="http://queneauddly.tiddlyspot.com">un conte à votre façon   </a>
<a href="http://lagazettedelarbre.tiddlyspot.com">La gazette de l'arbre   </a>
<a href="http://rostrata.tiddlyspot.com">association pour la découverte des rostres   </a>
<a href="http://couleur.tiddlyspot.com" > couleur! découverte et rouge	  </a>
<a href="http://methodood.tiddlyspot.com">Robin Hood - Robin + method : methodood     </a></html>
Un motif est constitué de tout arrangement remarquable de cellules, qu'il soit stable ou non.

[img[2P rotors|http://pentadecathlon.com/rotors/images/R3-01-casing.sof?page&name&display=rotorcasing]]

Si les premiers motifs ont été observés au hasard, il a très vite été nécessaire d'écrire des programmes pour détecter les motifs intéressants, par exemple présentant une période donnée, dans les configurations générées au par le jeu.
Les règles de construction d'un ''motif'' de départ sont devenues très vite extrêmement [[complexes|complexe]] par rapport aux règles de fonctionnement de l'automate (ces [[règles]] portent sur la vie et la mort des cellules à chaque étape et s'énoncent en quelques mots).

!!Catalogue des motifs
*structures stables (déchets, still life) : sans contact avec d'autres cellules, n'[[évoluent|évolution]] plus
*structures périodiques (oscillateurs) : repassent par le même état au bout d'un certain nombre de coups
*structures mobiles : [[planeurs]] (gliders), vaisseaux spatiaux, cas particulier de périodiques qui se déplacent sur la grille.
Les motifs sont décrits avec leur taille, leur [[périodicité]] éventuelle (P) et le nombre de coups avant stabilité. Le [[bloc]] est stable, le crapaud (toad) a une période de 2. De plus, le //glider// se déplace en oblique (~H1V1). La recherche de nouveaux motifs et leur [[classement]] demande du temps, de l'énergie, des [[logiciels]] spécialisés et des financements.

*Une configuration initiale dessinée au hasard ou soigneusement choisie avec de belles symétries a des chances non négligeables de finir dans un [[chaos|le jeu de la vie et le monde]] de déchets : quelques formes stables ou périodiques éparses. Néanmoins, si toute la configuration est symétrique au départ, elle reste symétrique.
Un [[mathusalem]] comme le [[pentamino|polyminos]] "R" (R-pentamino) est composé de 5 cellules et se stabilise au bout de 1 103 coups en donnant naissance à 6 [[planeurs]], 8 blocs ([[::|bloc]]), 4 clignotants (blinkers), 1 bateau, un vaisseau (ship), quelques cellules (beehive) et une miche de pain (loaf). Ce motif est le premier pour lequel un planeur fut observé, à la génération 69.
*Un motif soigneusement choisi, construit peut créer des effets, du plus [[simple]] comme le [[canon|canons]] à [[planeurs]], au plus compliqué comme le calcul des nombres [[premiers]].

retour - //[[plan du site]]//
On sait maintenant faire fonctionner des ''métacellules''.

Il s'agit de motifs de milliers de points de côté, qui vivent comme une [[simple]] cellule. Ce n'est rendu possible que par une augmentation considérable de la puissance utilisée à enregistrer des catalogues de positions élémentaires dans des tables, exploitées par un [[programme|logiciels]], //hashlife//.

[img[metacell | http://2.bp.blogspot.com/_TO9A8O1Azeg/RjXRd_ADniI/AAAAAAAAAFc/Sy33ZKyIl2k/s400/HexCounterZoom8.png]]
quelques métacellules

//Voir// les [[sources]] pour plus de détails.
voir aussi : //[[motif]]//
retour - //[[plan du site]]//
''Naissance'' et mort.

La [[survie|règles]] ne se mérite pas, elle se calcule. 
La grâce divine, la loi mathématique est bien la seule actante, efficace, le mérite repart aux oubliettes, la liberté n'est qu'une gravure de mode périmée.
Autant nous sommes enclins à donner crédit à de telles [[simulations|simulation]] de la vie et de l'univers même, autant nous ne songerions pas à nous les appliquer ... faisant reconnaître une nouvelle fois notre désir d'irréductibilité, notre prétendu caractère de bestiau [[évolué|évolution]] et unique.

retour - //[[plan du site]]//
<<tabs tadec pentadecathlon pentadecathlon [[pentadecathlon0]] Ok Ok Ok>>
[img[pentadecathlon |http://www.ericweisstein.com/encyclopedias/life/gifs/relay.gif]]
le ''pentadecathlon'' peut réfléchir un planeur à 180° : ici, deux de ces motifs jouent au ping-pong
Un article s'affiche sur la page en cliquant sur un lien. 
La liste des articles ouverts est affichée sous le titre de la page.
Pour fermer un article : bouton "close" dans son menu en haut à droite, pour ne conserver qu'un article, "close others".

[[le jeu de la vie et moi]]
[[le jeu de la vie et le monde]]

!![[automates cellulaires]]
[[automates cellulaires]]
[[jeu de la vie]]


[[d'Arcy Thompson]]
[[John Conway|Conway]]
[[Bill Gosper]]
[[Martin Gardner]]
[[Solomon Golomb]]
[[Stephen Wolfram]]
!!en pensée
[[le jeu]]

!!en pratique
[[À propos de ce site]]
[[Canons|canons]] et ''planeurs'' sont emblématiques d'une époque pionnière du [[jeu de la vie]].

Le planeur est un motif assez [[simple]], utilisant cinq cellules, et qui progresse en oblique à chaque tour du jeu. L'effet est uniquement dû aux [[règles]] de vie des cellules :
[img[glider|http://plus.maths.org/issue20/features/conway/LifeAnim.gif]][img[glider WP|http://upload.wikimedia.org/wikipedia/commons/thumb/7/7e/GameOfLife_Glider_Animation.gif/100px-GameOfLife_Glider_Animation.gif]]

Le planeur est l'une des briques de base, des influx vitaux du jeu : il propage une information d'un motif à l'autre à une vitesse mesurée ; il interagit avec d'autres cellules, d'autres planeurs parfois, créant, détruisant, réorganisant, initiant des réactions en chaîne.

Les planeurs permettent encore se synthétiser un grand nombre d'autres motifs à partir de collisions! //Voir// la [[documentation|sources]], et un exemple plus complexe qui construit un [[canon|canons]]. 

voir aussi : //[[motif]]//
retour - //[[plan du site]]//
Les ''polyminos'' sont une extension naturelle des dominos.

Le domino de base accole deux carrés ; il y a des triminos, tétraminos, pentaminos qui en accolent trois, quatre, cinq ... 
Inventés par [[Solomon Golomb]] pour des besoins de combinatoire, des recherches sur les pavages du plan, leur aspect ludique a fait le succès du jeu électronique //Tetris//.

Pour se rappeler de leurs formes, [[Martin Gardner]] recommandait de se souvenir de la formule : "//Filipino tuvwxyz//".

Dans le [[jeu de la vie]], ces formes [[simples|simple]] ont été étudiées pour la variété de leurs [[évolutions|évolution]]. Le [[pentamino "R"|motif]] (ou "F") crée des formes durant plus de 1 000 coups.

voir aussi : //[[motif]]//
retour - //[[plan du site]]//
Les nombres ''premiers'' ont toujours constitué un sujet d'études de choix pour les mathématiciens.

Ce sont les nombres qui n'ont pas de diviseurs. L'absence de régularité de la série 2, 3, 5, 7, 11, 13 ... et la facilité avec laquelle on crée des nombres non premiers, en en multipliant deux quelconques, génère d'innombrables questions.
La difficulté de prouver qu'un nombre très grand est ou non premier est à la base des méthodes actuelles de cryptographie.

Dans ce contexte, le [[jeu de la vie]] a démontré sa capacité en tant que calculateur universel*. Une certaine configuration initiale, assez étendue, génère des rafales de petits [[motifs|motif]] avant de supprimer ceux dont le rang n'est pas un nombre premier.

Dans cet exemple, un vaisseau léger (LWSS) de rang n passe le dernier obstacle (en bas à gauche) lorsque  6n-1 et 6n+1 sont premiers.

Note - * - un //calculateur universel//, ou machine de Turing, est une machine programmable, ou un logiciel, capable théoriquement de prendre en charge tout ce qui peut s'imaginer comme calcul ou procédure réalisable à la main (avec un temps et une mémoire infinie).

voir aussi : //[[motif]]//
retour - //[[plan du site]]//
Le [[chercheur|chercheurs]] adore le moment inattendu où il trouve un nouveau ''problème''. Délices de la spéculation.

Trouvera-t-on les [[règles]] qui permettent de jouer automatiquement au jeu de go ? Quelle est l'issue de la partie idéale ?
[img[jeu de go|http://upload.wikimedia.org/wikipedia/commons/thumb/b/b4/Go_Regeln_4.png/120px-Go_Regeln_4.png]]

Le [[jeu de la vie]] de Conway conserve les //symétries// : un [[motif]] initial qui présente une ou deux symétries (axes horizontal et vertical) ne donne que des configurations symétriques. Existe-t-il des vaisseaux (motifs qui se déplacent à chaque coup) symétriques ? Quelles règles offrent l'opportunité d'expérimenter les brisures de symétries qui décrivent si bien notre univers actuel ?

retour - //[[plan du site]]//
L'importance de la ''périodicité'', des phénomènes périodiques, se mesure aussi avec le fait que la vie sur Terre se calque presque toujours sur les alternances jour/nuit, froid/chaud, présentes parmi les conditions initiales de son apparition et qui prévalent encore.

Nous avons des [[complexes|complexe]] de protéines toujours en action, adaptés à se caler sur des rythmes proches de ceux de la journée (circadiens). Nous avons une pensée, un oeil entraînés à percevoir les [[rythmes|rythme]] et les mouvements périodiques, prometteurs, sans doute, d'informations sur l'environnement, la nourriture, le gibier.
Une [[simulation]] vitale sans phénomènes périodiques est sans doute bonne à mettre au panier. En comparaison, un jeu tel que le [[jeu de la vie]] produit tout un bestiaire, des milliers de [[motifs|motif]] périodiques différents. Pour ce jeu, presque toutes les périodes ont été découvertes, avec des trous pour 19, 23, 31, 38, 41, 43 et 53.

retour - //[[plan du site]]//
Le ''rythme'' crée des mondes (et les détruit un jour).

La vie se nourrit d'éléments rythmiques : battements de coeur, marche et course, chants et danses ; jour et nuit, retour des saisons et des astres.
Une [[simulation]] ([[automates cellulaires]], [[jeu de la vie]]) ne saurait se passer d'horloge : à chaque coup les positions sont toutes recalculées.
Certains motifs présentent une [[périodicité]], se répétant au bout de deux, trois, quatre coups ... Mais le rythme s'impose pour élaborer des systèmes plus [[complexes|complexe]] à l'intérieur même des [[règles]] extrêmement [[simples|simple]] du jeu : il est nécessaire à la //synchronisation// d'actions qui visent à construire, à négocier (portes logiques oui-non), &c.

//Voir// des exemples dans les articles suivants : [[interchange]], [[canons]], [[lexique]] (clignotants, planeurs, périodicité) et [[premiers]].
<<tabs rhythm interchange interchange [[interchange]] canons canons [[canons]] lexique lexique [[lexique]] premiers premiers [[premiers]] Ok(close) Ok>>

retour - //[[plan du site]]//
En l'absence de joueurs ... les ''règles'' du jeu d'un [[automate cellulaire|automates cellulaires]] en constituent la moitié.
L'autre moitié est occupée par la configuration globale et par le ou les [[motifs|motif]] initiaux que le maître du jeu a choisis.

Les règles sont on ne peut plus [[simples|simple]] : 
*Chaque cellule réagit à l'état de ses voisines.
*On décide de la survie avec m, n, ou p ... voisines vivantes, naissance avec q, r ou s, mort dans tous les autres cas. //Exemple// pour le [[jeu de la vie]] survie avec 2 ou 3 voisines vivantes, [[naissance]] avec 3.
*Toutes les cellules sont analysées, on calcule leur prochain état, on joue tous les changements et on recommence l'analyse.

À chaque coup joué, ou itération, la configuration se modifie plus ou moins. Certains motifs disparaissent brusquement, d'autres restent stables, d'autres encore se modifient avec une [[périodicité]] qui leur est propre, ou encore se déplacent peu à peu.

Exemple = = > <<slider terch [[interchange]] "interchange">> < = = cliquer ici.


Les résultats sont parfois surprenants. Il "[[émerge|émergence]]" de ces règles simples appliquées aux cellules individuelles des comportements collectifs  : c'était bien le but de la [[simulation]], qui nous rappelle ainsi que la vie peut émerger comme une propriété inattendue de la matière : [[belle|le jeu]] et non pas programmée. 

Voir aussi : [[motifs|motif]]
retour - //[[plan du site]]//
Le [[jeu|le jeu]] est simple, ''simple'' vous dit-on, et les règles d'une simplicité évidente.

Par quels détours a-t-il fallu passer pour être à même de voir et d'exploiter cette soi-disant simplicité ?
* Il faut observer la nature, cela, les hommes l'ont fait dès l'origine, naturellement, comme leur survie en dépendait, puis méthodiquement, comme si leur survie en dépendait toujours.
* Il faut arriver à la conclusion qu'il existe des règles et que l'esprit humain est à même de les imaginer, qu'il a le droit de les comprendre, qu'il peut les vérifier, et enfin les mettre en oeuvre à travers des expériences.
* Il faut disposer rapidement d'une infrastructure pour faire jouer ces règles au-delà de quelques centaines de coups, à la main, pour quelques dizaines de positions de départ : donc arriver avec l'explosion de la [[micro informatique|historique]].
Cette infrastructure elle-même inclut des établissements dédiés à la recherche, la distribution du courant électrique, l'invention du microprocesseur ... tout un ensemble de choses fort simples en vérité, si l'on a la patience d'observer l'enchaînement des causes.

Un autre point à observer est que des règles simples et des positions initiales du jeu simples donnent la plupart du temps un [[résultat|le jeu de la vie et le monde]] médiocre, désordonné, mort bientôt. Il faut élaborer des constructions patiemment, des hypothèses [[échevelées|premiers]], pour que les règles donnent toute leur puissance.

retour - //[[plan du site]]//
La ''simulation'' de phénomènes extrêmement complexes, liés à la vie, à la [[croissance]] des cellules, des bactéries ou des populations animales, ou bien à la [[naissance]] des galaxies, impose des [[règles]] à la fois [[simplistes|simple]] et générant un minimum nécessaire de [[complexité|complexe]].

galaxies observées par Hubble

L'inventeur du [[jeu de la vie]], John [[Conway]], a tenté ce pari de créer un ensemble de règles qui assurent ceci :
*Interdire une croissance illimitée de la population
*Donner l'impression, pour certains cas, de croissance illimitée
*Simuler une croissance sur une [[période|périodicité]] assez longue, pouvant se terminer par un état relativement [[stable|motif]] (disparition, immobilisme ou oscillation).
En bref, la simulation doit donner des résultats difficiles à prédire.

retour - //[[plan du site]]//
|[[Pour la Science|http://www.pourlascience.fr/]]|la rubrique de ~Jean-Paul Delahaye, digne héritier de [[Martin Gardner]]|
|!Universités, références, sites persos||
|[[Wikipédia (anglais)|http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life]]|introduction bien étayée aux concepts|
|[[The fantastic combinations of John Conway's new solitaire game "life"|http://www.ibiblio.org/lifepatterns/october1970.html]]|historique : article de [[Gardner|Martin Gardner]] sur le jeu, 1970|
|[[CAV 2.0 Version française (Win)|http://www.rennard.org/alife/french/telech.html]]|programme dédié aux [[automates cellulaires]] - voir [[logiciels]]|
|[[Stephen Silver's Life Lexicon|http://www.argentum.freeserve.co.uk/lex_home.htm]]|lexique de plus de sept cents termes, nombreux motifs utilisables par copier-coller dans [[Golly|logiciels]]|
|[[ibiblio|http://www.ibiblio.org/lifepatterns/]]|exploration du jeu : historique, motifs ...|
|[[Jason|http://entropymine.com/jason/life/]]|collection de motifs bien structurée, certains motifs très [[complexes|complexe]]|
|[[b3s23|http://b3s23life.blogspot.com/]]|projets divers en lien avec le jeu de la vie - liens vers des sites spécialisés|
|[[Achim's Game of Life page|http://wwwhomes.uni-bielefeld.de/achim/gol.html]]|excellente introduction aux métacellules |
|[[Mirek's Cellebration (Mirek Wojtowicz)|http://www.mirekw.com/ca/index.html]]|lexique, galerie de motifs, programme //~McCell//|
|[[Tim Tyler|http://cell-auto.com/intro/]]|encore un fanatique|
|[[CAV, gestionnaire d'automates cellulairesde Rennard|http://www.rennard.org/alife/french/ac.html]]|programme [[CAV|logiciels]], vie artificielle, biomorphs - algorithmes génétiques - fourmis - liens|
|[[The Kitchen Sink|http://psoup.math.wisc.edu/sink.html]]|liens vers des programmes d'automates|
|[[Boids|http://www.red3d.com/cwr/boids/applet/]]|programme de simulation de vols d'oiseaux |
|[[Mark D. Niemiec's Life Page|http://home.interserv.com/~mniemiec/lifepage.htm]]|tous les spécialistes sont fanatiques à leur manière |
|[[Gabriel Nivasch|http://www.yucs.org/~gnivasch/life/]]|Plus vite que la lumière ?|
|[[pentadecathlon|http://pentadecathlon.com/]]|Information on the Game of Life|
|[[LifeWiki|http://www.conwaylife.com/wiki/index.php?title=Main_Page]]|the wiki for Conway's Game of Life : un [[wiki]] avec plus de 800 entrées - motifs, périodes, collisions et autres listes|
|[[Rule table repo| http://code.google.com/p/ruletablerepository/]]|dépôt de règles historiques et exotiques |
|[[Michael Hogg|http://www.michael-hogg.co.uk/game_of_life.php]]|Excellent catalogue animé ...|
|!Sites commerciaux||
|[[Paul Callahan|http://www.math.com/students/wonders/life/life.html]]|applet Life avec une trentaine de motifs |
|[[maths.com|http://www.math.com/students/wonders/life/life.html]] |appliquette (applet) dédiée|
|[[Eric Weisstein's Treasure Trove of Life | http://www.ericweisstein.com/encyclopedias/life]]|définitions, catalogues de motifs, site de la constellation de [[Stephen Wolfram]]|
|[[Publications de Stephen Wolfram |http://www.stephenwolfram.com/publications/books/ca-reprint/contents.html]]|Cellular Automata and Complexity: Collected Papers |
|[[Mathworld|http://mathworld.wolfram.com/Life.html]]|se proclame le plus complet des sites mathématiques avec 13 000 articles|

retour - //[[plan du site]]//
''Wiki'' désigne tout site organisé pour [[évoluer|évolution]] selon ces principes :
*conception modulaire : articles formant un tout et reliés entre eux
*facilité d'édition : éditeur [[simple]] permettant de générer un texte pour le web, avec ses balises html
*collaboration : voir des sites comme //Wikipédia//, construit, vérifié et maintenu par des centaines de milliers de contributeurs
*outils variés : gestion de l'historique des articles, des catégories, uniformité du design, &c.

Ce site, //Game of Life - toujours en vie//, utilise le moteur de wiki ~TiddlyWiki développé par //J. Ruston//.

retour - //[[plan du site]]//
!!pourquoi ce site
Ce site présente le jeu de la vie, inventé par J. H. Conway en 1970. Ce qui m'a intéressé, quand je l'ai essayé dans les années 80, c'est que le jeu se déroule de façon magique, tout seul puisqu'il s'agit d'une simple simulation : le motif initial décide de tout, le reste suit.

!!!About [in English]
//Conway's Game of Life was discovered in 1970. I tried it in the 80s with pleasure : it's quite magical to see it roll to an unknown end ...
This is a Tiddlywiki page, thanks to Jeremy Ruston.
Pics are from everywhere. Contact me :  //methodood at yahoo com.

Un article s'affiche sur la page en cliquant sur un lien. 
La liste des articles ouverts est affichée sous le titre de la page.
Pour fermer un article : bouton "close" dans son menu en haut à droite, pour ne conserver qu'un article, "close others".

!!À propos
Dédié à John Conway, ce site est créé à l'aide de ~Tiddlywiki, un wiki sur une seule page web créé par Jeremy Ruston.
Les [[sources]] sont citées, j'espère n'en oublier aucune.
Les ''illustrations'' sont glanées sur le net. Merci de prendre contact au besoin : //methodood at yahoo com//.

= > //[[plan du site]]// < =

[img[my gol |http://i471.photobucket.com/albums/rr79/methodood/life_deft0.jpg]]
[[off mileage ogam eiffel |http://www.ssynth.co.uk/~gay/cgi-bin/nph-an?line=game+of+life&words=2&dict=antworth&doai=on]]
V1.0.9   20/08/2009
V1.0     15/05/2009

Bienvenue sur SiteUrl
retour - //[[plan du site]]//
L'''émergence'' est devenue un concept à la mode. Le [[complexe]] émerge du [[simple]].

En même temps que les [[automates cellulaires]], de nombreux outils, dans diverses disciplines, se sont appuyés sur ce nouveau paradigme : si un nombre suffisant d'éléments aux propriétés définies s'agrègent, il émerge quelque chose qui exhibe de nouvelles propriétés. Les niveaux d'organisation - atomes, molécules, organites, cellules, êtres vivants, sociétés, écosystèmes - varient sans que cet aspect soit infirmé.
Les problèmes qui surgissent avec chaque niveau sont, d'un point de vue naïf, surprenants. Pourquoi la [[lutte]] pour la vie devait-elle nécessairement naître de la vie ?

Les conséquences philosophiques ou éthiques sont nombreuses dans la mesure où l'acte de création, imputé à un être suprême, s'estompe au profit de mécanismes encore un peu mystérieux, mais, dans l'apparence, fort [[simplistes|simple]].
Ainsi, peu de causes agissent pour qu'une soupe primordiale de cellules dans le [[jeu de la vie]] génère des formes parfois élaborées avec l'application des [[règles]] de survie. Il s'agit là d'une [[répétition|simulation]] des hypothèses qui font apparaître les premières molécules compliquées dans les orages des premiers instants de la Terre.
Cette simplicité est-elle, dès lors, exemplaire, ou trompeuse ?

retour - //[[plan du site]]//
La notion d'''évolution'' diffère de celle de [[croissance]] en ce que cette dernière suit un chemin prévisible. Les petits chats ne donnent pas des chiens, la taille d'un arbre se stabilise selon son espèce et son environnement ... 

... Tandis qu'une parcelle de hasard, ou un souffle de grâce divine, ou encore l'appel aux concepts de création et de liberté nous laissent ce sentiment d'imprévisible qui fait tout le prix de la vie pour des êtres pensants.
Dans les [[automates cellulaires]], la magie d'une [[simulation]] nous donne parfois à voir une évolution librement consentie par la matière là où il n'y a, au départ, que des [[règles]] irréfragables.

[img[Caprices de Goya - 65|http://upload.wikimedia.org/wikipedia/commons/d/d4/Goya_-_Caprichos_%2865%29.jpg]]
Les pessimistes percevront toujours une décadence par rapport à la perfection d'antan dans l'évolution.

retour - //[[plan du site]]//