Files
ogs-site/ru/news/memory-text-ui.html
2024-06-14 22:10:34 +03:00

110 linhas
5.7 KiB
HTML
Original Anotar Histórico

Este arquivo contém caracteres Unicode ambíguos

Este arquivo contém caracteres Unicode que podem ser confundidos com outros caracteres. Se você acha que isso é intencional, pode ignorar esse aviso com segurança. Use o botão Escapar para revelá-los

<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head>
<link rel="stylesheet" href="../../style.css">
</head>
<body>
<script data-goatcounter="https://services.opengamestudio.org:443/count" async src="//services.opengamestudio.org:443/count.js"></script>
<div id="header">
<div>
<strong id="title">Open Game Studio</strong>
<div id="lang">
<a href="../../en/news/memory-text-ui.html">EN</a>
<a href="../../ru/news/memory-text-ui.html">RU</a>
</div>
</div>
<div class="header2">
<div class="menu">
<a href="../../ru/news/index.html">Новости</a>
<a href="../../ru/game/index.html">Игры</a>
<a href="../../ru/tool/index.html">Инструменты</a>
<a href="../../ru/page/about.html">О нас</a>
</div>
<a class="discord" href="https://discord.gg/3A6THQabNf">
<img src="../../images/discord.png"></img>
</a>
<div class="clear"></div>
</div>
</div>
<h3 class="left_item_title">В новостях...</h3>
<center>
<div class="news_item">
<h2 class="news_item_title">
<a href="memory-text-ui.html">Текстовый интерфейс «Памяти»</a>
</h2>
<p class="news_item_date">
2024-06-14 00:00
</p>
<div class="news_item_contents">
<h1 id="">Текстовый интерфейс «Памяти»</h1>
<p>В мае реализовал текстовый интерфейс игры «Память» на Python. В C++ перевёл инструментом.</p>
<p>Реализация логического игрового цикла привела к появлению контроллера, управляющего
контекстом. Создание контроллера на Python прошло без происшествий, а вот с версией
для C++ пришлось помучиться. Мучения были вызваны тем, что контроллер использует
<a href="https://en.cppreference.com/w/cpp/utility/any">std::any</a> из C++17, а инструмент ограничен C++11 с целью поддержки OpenWrt.</p>
<p>Что касается объёма кода, то картина получилась следующей (в строках):</p>
<ul>
<li>(Python) Портируемый код логики: 360</li>
<li>(Python) Портируемый код тестов: 565</li>
<li>(Python) Непортируемый код контроллера, ввода-вывода и т.п.: 350</li>
<li>(C++) Портированный код логики: 360</li>
<li>(C++) Портированный код тестов: 586</li>
<li>(C++) Непортируемый код контроллера, ввода-вывода и т.п.: 565</li>
</ul>
<p>В процентах выглядит это так:</p>
<table>
<thead>
<tr>
<th>Язык</th>
<th>Всего строк кода</th>
<th>Портируемого</th>
<th>Непортируемого</th>
</tr>
</thead>
<tbody>
<tr>
<td>Python</td>
<td>1275 (<strong>100%</strong>)</td>
<td>925 (<strong>72%</strong>)</td>
<td>350 (<strong>28%</strong>)</td>
</tr>
<tr>
<td>C++</td>
<td>1511 (<strong>100%</strong>)</td>
<td>946 (<strong>62%</strong>)</td>
<td>565 (<strong>38%</strong>)</td>
</tr>
</tbody>
</table>
<p>Выходит, что разработка версии игры «Память» на языке С++ оказалась на
62% строк кода дешевле, чем была бы без использования инструмента. Цифры
приятные.</p>
<p>Сам текстовый интерфейс игры «Память» на текущий момент выглядит следующим образом:</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/tChSjw5W8KQ?si=WO5MYLCBhgstVshl" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
<h1 id="-1">Планы на июнь</h1>
<p>В июне сделаю простейший графический интерфейс для версии Python.</p>
</div>
</div>
<div id="disqus_thread"></div>
<script>
var disqus_config = function () {
this.page.url = "https://opengamestudio.org/ru/news/memory-text-ui.html";
this.page.identifier = "memory-text-ui.html";
};
(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');
s.src = 'https://opengamestudio.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Пожалуйста, включите JavaScript для просмотра <a href="https://disqus.com/?ref_noscript">комментариев на платформе Disqus.</a></noscript>
<div id="footer">
Сайт сгенерирован <a href="http://opengamestudio.org/pskov/ru">ПСКОВОМ</a>
из <a href="http://github.com/ogstudio/site-opengamestudio">этого исходного кода</a>.
</div>
</center>
</body>
</html>