<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="https://testromance.rusff.me/export.php?type=rss" rel="self" type="application/rss+xml" />
		<title>тест</title>
		<link>https://testromance.rusff.me/</link>
		<description>тест</description>
		<language>ru-ru</language>
		<lastBuildDate>Wed, 10 Sep 2025 22:25:47 +0300</lastBuildDate>
		<generator>MyBB/mybb.ru</generator>
		<item>
			<title>игра мемо</title>
			<link>https://testromance.rusff.me/viewtopic.php?pid=89#p89</link>
			<description>&lt;p&gt;[html]&amp;lt;style&amp;gt;&lt;br /&gt;&amp;#160; .forum-table-container {&lt;br /&gt;&amp;#160; &amp;#160; background-image: url(&lt;a href=&quot;https://upforme.ru/uploads/0019/49/95/2/114311.jpg&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://upforme.ru/uploads/0019/49/95/2/114311.jpg&lt;/a&gt;);&amp;#160; /* Фон подложки */&lt;br /&gt;&amp;#160; &amp;#160; color: #2e2d2d;&lt;br /&gt;&amp;#160; &amp;#160; padding: 20px;&lt;br /&gt;&amp;#160; text-align: center;&lt;br /&gt;&amp;#160; &amp;#160; border-radius: 10px;&lt;br /&gt;&amp;#160; &amp;#160; font-family: American Typewriter , sans-serif;&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; .forum-table-header {&lt;br /&gt;&amp;#160; &amp;#160; text-align: center;&lt;br /&gt;&amp;#160; &amp;#160; font-family: American Typewriter , serif;&lt;br /&gt;&amp;#160; &amp;#160; font-size: 40px;&lt;br /&gt;&amp;#160; &amp;#160; font-weight: bold;&lt;br /&gt;&amp;#160; &amp;#160; margin-bottom: 20px;&lt;br /&gt;&amp;#160; &amp;#160; text-transform: uppercase;&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; .forum-table-columns {&lt;br /&gt;&amp;#160; &amp;#160; display: flex;&lt;br /&gt;text-align: center;&lt;br /&gt;&amp;#160; &amp;#160; border-radius: 10px;&lt;br /&gt;&amp;#160; &amp;#160; gap: 15px;&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; .forum-table-column {&lt;br /&gt;&amp;#160; &amp;#160; flex: 1;&lt;br /&gt;&amp;#160; text-align: center !important;&lt;br /&gt;&amp;#160; &amp;#160; background-color: #dddddd;&lt;br /&gt;&amp;#160; &amp;#160; color: #2e2d2d;&lt;br /&gt;&amp;#160; &amp;#160; border-radius: 10px;&lt;br /&gt;&amp;#160; &amp;#160; padding: 15px;&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; .forum-table-column h3 {&lt;br /&gt;&amp;#160; &amp;#160; text-align: center;&lt;br /&gt;&amp;#160; &amp;#160; font-size: 18px;&lt;br /&gt;&amp;#160; &amp;#160; font-weight: bold;&lt;br /&gt;&amp;#160; &amp;#160; border-radius: 10px;&lt;br /&gt;&amp;#160; &amp;#160; text-transform: uppercase;&lt;br /&gt;&amp;#160; &amp;#160; margin-top: 0;&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; .forum-table-column hr {&lt;br /&gt;&amp;#160; &amp;#160; border: none;&lt;br /&gt;text-align: center;&lt;br /&gt;&amp;#160; &amp;#160; height: 1px;&lt;br /&gt;&amp;#160; &amp;#160; background-color: #2e2d2d;&lt;br /&gt;&amp;#160; &amp;#160; margin: 10px 0;&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; .forum-table-column ul {&lt;br /&gt;&amp;#160; &amp;#160; list-style-type: none;&lt;br /&gt;&amp;#160; &amp;#160; padding: 0;&lt;br /&gt;text-align: center;&lt;br /&gt;&amp;#160; &amp;#160; margin: 0;&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; .forum-table-column li {&lt;br /&gt;&amp;#160; &amp;#160; margin-bottom: 10px;&lt;br /&gt;&amp;#160; text-align: center;&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; .forum-table-footer {&lt;br /&gt;&amp;#160; &amp;#160; background-color: #dddddd;&lt;br /&gt;&amp;#160; &amp;#160; color: #2e2d2d;&lt;br /&gt;&amp;#160; &amp;#160; border-radius: 10px;&lt;br /&gt;&amp;#160; &amp;#160; text-align: center;&lt;br /&gt;&amp;#160; &amp;#160; padding: 10px;&lt;br /&gt;&amp;#160; &amp;#160; margin-top: 20px;&lt;br /&gt;&amp;#160; &amp;#160; font-weight: bold;&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; .forum-table-footer .highlight {&lt;br /&gt;&amp;#160; &amp;#160; font-weight: bold;&lt;br /&gt;&amp;#160; text-align: center;&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;/p&gt;
						&lt;p&gt;&amp;lt;div class=&amp;quot;forum-table-container&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &lt;br /&gt; &amp;lt;div class=&amp;quot;forum-table-column&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;lt;h1&amp;gt;MEMO&amp;lt;/h1&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;lt;hr&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;lt;ul&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;li&amp;gt;Написала простенький скрипт для игры в поиск совпадений. Ищем пары, тренируем мозг в перерывах между постами.&amp;lt;/li&amp;gt;&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;#160; &amp;lt;/ul&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;/div&amp;gt;&lt;/p&gt;
						&lt;p&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;[/html]&lt;/p&gt;
						&lt;p&gt;[html]&amp;lt;!-- === MEMO 8&amp;#215;6 (48 карточек), серый, American Typewriter, хороший рандом === --&amp;gt;&lt;br /&gt;&amp;lt;style&amp;gt;&lt;br /&gt;.memo{&lt;br /&gt;&amp;#160; --tile:96px; --gap:12px; --radius:14px; --cols:8;&amp;#160; &amp;#160; &amp;#160; /* кол-во колонок и размер ячейки */&lt;br /&gt;&amp;#160; --front:#1d1d1f; --back:#2a2a2c; --accent:#9aa0a6;&lt;br /&gt;&amp;#160; --ok:#9b9b9b; --text:#e6e6e6; --muted:#b5b5b5; --blank:#242426;&lt;br /&gt;&amp;#160; font-family:&amp;quot;American Typewriter&amp;quot;,&amp;quot;Georgia&amp;quot;,&amp;quot;Times New Roman&amp;quot;,serif;&lt;br /&gt;&amp;#160; max-width:950px; margin:16px auto; padding:14px;&lt;br /&gt;&amp;#160; background:linear-gradient(180deg,#151516,#1c1c1e);&lt;br /&gt;&amp;#160; border-radius:20px; box-shadow:10 10px 28px rgba(0,0,0,.45); color:var(--text)&lt;br /&gt;}&lt;br /&gt;.memo h3{margin:0 0 .5rem;font-size:20px}&lt;br /&gt;.memo .memo__controls{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}&lt;br /&gt;.memo .memo__btn{appearance:none;border:1px solid #3a3a3c;background:#171718;color:var(--text);padding:6px 10px;border-radius:10px;cursor:pointer;font-size:13px}&lt;br /&gt;.memo .memo__btn:hover{border-color:var(--accent);box-shadow:0 0 0 2px rgba(154,160,166,.15) inset}&lt;br /&gt;.memo .memo__status{font-size:13px;color:var(--muted)}&lt;br /&gt;.memo .grid{display:grid;grid-template-columns:repeat(var(--cols),var(--tile));gap:var(--gap);justify-content:center}&lt;/p&gt;
						&lt;p&gt;@media (max-width:880px){.memo{--tile:86px}}&lt;br /&gt;@media (max-width:760px){.memo{--cols:7;--tile:78px}}&lt;br /&gt;@media (max-width:620px){.memo{--cols:6;--tile:70px}}&lt;br /&gt;@media (max-width:520px){.memo{--cols:5;--tile:64px}}&lt;/p&gt;
						&lt;p&gt;.memo input[type=checkbox]{position:absolute;opacity:0;pointer-events:none}&lt;br /&gt;.memo .memo-card{width:var(--tile);height:var(--tile);border-radius:var(--radius);position:relative;perspective:900px}&lt;br /&gt;.memo .memo-face{position:absolute;inset:0;display:grid;place-items:center;border-radius:var(--radius);&lt;br /&gt;&amp;#160; transition:transform .5s,box-shadow .2s;backface-visibility:hidden;user-select:none}&lt;br /&gt;.memo .memo-front{background:var(--front);border:1px solid #2c2c2e;box-shadow:inset 0 0 0 1px rgba(255,255,255,.03)}&lt;br /&gt;.memo .memo-back{background:var(--back);border:1px dashed rgba(255,255,255,.12);transform:rotateY(180deg);&lt;br /&gt;&amp;#160; font-size:28px; letter-spacing:.6px}&lt;br /&gt;.memo input:checked + label .memo-front{transform:rotateY(180deg)}&lt;br /&gt;.memo input:checked + label .memo-back{transform:rotateY(360deg)}&lt;br /&gt;.memo label{display:block;width:100%;height:100%;cursor:pointer;outline:none}&lt;br /&gt;.memo label:focus-visible .memo-front{box-shadow:0 0 0 3px rgba(154,160,166,.35)}&lt;br /&gt;.memo label:hover .memo-front{box-shadow:0 0 0 2px rgba(154,160,166,.18) inset}&lt;/p&gt;
						&lt;p&gt;/* Цифры/иконки на обороте из data-symbol */&lt;br /&gt;.memo label .memo-back::before{content:attr(data-symbol); transform:translateY(-1px)}&lt;/p&gt;
						&lt;p&gt;/* Зафиксированная пара */&lt;br /&gt;.memo label[data-locked]{pointer-events:none}&lt;br /&gt;.memo label[data-locked] .memo-back{&lt;br /&gt;&amp;#160; box-shadow:0 0 0 2px rgba(155,155,155,.35) inset, 0 6px 14px rgba(0,0,0,.25);&lt;br /&gt;&amp;#160; border-color:rgba(200,200,200,.4)&lt;br /&gt;}&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;/p&gt;
						&lt;p&gt;&amp;lt;div class=&amp;quot;memo&amp;quot; id=&amp;quot;memo48&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;lt;form&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;h3&amp;gt;MEMO — найди пары&amp;lt;/h3&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;memo__controls&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;lt;small&amp;gt;Открывай по две карточки&amp;lt;/small&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;memo__status&amp;quot;&amp;gt;Найдено: &amp;lt;b class=&amp;quot;memo__found&amp;quot;&amp;gt;0&amp;lt;/b&amp;gt; / 24&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;lt;button class=&amp;quot;memo__btn&amp;quot; type=&amp;quot;reset&amp;quot;&amp;gt;СБРОС&amp;lt;/button&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;/div&amp;gt;&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;lt;div class=&amp;quot;grid&amp;quot; id=&amp;quot;memo-grid&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#160; &amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;/p&gt;
						&lt;p&gt;&amp;lt;script&amp;gt;&lt;br /&gt;(() =&amp;gt; {&lt;br /&gt;&amp;#160; const root = document.getElementById(&#039;memo48&#039;);&lt;br /&gt;&amp;#160; if (!root) return;&lt;/p&gt;
						&lt;p&gt;&amp;#160; const grid = root.querySelector(&#039;#memo-grid&#039;);&lt;br /&gt;&amp;#160; const form = root.querySelector(&#039;form&#039;);&lt;br /&gt;&amp;#160; const foundEl = root.querySelector(&#039;.memo__found&#039;);&lt;br /&gt;&amp;#160; const TOTAL = 24;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;// число пар&lt;br /&gt;&amp;#160; const symbols = Array.from({length: TOTAL}, (_,i) =&amp;gt; String(i+1).padStart(2,&#039;0&#039;));&lt;/p&gt;
						&lt;p&gt;&amp;#160; let opened = [];&lt;br /&gt;&amp;#160; let lock = false;&lt;br /&gt;&amp;#160; let found = 0;&lt;/p&gt;
						&lt;p&gt;&amp;#160; // криптографически стойкий (при наличии) Фишер&amp;#8211;Йетс&lt;br /&gt;&amp;#160; function rndInt(max){&lt;br /&gt;&amp;#160; &amp;#160; if (window.crypto &amp;amp;&amp;amp; crypto.getRandomValues){&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; const buf = new Uint32Array(1);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; crypto.getRandomValues(buf);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; return buf[0] % max;&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; return Math.floor(Math.random() * max);&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; function shuffle(arr){&lt;br /&gt;&amp;#160; &amp;#160; for (let m = arr.length; m; ){&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; const i = rndInt(m--);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; [arr[m], arr[i]] = [arr[i], arr[m]];&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; return arr;&lt;br /&gt;&amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; function buildDeck(){&lt;br /&gt;&amp;#160; &amp;#160; grid.innerHTML = &#039;&#039;;&lt;br /&gt;&amp;#160; &amp;#160; const deck = shuffle(symbols.concat(symbols)); // дублируем и мешаем&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; deck.forEach((sym, idx) =&amp;gt; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; const card&amp;#160; = document.createElement(&#039;div&#039;);&amp;#160; card.className = &#039;memo-card&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; const input = document.createElement(&#039;input&#039;); input.type=&#039;checkbox&#039;; input.id = `mc${idx}`;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; const label = document.createElement(&#039;label&#039;); label.setAttribute(&#039;for&#039;, input.id);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; const front = document.createElement(&#039;span&#039;);&amp;#160; front.className = &#039;memo-face memo-front&#039;;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; const back&amp;#160; = document.createElement(&#039;span&#039;);&amp;#160; back.className&amp;#160; = &#039;memo-face memo-back&#039;; back.dataset.symbol = sym;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; label.append(front, back); card.append(input, label); grid.append(card);&lt;br /&gt;&amp;#160; &amp;#160; });&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; // сброс внутренних состояний&lt;br /&gt;&amp;#160; &amp;#160; opened = [];&lt;br /&gt;&amp;#160; &amp;#160; lock = false;&lt;br /&gt;&amp;#160; &amp;#160; found = 0;&lt;br /&gt;&amp;#160; &amp;#160; foundEl.textContent = &#039;0&#039;;&lt;br /&gt;&amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; function getSymbol(input){&lt;br /&gt;&amp;#160; &amp;#160; return input.nextElementSibling.querySelector(&#039;.memo-back&#039;).dataset.symbol;&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; function lockPair(a,b){&lt;br /&gt;&amp;#160; &amp;#160; a.nextElementSibling.dataset.locked = &#039;1&#039;;&lt;br /&gt;&amp;#160; &amp;#160; b.nextElementSibling.dataset.locked = &#039;1&#039;;&lt;br /&gt;&amp;#160; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; root.addEventListener(&#039;change&#039;, (e) =&amp;gt; {&lt;br /&gt;&amp;#160; &amp;#160; const input = e.target;&lt;br /&gt;&amp;#160; &amp;#160; if (input.tagName !== &#039;INPUT&#039;) return;&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; if (input.nextElementSibling.dataset.locked){ input.checked = true; return; }&lt;br /&gt;&amp;#160; &amp;#160; if (lock &amp;amp;&amp;amp; input.checked){ input.checked = false; return; }&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; if (input.checked){&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; opened.push(input);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; if (opened.length === 2){&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; lock = true;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; const [a,b] = opened;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; const sa = getSymbol(a), sb = getSymbol(b);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; if (sa === sb){&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; lockPair(a,b);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; found++;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; foundEl.textContent = String(found);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; opened = [];&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; lock = false;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; } else {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; const toClose = opened.slice();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; opened = [];&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; setTimeout(() =&amp;gt; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; toClose.forEach(inp =&amp;gt; inp.checked = false);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; lock = false;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; }, 700);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; } else {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; opened = opened.filter(x =&amp;gt; x !== input);&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; });&lt;/p&gt;
						&lt;p&gt;&amp;#160; form.addEventListener(&#039;reset&#039;, () =&amp;gt; {&lt;br /&gt;&amp;#160; &amp;#160; setTimeout(buildDeck, 0); // при сбросе — новая случайная раскладка&lt;br /&gt;&amp;#160; });&lt;/p&gt;
						&lt;p&gt;&amp;#160; buildDeck(); // старт&lt;br /&gt;})();&lt;br /&gt;&amp;lt;/script&amp;gt;[/html]&lt;/p&gt;
						&lt;p&gt;[hideprofile]&lt;/p&gt;</description>
			<author>mybb@mybb.ru (admin)</author>
			<pubDate>Wed, 10 Sep 2025 22:25:47 +0300</pubDate>
			<guid>https://testromance.rusff.me/viewtopic.php?pid=89#p89</guid>
		</item>
		<item>
			<title>проба</title>
			<link>https://testromance.rusff.me/viewtopic.php?pid=86#p86</link>
			<description>&lt;p&gt;эпизод какой-то&lt;/p&gt;</description>
			<author>mybb@mybb.ru (admin)</author>
			<pubDate>Sat, 12 Jul 2025 20:18:28 +0300</pubDate>
			<guid>https://testromance.rusff.me/viewtopic.php?pid=86#p86</guid>
		</item>
		<item>
			<title>нужные сообщения</title>
			<link>https://testromance.rusff.me/viewtopic.php?pid=76#p76</link>
			<description>&lt;p&gt;здесь какой-то текст&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Мари)</author>
			<pubDate>Thu, 30 Jan 2025 20:56:18 +0300</pubDate>
			<guid>https://testromance.rusff.me/viewtopic.php?pid=76#p76</guid>
		</item>
	</channel>
</rss>
