<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Marlon Joseph</title>
    <description>The latest articles on DEV Community by Marlon Joseph (@jona_mike).</description>
    <link>https://dev.to/jona_mike</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3802309%2F9d8ba331-bebb-4b78-9d52-878cfa04f822.jpg</url>
      <title>DEV Community: Marlon Joseph</title>
      <link>https://dev.to/jona_mike</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jona_mike"/>
    <language>en</language>
    <item>
      <title>Finding the Right Reference Changed Everything for my Project</title>
      <dc:creator>Marlon Joseph</dc:creator>
      <pubDate>Tue, 10 Mar 2026 06:00:27 +0000</pubDate>
      <link>https://dev.to/jona_mike/finding-the-right-reference-changed-everything-for-my-project-3bom</link>
      <guid>https://dev.to/jona_mike/finding-the-right-reference-changed-everything-for-my-project-3bom</guid>
      <description>&lt;p&gt;I got hooked on &lt;strong&gt;Wood Block Puzzle&lt;/strong&gt; and eventually got frustrated enough to build a solver for it. Read the board from a screenshot, figure out where each piece fits best and show the optimal move. Sounded straightforward until I tried to plan the actual architecture.&lt;br&gt;
How do you reliably extract a game board from a phone screenshot? What should the evaluation logic prioritize, clearing lines immediately or keeping the board open for future moves? I had questions but no clear starting point.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Discovering a Working Reference&lt;/strong&gt;&lt;br&gt;
I dug through &lt;strong&gt;&lt;a href="https://github.com/" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; and dev forums&lt;/strong&gt; looking for grid-based puzzle solvers. Most repos were either abandoned or built for Tetris, which has gravity mechanics that don't apply here. I needed something built for a static placement game that drop pieces on a board, clear rows and columns where no time pressure applies.&lt;br&gt;
After searching through several projects, I found a working &lt;a href="https://github.com/osamamasood001/block-blast-solver" rel="noopener noreferrer"&gt;repo&lt;/a&gt; that was actively maintained. Block Blast shares the same fundamental mechanics as Wood Block Puzzle i.e grid board, shape placement, line clearing. The project even had a fully functional live version as &lt;a href="//aiblockblastsolver.com"&gt;Block Blast Solver&lt;/a&gt; with screenshot-based solving. The full pipeline was proven and running.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4i89qkg35ht00enxtj19.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4i89qkg35ht00enxtj19.jpeg" alt="Figure1. Credit:aiblockblastsolver.com" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Three Things That Reshaped My Approach&lt;/strong&gt;&lt;br&gt;
Studying the codebase changed how I thought about the problem:&lt;br&gt;
&lt;strong&gt;Screenshot parsing is the real challenge.&lt;/strong&gt; &lt;br&gt;
The solver logic was surprisingly clean. The heavy lifting was in detecting the board state from screenshots as it has been trained by YOLO across multiple game themes because color variations completely break naive detection.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Smart scoring beats greedy scoring.&lt;/strong&gt; &lt;br&gt;
Instead of just maximizing immediate clears, the evaluation weighted board openness, center availability and multi-move look ahead. I adopted a similar approach for my own scoring function.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Raw detection isn't enough.&lt;/strong&gt; &lt;br&gt;
A validation layer that used grid structure to compensate for missed cell detections. Without this, small pieces get misread constantly. I would have learned this the hard way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Adapting It&lt;/strong&gt;&lt;br&gt;
Having a working reference saved me weeks as the specific game barely matters but the engineering patterns underneath are universal.&lt;br&gt;
Sometimes the smartest move in development is the same as in the game: look at the whole board before you place your first piece.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>computervision</category>
      <category>github</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>Get ready for the launch and feedback - Block Blast Solver</title>
      <dc:creator>Marlon Joseph</dc:creator>
      <pubDate>Sat, 07 Mar 2026 06:55:35 +0000</pubDate>
      <link>https://dev.to/jona_mike/get-ready-for-the-launch-and-feedback-block-blast-solver-h42</link>
      <guid>https://dev.to/jona_mike/get-ready-for-the-launch-and-feedback-block-blast-solver-h42</guid>
      <description>&lt;p&gt;Hey! I just schedule a launch of my Block Blast Solver tool on Product Hunt today March 7th, 2026 12:01 AM PST.&lt;/p&gt;

&lt;p&gt;It’s a tool that analyzes puzzle boards for block blast related games and suggests better placements to avoid dead ends.&lt;/p&gt;

&lt;p&gt;Would appreciate your feedback 🙌&lt;br&gt;
&lt;a href="https://producthunt.com/products/block-blast-solver-9" rel="noopener noreferrer"&gt;Product Hunt Launch&lt;/a&gt;&lt;/p&gt;

</description>
      <category>blockblast</category>
      <category>ai</category>
      <category>boardgame</category>
      <category>puzzles</category>
    </item>
  </channel>
</rss>
