Bonjour à tous et à toutes,
J'ai créé un automate cellulaire à partir de Batbox et de mes automatismes en Batch :okjesors:. Je ne sais pas si c'est le terme exacte, mais bon, par définition, un automate cellulaire contient des cellules avec des états, bah là, il y a 5 états notables (vide, tête rouge/verte, point rouge/vert)... Mais qui peuvent se croiser (bon, pas vide, évidemment). Là, j'ai mis des O, mais normalement, ça devrait être des têtes, mais j'ai peur que leur "équivalant en ANSI" ne passe pas. Encodage: ANSI. J'ai mis en OEM-850 sous Notepad++ pour encoder et le programmer, mais j'ai copié-collé le code à partir du Bloc-Notes.
Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
@echo off
     for %%b in (
     4D5343460000000073030000000000002C000000000000000301010001000000
     00000000470000000100010000060000000000000000FE4259B5200062617462
     6F782E657865003FD9412724030006434BB5545F485361143F5737F0CF726B3A
     102ABB528B1EC24813421026D3529AB59C184460D7ED6EF7CE79EFB8F74A562F
     0B1D543EF5143DC60483C27AF0C14248B18710A4979ECA40426A0329A1B21ECA
     AF73EE9D4E21B287FAB6DF77CFF99DF37DDFEF3B3B779D1752C001800D5CC018
     808F1C1C3ED879A41015FB9F56C064E942ED141758A8ED96649D4F6A6A4C1306
     F8B0A028AAC1F789BC36A8F0B2C2B79E0DF1036A44ACDB557670638F601B4080
     E3A0C3FBFDDC06B7044EAE9CE34EA2283041C3B505A48E9E450079B99B69C05B
     FC4B1457BC75DD6666DECD8F981BE02EF71797FDC7A32E9A100C7C1EB1E505D9
     2CDD5BC7252AC57F1E92ABCA0771EB21D968029C98E76125D25F9967D1ED838C
     8372D6F24E093AD9175832FFADCAD43C7F8C459F9442D39D1E8C3947C6913F15
     7BB79A7BCD18CBA6D10BB24687B9E33226E4E6904E5DE37A9DE90A3C9C7926F1
     98F48C73E401F2CC731FBD66BAB2335D6E8689B0336A13E6798C76B601772CB6
     F7E2565EEAD64C1589A931C93092B34B2ECE4E1C6BB466EBE82C1DDD4E8A3ED3
     5ED25137B163B861AE9ED8B7D452F182D42F945F4D111213920E14F28B908D57
     B3C61233710903560539A9DA3CD0E257901F6EA600D664019744879B295EE44C
     3F43EF9BFD303A3FD172A61FE13CDABC17FD9BEBB39F5CD7DFD3BDEEF155565D
     6E63B4D8CC0E9EEF910E15745C5D47755EAB32AB245726A20A890C55275B4616
     952417A44035BA71FC8498670A970F3F77CCCD7E2862E3F524D44EBFBB6D741F
     3D46F7A4DF3847E885988B835574AF0EDE4893F9056F1874970F26101F111711
     B6DD3EA8411C472C20A611FD31211C8D0CA89737DAEC4665A1E532F8CA8DA13F
     ED2E7013682FBA7FDFA29DA11E7F57775D6B2000A7DBBACEB4051AEA4D077EE0
     02076E54833881E846488864FEB09DE2D8AAA2113222ED82124988E48744C3AF
     2ABA9A103BF17F6A3BD32D0E192D86A1C97D8386B82DE21FD474550BAABA6CC8
     AA42ABBA4421920F7628C941A385F213A298DCB6AE55D69309E18A79D40C6A9A
     47BC422C2356106B799D7F8AE16D345931A264F5C644232C9916990382AC085A
     4C475F1C920D93EFEF932C4B3734434D00FC02                          
     ) Do >>t.dat (Echo.For b=1 To len^("%%b"^) Step 2
     ECHO WScript.StdOut.Write Chr^(Clng^("&H"^&Mid^("%%b",b,2^)^)^) : Next)
     Cscript /b /e:vbs t.dat>batbox.ex_
     Del /f /q /a t.dat >nul 2>&1
     Expand -r batbox.ex_ >nul 2>&1
     Del /f /q /a batbox.ex_ >nul 2>&1
del "info.vbs"
del "called.bat">nul
ping 1.0.0.0 -n 1 -w 100>nul
mode con: lines=32 cols=42
echo x=MsgBox("Les règles de l'automate de Bexandre:" ^& vbCrLf ^& "- Les têtes lachent des points tous les 10 frames." ^& vbCrLf ^& "- Au bout de 100 frames, on nettoie l'écran, mais pas la position des têtes." ^& vbCrLf ^& "- Si les têtes partent trop loin, elles se font jarter très loin!" ^& vbCrLf ^& "Bon visionnage!" ,0, "L'automate de Bexandre") >>info.vbs
start "" info.vbs
set mdr=-1
:caca
set lol=-1
set calc=-1
echo ^@echo off>>called.bat
set x=7
set y=7
set /a a=x + 3
set /a b=y - 2
:off
cls
color F0
set /a mdr=mdr + 1
set /a lol=lol + 1
if %lol%==100 del "called.bat"
if %lol%==100 echo ^@echo off>>called.bat
if %lol%==100 set lol=0
title Automate - Frame %mdr%
set /a calc=calc + 1
if %calc%==10 goto called
call "called.bat"
set /a m=%random% %% 9-1
if %m%==-1 set /a x=x + 1
if %m%==0 set /a y=y + 1
if %m%==1 set /a x=x + 1
if %m%==2 set /a y=y + 1
if %m%==3 set /a x=x + 1
if %m%==4 set /a y=y - 1
if %m%==5 set /a x=x - 1
if %m%==6 set /a y=y - 1
if %m%==7 set /a x=x + 1
if %m%==8 set /a y=y + 1
if %m%==9 set /a x=x + 1
if %m%==10 set /a y=y - 1
if %m%==11 set /a x=x - 1
if %m%==-1 set /a a=a - 1
if %m%==0 set /a b=b + 1
if %m%==1 set /a a=a - 1
if %m%==2 set /a b=b + 1
if %m%==3 set /a b=b - 1
if %m%==4 set /a a=a + 1
if %m%==5 set /a b=b - 1
if %m%==6 set /a a=a + 1
if %m%==7 set /a b=b - 1
if %m%==8 set /a a=a + 1
if %m%==9 set /a b=b - 1
if %m%==10 set /a a=a + 1
if %m%==11 set /a b=b - 1
 
if %x%==1 set /a x=x + 1
if %y%==1 set /a y=y + 1
if %y%==30 set /a y=y - 19
if %x%==40 set /a x=x - 29
 
if %a%==1 set /a a=a + 1
if %b%==1 set /a b=b + 1
if %b%==30 set /a b=b - 19
if %a%==40 set /a a=a - 29
 
batbox /g %a% %b% /c 0xFC
echo O
batbox /g %x% %y% /c 0xF2
echo O
ping 1.0.0.0 -n 1 -w 750>nul
set gg=%m%
set m=gg
goto off
:called
set calc=-1
set /a lol=lol - 1
set /a mdr=mdr - 1
echo batbox /g %a% %b% /c 0xFC /d ".">>called.bat
echo batbox /g %x% %y% /c 0xF2 /d ".">>called.bat
goto off