사운드 추가

전면광고 조건 변경 -> 스테이지 클리어시 +1, 셔플시 +1, 총 5가 되면 다음 스테이지 시작 전 광고재생 -> 카운트 0

퍼즐 추가, 스테이지 추가.
This commit is contained in:
2026-10-06 00:54:37 +09:00
parent e4b3e50ba8
commit 740aad77b3
120 changed files with 21565 additions and 6835 deletions
File diff suppressed because it is too large Load Diff
@@ -9,6 +9,16 @@ color text_primary
color text_secondary
mipmap ic_launcher
mipmap ic_launcher_round
raw bgm_lobby
raw bgm_main
raw bgm_puzzle_1
raw bgm_puzzle_2
raw bgm_puzzle_3
raw sfx_correct
raw sfx_stage_clear
raw sfx_tile_click
raw sfx_tile_place
raw sfx_wrong
string app_name
string daily_limit_reached
string easy_mode
@@ -1,46 +1,86 @@
[
{
"merged": "com.wordpuzzle.hangul.app-debug-79:/mipmap-mdpi_ic_launcher_round.png.flat",
"source": "com.wordpuzzle.hangul.app-main-81:/mipmap-mdpi/ic_launcher_round.png"
"merged": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-debug-79:/raw_bgm_main.mp3.flat",
"source": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-main-81:/raw/bgm_main.mp3"
},
{
"merged": "com.wordpuzzle.hangul.app-debug-79:/mipmap-xhdpi_ic_launcher_round.png.flat",
"source": "com.wordpuzzle.hangul.app-main-81:/mipmap-xhdpi/ic_launcher_round.png"
"merged": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-debug-79:/mipmap-xhdpi_ic_launcher_round.png.flat",
"source": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-main-81:/mipmap-xhdpi/ic_launcher_round.png"
},
{
"merged": "com.wordpuzzle.hangul.app-debug-79:/mipmap-xhdpi_ic_launcher.png.flat",
"source": "com.wordpuzzle.hangul.app-main-81:/mipmap-xhdpi/ic_launcher.png"
"merged": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-debug-79:/mipmap-xhdpi_ic_launcher.png.flat",
"source": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-main-81:/mipmap-xhdpi/ic_launcher.png"
},
{
"merged": "com.wordpuzzle.hangul.app-debug-79:/mipmap-hdpi_ic_launcher.png.flat",
"source": "com.wordpuzzle.hangul.app-main-81:/mipmap-hdpi/ic_launcher.png"
"merged": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-debug-79:/mipmap-hdpi_ic_launcher.png.flat",
"source": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-main-81:/mipmap-hdpi/ic_launcher.png"
},
{
"merged": "com.wordpuzzle.hangul.app-debug-79:/mipmap-xxhdpi_ic_launcher_round.png.flat",
"source": "com.wordpuzzle.hangul.app-main-81:/mipmap-xxhdpi/ic_launcher_round.png"
"merged": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-debug-79:/xml_word_widget_info.xml.flat",
"source": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-main-81:/xml/word_widget_info.xml"
},
{
"merged": "com.wordpuzzle.hangul.app-debug-79:/mipmap-xxxhdpi_ic_launcher.png.flat",
"source": "com.wordpuzzle.hangul.app-main-81:/mipmap-xxxhdpi/ic_launcher.png"
"merged": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-debug-79:/raw_sfx_tile_place.mp3.flat",
"source": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-main-81:/raw/sfx_tile_place.mp3"
},
{
"merged": "com.wordpuzzle.hangul.app-debug-79:/mipmap-hdpi_ic_launcher_round.png.flat",
"source": "com.wordpuzzle.hangul.app-main-81:/mipmap-hdpi/ic_launcher_round.png"
"merged": "com.wordpuzzle.hangul.app-debug-79:/raw_bgm_puzzle_1.mp3.flat",
"source": "com.wordpuzzle.hangul.app-main-81:/raw/bgm_puzzle_1.mp3"
},
{
"merged": "com.wordpuzzle.hangul.app-debug-79:/mipmap-xxxhdpi_ic_launcher_round.png.flat",
"source": "com.wordpuzzle.hangul.app-main-81:/mipmap-xxxhdpi/ic_launcher_round.png"
"merged": "com.wordpuzzle.hangul.app-debug-79:/raw_bgm_lobby.mp3.flat",
"source": "com.wordpuzzle.hangul.app-main-81:/raw/bgm_lobby.mp3"
},
{
"merged": "com.wordpuzzle.hangul.app-debug-79:/xml_word_widget_info.xml.flat",
"source": "com.wordpuzzle.hangul.app-main-81:/xml/word_widget_info.xml"
"merged": "com.wordpuzzle.hangul.app-debug-79:/raw_bgm_puzzle_2.mp3.flat",
"source": "com.wordpuzzle.hangul.app-main-81:/raw/bgm_puzzle_2.mp3"
},
{
"merged": "com.wordpuzzle.hangul.app-debug-79:/mipmap-xxhdpi_ic_launcher.png.flat",
"source": "com.wordpuzzle.hangul.app-main-81:/mipmap-xxhdpi/ic_launcher.png"
"merged": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-debug-79:/raw_sfx_stage_clear.mp3.flat",
"source": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-main-81:/raw/sfx_stage_clear.mp3"
},
{
"merged": "com.wordpuzzle.hangul.app-debug-79:/mipmap-mdpi_ic_launcher.png.flat",
"source": "com.wordpuzzle.hangul.app-main-81:/mipmap-mdpi/ic_launcher.png"
"merged": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-debug-79:/mipmap-xxhdpi_ic_launcher_round.png.flat",
"source": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-main-81:/mipmap-xxhdpi/ic_launcher_round.png"
},
{
"merged": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-debug-79:/raw_sfx_correct.mp3.flat",
"source": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-main-81:/raw/sfx_correct.mp3"
},
{
"merged": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-debug-79:/mipmap-hdpi_ic_launcher_round.png.flat",
"source": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-main-81:/mipmap-hdpi/ic_launcher_round.png"
},
{
"merged": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-debug-79:/mipmap-mdpi_ic_launcher.png.flat",
"source": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-main-81:/mipmap-mdpi/ic_launcher.png"
},
{
"merged": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-debug-79:/raw_sfx_wrong.mp3.flat",
"source": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-main-81:/raw/sfx_wrong.mp3"
},
{
"merged": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-debug-79:/mipmap-xxhdpi_ic_launcher.png.flat",
"source": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-main-81:/mipmap-xxhdpi/ic_launcher.png"
},
{
"merged": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-debug-79:/mipmap-mdpi_ic_launcher_round.png.flat",
"source": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-main-81:/mipmap-mdpi/ic_launcher_round.png"
},
{
"merged": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-debug-79:/mipmap-xxxhdpi_ic_launcher.png.flat",
"source": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-main-81:/mipmap-xxxhdpi/ic_launcher.png"
},
{
"merged": "com.wordpuzzle.hangul.app-debug-79:/raw_bgm_puzzle_3.mp3.flat",
"source": "com.wordpuzzle.hangul.app-main-81:/raw/bgm_puzzle_3.mp3"
},
{
"merged": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-debug-79:/raw_sfx_tile_click.mp3.flat",
"source": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-main-81:/raw/sfx_tile_click.mp3"
},
{
"merged": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-debug-79:/mipmap-xxxhdpi_ic_launcher_round.png.flat",
"source": "/home/gerd/.gradle/daemon/9.6.0/com.wordpuzzle.hangul.app-main-81:/mipmap-xxxhdpi/ic_launcher_round.png"
}
]
@@ -59,7 +59,7 @@
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.014s</div>
<div class="counter">0.012s</div>
<p>duration</p>
</div>
</td>
@@ -95,7 +95,7 @@
<td>1</td>
<td>0</td>
<td>0</td>
<td data-sort-value="9">0.009s</td>
<td data-sort-value="8">0.008s</td>
<td class="success" data-sort-value="100">100%</td>
</tr>
</tbody>
@@ -112,7 +112,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.6.0</a> at 2026. 9. 21. 오전 2:11:33</p>
<a href="https://www.gradle.org">Gradle 9.6.0</a> at 2026. 10. 4. 오후 7:45:09</p>
</div>
</div>
</body>
@@ -59,7 +59,7 @@
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.008s</div>
<div class="counter">0.007s</div>
<p>duration</p>
</div>
</td>
@@ -95,7 +95,7 @@
<td>1</td>
<td>0</td>
<td>0</td>
<td data-sort-value="8">0.008s</td>
<td data-sort-value="7">0.007s</td>
<td class="success" data-sort-value="100">100%</td>
</tr>
</tbody>
@@ -112,7 +112,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.6.0</a> at 2026. 9. 21. 오전 2:11:33</p>
<a href="https://www.gradle.org">Gradle 9.6.0</a> at 2026. 10. 4. 오후 7:45:09</p>
</div>
</div>
</body>
@@ -59,7 +59,7 @@
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.005s</div>
<div class="counter">0.012s</div>
<p>duration</p>
</div>
</td>
@@ -95,7 +95,7 @@
<td>1</td>
<td>0</td>
<td>0</td>
<td data-sort-value="2">0.002s</td>
<td data-sort-value="9">0.009s</td>
<td class="success" data-sort-value="100">100%</td>
</tr>
<tr>
@@ -139,7 +139,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.6.0</a> at 2026. 9. 21. 오전 2:11:33</p>
<a href="https://www.gradle.org">Gradle 9.6.0</a> at 2026. 10. 4. 오후 7:45:09</p>
</div>
</div>
</body>
@@ -56,7 +56,7 @@
</td>
<td>
<div class="infoBox duration">
<div class="counter">0.472s</div>
<div class="counter">0.518s</div>
<p>duration</p>
</div>
</td>
@@ -94,7 +94,7 @@
<td>1</td>
<td>0</td>
<td>0</td>
<td data-sort-value="14">0.014s</td>
<td data-sort-value="12">0.012s</td>
<td class="success" data-sort-value="100">100%</td>
</tr>
<tr>
@@ -105,7 +105,7 @@
<td>1</td>
<td>0</td>
<td>0</td>
<td data-sort-value="58">0.058s</td>
<td data-sort-value="100">0.100s</td>
<td class="success" data-sort-value="100">100%</td>
</tr>
<tr>
@@ -116,7 +116,7 @@
<td>1</td>
<td>0</td>
<td>0</td>
<td data-sort-value="8">0.008s</td>
<td data-sort-value="7">0.007s</td>
<td class="success" data-sort-value="100">100%</td>
</tr>
<tr>
@@ -127,7 +127,7 @@
<td>4</td>
<td>0</td>
<td>0</td>
<td data-sort-value="5">0.005s</td>
<td data-sort-value="12">0.012s</td>
<td class="success" data-sort-value="100">100%</td>
</tr>
<tr>
@@ -155,7 +155,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="https://www.gradle.org">Gradle 9.6.0</a> at 2026. 9. 21. 오전 2:11:33</p>
<a href="https://www.gradle.org">Gradle 9.6.0</a> at 2026. 10. 4. 오후 7:45:09</p>
</div>
</div>
</body>
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="com.wordpuzzle.hangul.domain.engine.HangulHelperTest" tests="1" skipped="0" failures="0" errors="0" timestamp="2026-09-20T17:11:33.074Z" hostname="vivoboxx" time="0.012">
<testsuite name="com.wordpuzzle.hangul.domain.engine.HangulHelperTest" tests="1" skipped="0" failures="0" errors="0" timestamp="2026-10-04T10:45:09.160Z" hostname="vivoboxx" time="0.011">
<properties/>
<testcase name="isHangulSyllable_validatesCorrectly" classname="com.wordpuzzle.hangul.domain.engine.HangulHelperTest" time="0.009"/>
<testcase name="isHangulSyllable_validatesCorrectly" classname="com.wordpuzzle.hangul.domain.engine.HangulHelperTest" time="0.008"/>
<system-out><![CDATA[]]></system-out>
<system-err><![CDATA[]]></system-err>
</testsuite>
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="com.wordpuzzle.hangul.domain.engine.TilePoolGeneratorTest" tests="1" skipped="0" failures="0" errors="0" timestamp="2026-09-20T17:11:33.149Z" hostname="vivoboxx" time="0.008">
<testsuite name="com.wordpuzzle.hangul.domain.engine.TilePoolGeneratorTest" tests="1" skipped="0" failures="0" errors="0" timestamp="2026-10-04T10:45:09.276Z" hostname="vivoboxx" time="0.007">
<properties/>
<testcase name="generateLayoutWithStarterLetters_respectsFiftyPercentLimitAndPlacesStarterLettersCorrectly" classname="com.wordpuzzle.hangul.domain.engine.TilePoolGeneratorTest" time="0.008"/>
<testcase name="generateLayoutWithStarterLetters_respectsFiftyPercentLimitAndPlacesStarterLettersCorrectly" classname="com.wordpuzzle.hangul.domain.engine.TilePoolGeneratorTest" time="0.007"/>
<system-out><![CDATA[]]></system-out>
<system-err><![CDATA[]]></system-err>
</testsuite>
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="com.wordpuzzle.hangul.domain.usecase.SolveTileUseCaseTest" tests="4" skipped="0" failures="0" errors="0" timestamp="2026-09-20T17:11:33.160Z" hostname="vivoboxx" time="0.005">
<testsuite name="com.wordpuzzle.hangul.domain.usecase.SolveTileUseCaseTest" tests="4" skipped="0" failures="0" errors="0" timestamp="2026-10-04T10:45:09.286Z" hostname="vivoboxx" time="0.012">
<properties/>
<testcase name="removeCellChar_restoresTileToPool" classname="com.wordpuzzle.hangul.domain.usecase.SolveTileUseCaseTest" time="0.002"/>
<testcase name="applyHint_revealsOneCell" classname="com.wordpuzzle.hangul.domain.usecase.SolveTileUseCaseTest" time="0.002"/>
<testcase name="applyHint_revealsOneCell" classname="com.wordpuzzle.hangul.domain.usecase.SolveTileUseCaseTest" time="0.009"/>
<testcase name="easyMode_tapTile_automaticallyInsertsIntoCorrectCell_andClears" classname="com.wordpuzzle.hangul.domain.usecase.SolveTileUseCaseTest" time="0.001"/>
<testcase name="normalMode_insertChar_advancesToNextCellInWord_orClosestCell()" classname="com.wordpuzzle.hangul.domain.usecase.SolveTileUseCaseTest" time="0.0"/>
<system-out><![CDATA[]]></system-out>

Some files were not shown because too many files have changed in this diff Show More