@jjlmoya/utils-science 1.42.0 → 1.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/category/index.ts +4 -1
- package/src/entries.ts +7 -1
- package/src/index.ts +3 -0
- package/src/tests/diacritics_density.test.ts +140 -0
- package/src/tests/inverted_punctuation.test.ts +84 -0
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/script_density.test.ts +94 -0
- package/src/tests/tool_validation.test.ts +2 -3
- package/src/tool/black-hole-event-horizon-simulator/bibliography.astro +14 -0
- package/src/tool/black-hole-event-horizon-simulator/bibliography.ts +16 -0
- package/src/tool/black-hole-event-horizon-simulator/black-hole-event-horizon-simulator.css +366 -0
- package/src/tool/black-hole-event-horizon-simulator/component.astro +302 -0
- package/src/tool/black-hole-event-horizon-simulator/entry.ts +29 -0
- package/src/tool/black-hole-event-horizon-simulator/i18n/de.ts +179 -0
- package/src/tool/black-hole-event-horizon-simulator/i18n/en.ts +259 -0
- package/src/tool/black-hole-event-horizon-simulator/i18n/es.ts +259 -0
- package/src/tool/black-hole-event-horizon-simulator/i18n/fr.ts +179 -0
- package/src/tool/black-hole-event-horizon-simulator/i18n/id.ts +259 -0
- package/src/tool/black-hole-event-horizon-simulator/i18n/it.ts +179 -0
- package/src/tool/black-hole-event-horizon-simulator/i18n/ja.ts +179 -0
- package/src/tool/black-hole-event-horizon-simulator/i18n/ko.ts +259 -0
- package/src/tool/black-hole-event-horizon-simulator/i18n/nl.ts +179 -0
- package/src/tool/black-hole-event-horizon-simulator/i18n/pl.ts +259 -0
- package/src/tool/black-hole-event-horizon-simulator/i18n/pt.ts +179 -0
- package/src/tool/black-hole-event-horizon-simulator/i18n/ru.ts +259 -0
- package/src/tool/black-hole-event-horizon-simulator/i18n/sv.ts +179 -0
- package/src/tool/black-hole-event-horizon-simulator/i18n/tr.ts +179 -0
- package/src/tool/black-hole-event-horizon-simulator/i18n/zh.ts +179 -0
- package/src/tool/black-hole-event-horizon-simulator/index.ts +11 -0
- package/src/tool/black-hole-event-horizon-simulator/logic.ts +68 -0
- package/src/tool/black-hole-event-horizon-simulator/seo.astro +15 -0
- package/src/tool/conway-life-rule-lab/i18n/de.ts +62 -5
- package/src/tool/conway-life-rule-lab/i18n/es.ts +62 -5
- package/src/tool/conway-life-rule-lab/i18n/fr.ts +62 -5
- package/src/tool/conway-life-rule-lab/i18n/id.ts +102 -45
- package/src/tool/conway-life-rule-lab/i18n/it.ts +62 -5
- package/src/tool/conway-life-rule-lab/i18n/ja.ts +62 -5
- package/src/tool/conway-life-rule-lab/i18n/ko.ts +62 -5
- package/src/tool/conway-life-rule-lab/i18n/nl.ts +102 -45
- package/src/tool/conway-life-rule-lab/i18n/pl.ts +62 -5
- package/src/tool/conway-life-rule-lab/i18n/pt.ts +62 -5
- package/src/tool/conway-life-rule-lab/i18n/ru.ts +62 -5
- package/src/tool/conway-life-rule-lab/i18n/sv.ts +62 -5
- package/src/tool/conway-life-rule-lab/i18n/tr.ts +62 -5
- package/src/tool/conway-life-rule-lab/i18n/zh.ts +62 -5
- package/src/tool/cosmic-inflation/i18n/es.ts +5 -5
- package/src/tool/cosmic-inflation/i18n/it.ts +51 -51
- package/src/tool/cosmic-inflation/i18n/ru.ts +42 -150
- package/src/tool/double-slit-decoherence/i18n/fr.ts +42 -86
- package/src/tool/double-slit-decoherence/i18n/it.ts +28 -72
- package/src/tool/double-slit-decoherence/i18n/pt.ts +35 -79
- package/src/tool/double-slit-decoherence/i18n/ru.ts +59 -59
- package/src/tool/double-slit-decoherence/i18n/sv.ts +33 -81
- package/src/tool/double-slit-decoherence/i18n/tr.ts +55 -55
- package/src/tool/dyson-sphere-energy-capture/i18n/de.ts +42 -123
- package/src/tool/dyson-sphere-energy-capture/i18n/es.ts +6 -6
- package/src/tool/dyson-sphere-energy-capture/i18n/fr.ts +63 -131
- package/src/tool/dyson-sphere-energy-capture/i18n/it.ts +36 -113
- package/src/tool/dyson-sphere-energy-capture/i18n/ja.ts +66 -42
- package/src/tool/dyson-sphere-energy-capture/i18n/ko.ts +66 -42
- package/src/tool/dyson-sphere-energy-capture/i18n/pl.ts +50 -133
- package/src/tool/dyson-sphere-energy-capture/i18n/pt.ts +51 -132
- package/src/tool/dyson-sphere-energy-capture/i18n/ru.ts +61 -98
- package/src/tool/dyson-sphere-energy-capture/i18n/sv.ts +56 -137
- package/src/tool/dyson-sphere-energy-capture/i18n/tr.ts +61 -142
- package/src/tool/dyson-sphere-energy-capture/i18n/zh.ts +67 -43
- package/src/tool/epidemic-sir-simulator/bibliography.astro +15 -0
- package/src/tool/epidemic-sir-simulator/bibliography.ts +37 -0
- package/src/tool/epidemic-sir-simulator/component.astro +384 -0
- package/src/tool/epidemic-sir-simulator/entry.ts +30 -0
- package/src/tool/epidemic-sir-simulator/epidemic-sir-simulator.css +624 -0
- package/src/tool/epidemic-sir-simulator/i18n/de.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/en.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/es.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/fr.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/id.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/it.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/ja.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/ko.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/nl.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/pl.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/pt.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/ru.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/sv.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/tr.ts +347 -0
- package/src/tool/epidemic-sir-simulator/i18n/zh.ts +347 -0
- package/src/tool/epidemic-sir-simulator/index.ts +12 -0
- package/src/tool/epidemic-sir-simulator/logic.ts +163 -0
- package/src/tool/epidemic-sir-simulator/seo.astro +16 -0
- package/src/tool/fermi-paradox-filter-lab/bibliography.astro +14 -0
- package/src/tool/fermi-paradox-filter-lab/bibliography.ts +24 -0
- package/src/tool/fermi-paradox-filter-lab/component.astro +257 -0
- package/src/tool/fermi-paradox-filter-lab/entry.ts +26 -0
- package/src/tool/fermi-paradox-filter-lab/fermi-paradox-filter-lab.css +228 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/de.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/en.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/es.ts +193 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/fr.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/id.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/it.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/ja.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/ko.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/nl.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/pl.ts +193 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/pt.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/ru.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/sv.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/tr.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/i18n/zh.ts +192 -0
- package/src/tool/fermi-paradox-filter-lab/index.ts +11 -0
- package/src/tool/fermi-paradox-filter-lab/logic.ts +125 -0
- package/src/tool/fermi-paradox-filter-lab/seo.astro +15 -0
- package/src/tool/global-albedo-snowball-simulator/i18n/ru.ts +50 -63
- package/src/tool/lorenz-attractor/i18n/de.ts +52 -78
- package/src/tool/lorenz-attractor/i18n/es.ts +5 -5
- package/src/tool/lorenz-attractor/i18n/fr.ts +51 -77
- package/src/tool/lorenz-attractor/i18n/it.ts +36 -36
- package/src/tool/lorenz-attractor/i18n/pt.ts +51 -75
- package/src/tool/mandelbrot-fractal/i18n/de.ts +31 -58
- package/src/tool/mandelbrot-fractal/i18n/es.ts +5 -5
- package/src/tool/mandelbrot-fractal/i18n/fr.ts +39 -57
- package/src/tool/mandelbrot-fractal/i18n/it.ts +30 -48
- package/src/tool/mandelbrot-fractal/i18n/pl.ts +34 -52
- package/src/tool/mandelbrot-fractal/i18n/pt.ts +30 -30
- package/src/tool/mandelbrot-fractal/i18n/ru.ts +42 -60
- package/src/tool/mandelbrot-fractal/i18n/sv.ts +38 -65
- package/src/tool/natural-selection-drift/i18n/it.ts +18 -95
- package/src/tool/natural-selection-drift/i18n/pt.ts +76 -19
- package/src/tool/natural-selection-drift/i18n/ru.ts +27 -24
- package/src/tool/natural-selection-drift/i18n/sv.ts +9 -6
- package/src/tool/phase-diagram-critical-points/i18n/de.ts +30 -68
- package/src/tool/phase-diagram-critical-points/i18n/es.ts +4 -4
- package/src/tool/phase-diagram-critical-points/i18n/fr.ts +37 -75
- package/src/tool/phase-diagram-critical-points/i18n/it.ts +8 -8
- package/src/tool/planet-atmosphere-survival/i18n/ru.ts +49 -192
- package/src/tool/radioactive-decay/i18n/de.ts +16 -32
- package/src/tool/radioactive-decay/i18n/es.ts +5 -5
- package/src/tool/radioactive-decay/i18n/fr.ts +24 -40
- package/src/tool/radioactive-decay/i18n/it.ts +18 -35
- package/src/tool/radioactive-decay/i18n/pt.ts +34 -34
- package/src/tool/roche-limit-satellite-disruption/i18n/pl.ts +52 -128
- package/src/tool/temperature-timeline/i18n/de.ts +46 -174
- package/src/tool/temperature-timeline/i18n/es.ts +5 -5
- package/src/tool/temperature-timeline/i18n/fr.ts +69 -144
- package/src/tool/temperature-timeline/i18n/it.ts +34 -133
- package/src/tool/temperature-timeline/i18n/pt.ts +35 -174
- package/src/tool/temperature-timeline/i18n/ru.ts +48 -174
- package/src/tool/twin-paradox-visualizer/i18n/es.ts +5 -5
- package/src/tool/twin-paradox-visualizer/i18n/fr.ts +34 -34
- package/src/tool/twin-paradox-visualizer/i18n/pt.ts +31 -71
- package/src/tools.ts +6 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'black-hole-event-horizon-simulator';
|
|
5
|
+
const title = '黑洞事件视界模拟器:施瓦西半径、光子球与时间膨胀';
|
|
6
|
+
const description = '通过交互式的质量、轨道距离、时间膨胀、光子球、逃逸速度和施瓦西半径计算,探索黑洞的事件视界。';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: '选择黑洞质量',
|
|
11
|
+
text: '移动质量滑块,从恒星质量黑洞到超大质量黑洞,实时观察施瓦西半径的变化。',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: '将探测器移至视界附近',
|
|
15
|
+
text: '以施瓦西半径为单位设置距离,比较安全的外部轨道、光子球区域以及事件视界的边缘。',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: '检查相对论效应',
|
|
19
|
+
text: '观察逃逸速度、引力时间膨胀、红移和轨道周期,了解在视界附近直觉为何失效。',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: '比较关键半径',
|
|
23
|
+
text: '利用事件视界、光子球和ISCO的参考环,理解非旋转黑洞周围的不同物理边界。',
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faq = [
|
|
28
|
+
{
|
|
29
|
+
question: '什么是黑洞的事件视界?',
|
|
30
|
+
answer: '事件视界是逃逸速度达到光速的边界。一旦物体跨越此界限,包括光在内的任何信号都无法返回外部宇宙。',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: '施瓦西半径意味着什么?',
|
|
34
|
+
answer: '施瓦西半径是针对非旋转、不带电黑洞定义的事件视界半径。该半径与质量成正比,即质量加倍,视界半径也加倍。',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
question: '什么是光子球?',
|
|
38
|
+
answer: '光子球位于1.5倍施瓦西半径处,是光线能够以不稳定轨道绕黑洞运行的区域。微小的扰动即会导致光子逃逸或坠入黑洞。',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
question: '什么是ISCO?',
|
|
42
|
+
answer: 'ISCO是"最内层稳定圆形轨道"(Innermost Stable Circular Orbit)的缩写。对于非旋转黑洞,它位于3倍施瓦西半径(即6倍引力半径)处,是有质量粒子能维持的最后稳定轨道。',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
question: '为什么时间膨胀在视界附近会显著增加?',
|
|
46
|
+
answer: '在施瓦西时空中,处于更强引力场中的时钟相对于远处观测者走得更慢。随着探测器接近事件视界,时间膨胀因子趋近于零。',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
question: '这个模拟器能模拟旋转黑洞吗?',
|
|
50
|
+
answer: '不能。本模拟器基于施瓦西度规,假设黑洞不旋转且不带电。真实的黑洞多为旋转黑洞,其自转会改变视界大小、ISCO位置及吸积盘动力学。',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
question: '为什么超大质量黑洞的潮汐力反而较小?',
|
|
54
|
+
answer: '视界处的潮汐梯度随黑洞质量的增加而减小。小型黑洞会在视界附近剧烈撕裂物体,而超大质量黑洞在此处的局部潮汐力相对温和。',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
question: '这是真实的黑洞照片吗?',
|
|
58
|
+
answer: '这是一个教育示意图,而非光线追踪模拟。光环和吸积盘按施瓦西半径缩放,旨在让用户直观比较不同的物理区域。',
|
|
59
|
+
},
|
|
60
|
+
];
|
|
61
|
+
|
|
62
|
+
export const content: ToolLocaleContent = {
|
|
63
|
+
slug,
|
|
64
|
+
title,
|
|
65
|
+
description,
|
|
66
|
+
ui: {
|
|
67
|
+
visualTitle: '事件视界场图',
|
|
68
|
+
visualCaption: '探测器在缩放后的施瓦西时空中移动。明亮的参考环标记了视界、光子球和最内层稳定圆形轨道。',
|
|
69
|
+
controlsTitle: '黑洞控制',
|
|
70
|
+
eventHorizon: '事件视界',
|
|
71
|
+
photonSphere: '光子球',
|
|
72
|
+
isco: 'ISCO',
|
|
73
|
+
rsLabel: '施瓦西半径',
|
|
74
|
+
diameterLabel: '直径',
|
|
75
|
+
timeLabel: '时间膨胀',
|
|
76
|
+
redshiftLabel: '红移',
|
|
77
|
+
statusSafe: '位于稳定轨道区外',
|
|
78
|
+
statusPhoton: '位于光子球区内',
|
|
79
|
+
statusInside: '视界内',
|
|
80
|
+
diameter: '视界直径',
|
|
81
|
+
lightCrossing: '光穿行时间',
|
|
82
|
+
timeDilation: '相对远处观测者的时钟速率',
|
|
83
|
+
redshift: '引力红移',
|
|
84
|
+
mass: '黑洞质量',
|
|
85
|
+
distance: '探测器距离',
|
|
86
|
+
speed: '轨道速度',
|
|
87
|
+
escapeVelocity: '逃逸速度',
|
|
88
|
+
orbitalPeriod: '轨道周期',
|
|
89
|
+
tidalGradient: '潮汐梯度',
|
|
90
|
+
kilometerUnit: '公里',
|
|
91
|
+
millisecondUnit: '毫秒',
|
|
92
|
+
secondUnit: '秒',
|
|
93
|
+
lightSpeedUnit: '% c',
|
|
94
|
+
tidalUnit: 'g/m',
|
|
95
|
+
solarMassesUnit: '太阳质量',
|
|
96
|
+
rsUnit: 'Rs',
|
|
97
|
+
zeroKilometers: '0 km',
|
|
98
|
+
zeroMilliseconds: '0 ms',
|
|
99
|
+
zeroMultiplier: '0x',
|
|
100
|
+
zeroLightSpeed: '0% c',
|
|
101
|
+
zeroTidal: '0 g/m',
|
|
102
|
+
initialMassOutput: '10 太阳质量',
|
|
103
|
+
initialDistanceOutput: '3.0 Rs',
|
|
104
|
+
initialSpeedOutput: '32% c',
|
|
105
|
+
},
|
|
106
|
+
seo: [
|
|
107
|
+
{
|
|
108
|
+
type: 'title',
|
|
109
|
+
text: '黑洞事件视界模拟器:施瓦西半径、光子球与时间膨胀',
|
|
110
|
+
level: 2,
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
type: 'paragraph',
|
|
114
|
+
html: '本模拟器将施瓦西黑洞的核心概念转化为交互式视觉模型。通过调整黑洞质量、移动探测器,用户可以直观比较事件视界、光子球、最内层稳定圆形轨道、逃逸速度、引力红移及时间膨胀的响应关系。',
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
type: 'paragraph',
|
|
118
|
+
html: '本工具专为天文爱好者、物理教师及科普探索者设计,通过将数值与空间图表结合,帮助用户理解黑洞的本质:事件视界并非物质表面,为何光子具有特殊的不稳定轨道,以及为何稳定的圆周运动在视界外停止。',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
type: 'title',
|
|
122
|
+
text: '事件视界半径的计算方法',
|
|
123
|
+
level: 3,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: 'paragraph',
|
|
127
|
+
html: '对于非旋转、不带电黑洞,其事件视界半径即为<strong>施瓦西半径</strong>。计算公式为<strong>Rs = 2GM / c^2</strong>,其中G为万有引力常数,M为质量,c为光速。1个太阳质量对应的施瓦西半径约为2.95公里。',
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
type: 'paragraph',
|
|
131
|
+
html: '施瓦西半径与质量呈线性关系,因此10倍太阳质量的黑洞半径约为29.5公里;而像人马座A*那样400万倍太阳质量的黑洞,其半径约为1180万公里。模拟器采用对数滑块,方便用户同时探索恒星级与超大质量黑洞。',
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: 'table',
|
|
135
|
+
headers: ['区域', '施瓦西半径倍数', '含义'],
|
|
136
|
+
rows: [
|
|
137
|
+
['事件视界', '1.0 Rs', '逃逸速度等于光速的单向边界'],
|
|
138
|
+
['光子球', '1.5 Rs', '光线可在此做不稳定的圆周运动'],
|
|
139
|
+
['ISCO', '3.0 Rs', '有质量粒子的最内层稳定圆轨道'],
|
|
140
|
+
['弱引力场', '6 Rs及以上', '引力较弱,轨道易于维持稳定'],
|
|
141
|
+
],
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
faq,
|
|
145
|
+
bibliography,
|
|
146
|
+
howTo,
|
|
147
|
+
schemas: [
|
|
148
|
+
{
|
|
149
|
+
'@context': 'https://schema.org',
|
|
150
|
+
'@type': 'SoftwareApplication',
|
|
151
|
+
name: title,
|
|
152
|
+
description,
|
|
153
|
+
applicationCategory: 'ScientificApplication',
|
|
154
|
+
operatingSystem: 'Any',
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
'@context': 'https://schema.org',
|
|
158
|
+
'@type': 'FAQPage',
|
|
159
|
+
mainEntity: faq.map((item) => ({
|
|
160
|
+
'@type': 'Question',
|
|
161
|
+
name: item.question,
|
|
162
|
+
acceptedAnswer: {
|
|
163
|
+
'@type': 'Answer',
|
|
164
|
+
text: item.answer,
|
|
165
|
+
},
|
|
166
|
+
})),
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
'@context': 'https://schema.org',
|
|
170
|
+
'@type': 'HowTo',
|
|
171
|
+
name: title,
|
|
172
|
+
step: howTo.map((step) => ({
|
|
173
|
+
'@type': 'HowToStep',
|
|
174
|
+
name: step.name,
|
|
175
|
+
text: step.text,
|
|
176
|
+
})),
|
|
177
|
+
},
|
|
178
|
+
],
|
|
179
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { blackHoleEventHorizonSimulator } from './entry';
|
|
2
|
+
import type { ToolDefinition } from '../../types';
|
|
3
|
+
|
|
4
|
+
export * from './entry';
|
|
5
|
+
|
|
6
|
+
export const BLACK_HOLE_EVENT_HORIZON_SIMULATOR_TOOL: ToolDefinition = {
|
|
7
|
+
entry: blackHoleEventHorizonSimulator,
|
|
8
|
+
Component: () => import('./component.astro'),
|
|
9
|
+
SEOComponent: () => import('./seo.astro'),
|
|
10
|
+
BibliographyComponent: () => import('./bibliography.astro'),
|
|
11
|
+
};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
export interface BlackHoleInput {
|
|
2
|
+
massSolar: number;
|
|
3
|
+
distanceMultiplier: number;
|
|
4
|
+
orbitalSpeedFraction: number;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export interface BlackHoleResult {
|
|
8
|
+
schwarzschildRadiusKm: number;
|
|
9
|
+
diameterKm: number;
|
|
10
|
+
lightCrossingMs: number;
|
|
11
|
+
photonSphereKm: number;
|
|
12
|
+
iscoKm: number;
|
|
13
|
+
orbitRadiusKm: number;
|
|
14
|
+
escapeVelocityFraction: number;
|
|
15
|
+
timeDilationFactor: number;
|
|
16
|
+
orbitalPeriodMs: number;
|
|
17
|
+
tidalGradientEarthGPerMeter: number;
|
|
18
|
+
gravitationalRedshift: number;
|
|
19
|
+
status: 'inside-horizon' | 'photon-sphere' | 'stable-orbit';
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const solarSchwarzschildRadiusKm = 2.95325008;
|
|
23
|
+
const lightSpeedKmPerSecond = 299792.458;
|
|
24
|
+
const gravitationalConstant = 6.6743e-11;
|
|
25
|
+
const solarMassKg = 1.98847e30;
|
|
26
|
+
const earthGravity = 9.80665;
|
|
27
|
+
|
|
28
|
+
function clamp(value: number, min: number, max: number) {
|
|
29
|
+
return Math.max(min, Math.min(max, value));
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function eventHorizonStatus(distanceMultiplier: number): BlackHoleResult['status'] {
|
|
33
|
+
if (distanceMultiplier <= 1) return 'inside-horizon';
|
|
34
|
+
if (distanceMultiplier < 1.5) return 'photon-sphere';
|
|
35
|
+
return 'stable-orbit';
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function simulateEventHorizon(input: BlackHoleInput): BlackHoleResult {
|
|
39
|
+
const massSolar = clamp(input.massSolar, 3, 10000000000);
|
|
40
|
+
const distanceMultiplier = clamp(input.distanceMultiplier, 1.02, 12);
|
|
41
|
+
const speedFraction = clamp(input.orbitalSpeedFraction, 0.05, 0.99);
|
|
42
|
+
const schwarzschildRadiusKm = massSolar * solarSchwarzschildRadiusKm;
|
|
43
|
+
const orbitRadiusKm = schwarzschildRadiusKm * distanceMultiplier;
|
|
44
|
+
const relativityTerm = Math.max(0.0001, 1 - schwarzschildRadiusKm / orbitRadiusKm);
|
|
45
|
+
const escapeVelocityFraction = Math.sqrt(schwarzschildRadiusKm / orbitRadiusKm);
|
|
46
|
+
const timeDilationFactor = Math.sqrt(relativityTerm);
|
|
47
|
+
const orbitalCircumferenceKm = 2 * Math.PI * orbitRadiusKm;
|
|
48
|
+
const orbitalPeriodMs = orbitalCircumferenceKm / (speedFraction * lightSpeedKmPerSecond) * 1000;
|
|
49
|
+
const radiusMeters = orbitRadiusKm * 1000;
|
|
50
|
+
const massKg = massSolar * solarMassKg;
|
|
51
|
+
const tidalGradientEarthGPerMeter = 2 * gravitationalConstant * massKg / radiusMeters ** 3 / earthGravity;
|
|
52
|
+
const gravitationalRedshift = 1 / timeDilationFactor - 1;
|
|
53
|
+
|
|
54
|
+
return {
|
|
55
|
+
schwarzschildRadiusKm,
|
|
56
|
+
diameterKm: schwarzschildRadiusKm * 2,
|
|
57
|
+
lightCrossingMs: schwarzschildRadiusKm / lightSpeedKmPerSecond * 1000,
|
|
58
|
+
photonSphereKm: schwarzschildRadiusKm * 1.5,
|
|
59
|
+
iscoKm: schwarzschildRadiusKm * 3,
|
|
60
|
+
orbitRadiusKm,
|
|
61
|
+
escapeVelocityFraction,
|
|
62
|
+
timeDilationFactor,
|
|
63
|
+
orbitalPeriodMs,
|
|
64
|
+
tidalGradientEarthGPerMeter,
|
|
65
|
+
gravitationalRedshift,
|
|
66
|
+
status: eventHorizonStatus(distanceMultiplier),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
import { SEORenderer } from '@jjlmoya/utils-shared';
|
|
3
|
+
import { blackHoleEventHorizonSimulator } from './index';
|
|
4
|
+
import type { KnownLocale } from '../../types';
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
locale?: KnownLocale;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { locale = 'en' } = Astro.props;
|
|
11
|
+
const content = await blackHoleEventHorizonSimulator.i18n[locale]?.();
|
|
12
|
+
if (!content) return null;
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
{content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
|
|
@@ -1,11 +1,52 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
|
|
4
|
+
const slug = 'conway-spiel-des-lebens-regellabor';
|
|
5
|
+
const title = 'Conway Spiel des Lebens Regellabor';
|
|
6
|
+
const description = 'Spiele, bearbeite und vergleiche Conway-artige zelluläre Automaten mit B/S-Regeln, Mustersaaten, Live-Metriken und responsivem Simulationsfeld.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Feld besäen',
|
|
11
|
+
text: 'Wähle ein Muster wie einen Gleiter, Pulsar oder Gosper-Kanone, platziere es auf dem Gitter oder erzeuge eine zufällige Population.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Simulation starten',
|
|
15
|
+
text: 'Nutze Start, Pause, Schritt und Tempo-Steuerung, um Geburten, Tode, Dichte und Stabilität über Zeit zu beobachten.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Regel ändern',
|
|
19
|
+
text: 'Wechsle Voreinstellungen oder gib eine B/S-Regel wie B3/S23, B36/S23 oder B3678/S34678 ein, um verschiedene Automaten zu vergleichen.',
|
|
20
|
+
},
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
const faq = [
|
|
24
|
+
{
|
|
25
|
+
question: 'Was ist B/S-Notation im Spiel des Lebens?',
|
|
26
|
+
answer: 'Die B/S-Notation listet die Nachbarzahlen, die eine neue lebende Zelle erzeugen, und die Zahlen, die eine bestehende lebende Zelle überleben lassen. Conways Spiel des Lebens ist B3/S23: tote Zellen werden mit genau drei Nachbarn geboren, lebende Zellen überleben mit zwei oder drei Nachbarn.',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
question: 'Warum heißt dieses Werkzeug Regellabor statt nur Simulator?',
|
|
30
|
+
answer: 'Die klassische Conway-Regel ist enthalten, aber der Simulator ist dafür gebaut, Familien von Life-artigen zellulären Automaten zu vergleichen. Das Bearbeiten der Geburts- und Überlebenszahlen ändert das Langzeitverhalten und erzeugt Replikatoren, Wellen, Inselgruppen oder unkontrolliertes Wachstum.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Was bedeutet Stabilität im Simulator?',
|
|
34
|
+
answer: 'Stabilität schätzt, wie stark sich die Kolonie in der letzten Generation verändert hat. Hohe Stabilität bedeutet wenige Geburten und Tode relativ zur Population; niedrige Stabilität bedeutet turbulentes oder schnell reorganisierendes Feld.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
question: 'Hat das Feld Ränder?',
|
|
38
|
+
answer: 'Die Simulation verwendet toroidales Wickeln: der linke Rand verbindet sich mit dem rechten, und oben verbindet sich mit unten. So bewegen sich Muster natürlich weiter, ohne an harten Grenzen zu verschwinden.',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
question: 'Kann ich ein eigenes Startmuster zeichnen?',
|
|
42
|
+
answer: 'Ja. Pausiere die Simulation und klicke oder tippe auf Zellen, um sie umzuschalten. Du kannst handgezeichnete Zellen mit eingebauten Mustern kombinieren und das Ergebnis dann unter beliebiger Regelvoreinstellung ausführen.',
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
|
|
4
46
|
export const content: ToolLocaleContent = {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
description: 'Spiele, bearbeite und vergleiche Conway-artige zelluläre Automaten mit B/S-Regeln, Mustersaaten, Live-Metriken und responsivem Simulationsfeld.',
|
|
47
|
+
slug,
|
|
48
|
+
title,
|
|
49
|
+
description,
|
|
9
50
|
ui: {
|
|
10
51
|
boardLabel: 'Feld für Life-artige zelluläre Automaten',
|
|
11
52
|
play: 'Start',
|
|
@@ -47,4 +88,20 @@ export const content: ToolLocaleContent = {
|
|
|
47
88
|
statusChaotic: 'volatil',
|
|
48
89
|
invalidRule: 'Verwende B/S-Notation wie B3/S23.',
|
|
49
90
|
},
|
|
91
|
+
seo: [
|
|
92
|
+
{ type: 'title', text: 'Conway Spiel des Lebens Simulator mit bearbeitbaren Regeln', level: 2 },
|
|
93
|
+
{ type: 'paragraph', html: 'Dieses Regellabor lässt dich den klassischen zellulären Automaten ausführen und seine Regeln gezielt verändern und vergleichen. Das Feld unterstützt direktes Zeichnen, Musterpositionen, Zufallssaaten, schrittweise Inspektion, variables Tempo und Live-Messungen für Population, Dichte, Geburten, Tode und Stabilität.' },
|
|
94
|
+
{ type: 'title', text: 'Wie B/S-Regeln das Spiel verändern', level: 3 },
|
|
95
|
+
{ type: 'paragraph', html: 'Life-artige zelluläre Automaten werden oft in <strong>B/S-Notation</strong> geschrieben. Die B-Seite definiert, wie viele lebende Nachbarn eine tote Zelle braucht, um zu entstehen; die S-Seite definiert, wie viele Nachbarn eine lebende Zelle zum Überleben braucht. Conways ursprüngliche Regel <strong>B3/S23</strong> ist berühmt, weil sie in einem schmalen Bereich zwischen Aussterben und unkontrolliertem Wachstum liegt.' },
|
|
96
|
+
{ type: 'title', text: 'Live-Metriken lesen', level: 3 },
|
|
97
|
+
{ type: 'paragraph', html: 'Population und Dichte zeigen, wie viele Zellen am Leben sind, aber sie erzählen nicht die ganze Geschichte. Geburten und Tode zeigen das aktuelle Aktivitätsniveau, während Stabilität abschätzt, ob die Kolonie sich in einen Oszillator einpendelt, in Stilleben einfriert oder turbulent bleibt.' },
|
|
98
|
+
],
|
|
99
|
+
faq,
|
|
100
|
+
bibliography,
|
|
101
|
+
howTo,
|
|
102
|
+
schemas: [
|
|
103
|
+
{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'EducationalApplication', operatingSystem: 'Any' },
|
|
104
|
+
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
|
|
105
|
+
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) },
|
|
106
|
+
],
|
|
50
107
|
};
|
|
@@ -1,11 +1,52 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
|
|
4
|
+
const slug = 'laboratorio-reglas-juego-vida-conway';
|
|
5
|
+
const title = 'Laboratorio de Reglas del Juego de la Vida de Conway';
|
|
6
|
+
const description = 'Juega, edita y compara autómatas celulares tipo Conway con reglas B/S, semillas de patrones, métricas en vivo y un tablero de simulación adaptable.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Sembrar el tablero',
|
|
11
|
+
text: 'Elige un patrón como un planeador, pulsar o cañón de Gosper, colócalo en la cuadrícula o aleatoriza una población inicial.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Ejecutar la simulación',
|
|
15
|
+
text: 'Usa los controles de reproducción, pausa, paso y velocidad para observar cómo evolucionan los nacimientos, muertes, densidad y estabilidad.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Cambiar la regla',
|
|
19
|
+
text: 'Cambia entre preajustes o escribe una regla B/S como B3/S23, B36/S23 o B3678/S34678 para comparar diferentes autómatas.',
|
|
20
|
+
},
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
const faq = [
|
|
24
|
+
{
|
|
25
|
+
question: '¿Qué es la notación B/S en el Juego de la Vida?',
|
|
26
|
+
answer: 'La notación B/S lista los conteos de vecinos que crean una nueva célula viva y los conteos que permiten a una célula viva existente sobrevivir. El Juego de la Vida de Conway es B3/S23: las células muertas nacen con exactamente tres vecinos, y las células vivas sobreviven con dos o tres vecinos.',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
question: '¿Por qué se llama laboratorio de reglas en lugar de solo simulador?',
|
|
30
|
+
answer: 'La regla clásica de Conway está incluida, pero el simulador está diseñado para comparar familias de autómatas celulares tipo Life. Editar los conteos de nacimiento y supervivencia cambia el comportamiento a largo plazo, produciendo replicadores, ondas, islas congeladas, crecimiento caótico o extinción.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: '¿Qué significa estabilidad en el simulador?',
|
|
34
|
+
answer: 'La estabilidad estima cuánto cambió la colonia durante la última generación. Alta estabilidad significa pocas células nacidas o muertas relativas a la población; baja estabilidad significa que el tablero es turbulento o se reorganiza rápidamente.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
question: '¿El tablero tiene bordes?',
|
|
38
|
+
answer: 'La simulación usa envoltura toroidal, por lo que el borde izquierdo se conecta con el derecho y la parte superior con la inferior. Esto mantiene los patrones moviéndose naturalmente sin desaparecer en bordes duros.',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
question: '¿Puedo dibujar mi propio patrón inicial?',
|
|
42
|
+
answer: 'Sí. Pausa la simulación y haz clic o toca las células del tablero para activarlas o desactivarlas. Puedes combinar células dibujadas a mano con patrones integrados y ejecutar el resultado bajo cualquier preajuste de regla.',
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
|
|
4
46
|
export const content: ToolLocaleContent = {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
description: 'Juega, edita y compara autómatas celulares tipo Conway con reglas B/S, semillas de patrones, métricas en vivo y un tablero de simulación adaptable.',
|
|
47
|
+
slug,
|
|
48
|
+
title,
|
|
49
|
+
description,
|
|
9
50
|
ui: {
|
|
10
51
|
boardLabel: 'Tablero de autómatas celulares tipo Life',
|
|
11
52
|
play: 'Reproducir',
|
|
@@ -47,4 +88,20 @@ export const content: ToolLocaleContent = {
|
|
|
47
88
|
statusChaotic: 'volátil',
|
|
48
89
|
invalidRule: 'Usa notación B/S como B3/S23.',
|
|
49
90
|
},
|
|
91
|
+
seo: [
|
|
92
|
+
{ type: 'title', text: 'Simulador del Juego de la Vida de Conway con reglas editables', level: 2 },
|
|
93
|
+
{ type: 'paragraph', html: 'Este laboratorio de reglas del Juego de la Vida de Conway te permite ejecutar el autómata celular clásico y luego cambiar y comparar sus reglas. El tablero admite dibujo directo, colocación de patrones, semillas aleatorias, inspección paso a paso, tempo variable y mediciones en vivo de población, densidad, nacimientos, muertes y estabilidad.' },
|
|
94
|
+
{ type: 'title', text: 'Cómo las reglas B/S cambian el juego', level: 3 },
|
|
95
|
+
{ type: 'paragraph', html: 'Los autómatas celulares tipo Life se escriben a menudo en <strong>notación B/S</strong>. El lado B define cuántos vecinos vivos necesita una célula muerta para nacer; el lado S define cuántos vecinos necesita una célula viva para sobrevivir. La regla original de Conway, <strong>B3/S23</strong>, es famosa porque se sitúa en una región estrecha entre la extinción y el crecimiento descontrolado.' },
|
|
96
|
+
{ type: 'title', text: 'Leer las métricas en vivo', level: 3 },
|
|
97
|
+
{ type: 'paragraph', html: 'La población y la densidad muestran cuántas células están vivas, pero no cuentan la historia completa. Los nacimientos y las muertes exponen el nivel de actividad actual, mientras que la estabilidad estima si la colonia está asentándose en un oscilador, congelándose en figuras estáticas o permaneciendo turbulenta.' },
|
|
98
|
+
],
|
|
99
|
+
faq,
|
|
100
|
+
bibliography,
|
|
101
|
+
howTo,
|
|
102
|
+
schemas: [
|
|
103
|
+
{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'EducationalApplication', operatingSystem: 'Any' },
|
|
104
|
+
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
|
|
105
|
+
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) },
|
|
106
|
+
],
|
|
50
107
|
};
|
|
@@ -1,11 +1,52 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
|
|
4
|
+
const slug = 'laboratoire-regles-jeu-vie-conway';
|
|
5
|
+
const title = 'Laboratoire de règles du Jeu de la Vie de Conway';
|
|
6
|
+
const description = 'Jouez, modifiez et comparez des automates cellulaires de type Conway avec règles B/S, motifs de départ, métriques en direct et grille responsive.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Ensemencer le plateau',
|
|
11
|
+
text: 'Choisissez un motif comme un planeur, un pulsar ou le canon de Gosper, placez-le sur la grille ou générez une population aléatoire.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Lancer la simulation',
|
|
15
|
+
text: 'Utilisez les contrôles de lecture, pause, pas et tempo pour observer l\'évolution des naissances, morts, densité et stabilité.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Changer la règle',
|
|
19
|
+
text: 'Changez les préréglages ou tapez une règle B/S comme B3/S23, B36/S23 ou B3678/S34678 pour comparer différents automates.',
|
|
20
|
+
},
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
const faq = [
|
|
24
|
+
{
|
|
25
|
+
question: 'Qu\'est-ce que la notation B/S dans le Jeu de la Vie ?',
|
|
26
|
+
answer: 'La notation B/S liste les nombres de voisins qui creent une nouvelle cellule vivante et les nombres qui permettent a une cellule vivante existante de survivre. Le Jeu de la Vie de Conway est B3/S23: les cellules mortes naissent avec exactement trois voisins, et les cellules vivantes survivent avec deux ou trois voisins.',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
question: 'Pourquoi cet outil s\'appelle laboratoire de règles plutôt que simulateur ?',
|
|
30
|
+
answer: 'La règle classique de Conway est incluse, mais le simulateur est conçu pour comparer des familles d\'automates cellulaires de type Life. Modifier les comptes de naissance et de survie change le comportement à long terme, produisant des réplicateurs, des vagues, des îles gelées, une croissance chaotique ou l\'extinction.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Que signifie la stabilité dans le simulateur ?',
|
|
34
|
+
answer: 'La stabilité estime combien la colonie a changé lors de la dernière génération. Une stabilité élevée signifie peu de cellules nées ou mortes par rapport à la population ; une faible stabilité signifie que le plateau est turbulent ou se réorganise rapidement.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
question: 'Le plateau a-t-il des bords ?',
|
|
38
|
+
answer: 'La simulation utilise un enroulement toroidal: le bord gauche se connecte au bord droit et le haut se connecte au bas. Cela maintient les motifs se deplacant naturellement sans disparaitre aux bords.',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
question: 'Puis-je dessiner mon propre motif de départ ?',
|
|
42
|
+
answer: 'Oui. Mettez la simulation en pause et cliquez ou tapez sur les cellules du plateau pour les basculer. Vous pouvez combiner des cellules dessinées à la main avec des motifs intégrés et lancer le résultat sous n\'importe quel préréglage de règle.',
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
|
|
4
46
|
export const content: ToolLocaleContent = {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
description: 'Jouez, modifiez et comparez des automates cellulaires de type Conway avec règles B/S, motifs de départ, métriques en direct et grille responsive.',
|
|
47
|
+
slug,
|
|
48
|
+
title,
|
|
49
|
+
description,
|
|
9
50
|
ui: {
|
|
10
51
|
boardLabel: 'Grille d\'automates cellulaires de type Life',
|
|
11
52
|
play: 'Lire',
|
|
@@ -47,4 +88,20 @@ export const content: ToolLocaleContent = {
|
|
|
47
88
|
statusChaotic: 'volatile',
|
|
48
89
|
invalidRule: 'Utilisez une notation B/S comme B3/S23.',
|
|
49
90
|
},
|
|
91
|
+
seo: [
|
|
92
|
+
{ type: 'title', text: 'Simulateur du Jeu de la Vie de Conway avec règles modifiables', level: 2 },
|
|
93
|
+
{ type: 'paragraph', html: 'Ce laboratoire de règles vous permet d\'exécuter l\'automate cellulaire classique et de modifier et comparer ses règles. Le plateau prend en charge le dessin direct, le placement de motifs, les graines aléatoires, l\'inspection pas à pas, le tempo variable et les mesures en direct pour la population, la densité, les naissances, les morts et la stabilité.' },
|
|
94
|
+
{ type: 'title', text: 'Comment les règles B/S changent le jeu', level: 3 },
|
|
95
|
+
{ type: 'paragraph', html: 'Les automates cellulaires de type Life sont souvent écrits en <strong>notation B/S</strong>. Le côté B définit combien de voisins vivants une cellule morte a besoin pour naître ; le côté S définit combien de voisins une cellule vivante a besoin pour survivre. La règle originale de Conway, <strong>B3/S23</strong>, est célèbre car elle se situe dans une région étroite entre extinction et croissance incontrôlée.' },
|
|
96
|
+
{ type: 'title', text: 'Lire les métriques en direct', level: 3 },
|
|
97
|
+
{ type: 'paragraph', html: 'La population et la densité montrent combien de cellules sont vivantes, mais elles ne racontent pas toute l\'histoire. Les naissances et les morts exposent le niveau d\'activité actuel, tandis que la stabilité estime si la colonie se stabilise dans un oscillateur, se fige dans des structures statiques ou reste turbulente.' },
|
|
98
|
+
],
|
|
99
|
+
faq,
|
|
100
|
+
bibliography,
|
|
101
|
+
howTo,
|
|
102
|
+
schemas: [
|
|
103
|
+
{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'EducationalApplication', operatingSystem: 'Any' },
|
|
104
|
+
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
|
|
105
|
+
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) },
|
|
106
|
+
],
|
|
50
107
|
};
|