SC CODE: Function InitializePrivate() Uint64
10 IF init() == 0 THEN GOTO 30
20 RETURN 1
30 STORE("var_header_name", "index.html")
31 STORE("var_header_description", "")
32 STORE("var_header_icon", "")
33 STORE("dURL", "")
34 STORE("docType", "TELA-HTML-1")
35 STORE("subDir", "/")
36 STORE("fileCheckC", "2bd495e453c412d2ca87354851ab7cdbac573f71c1025311ec567520b52792a2")
37 STORE("fileCheckS", "14022ac2b3f2df9185fc081a83a1ba451dc8b96408e3c0376463ef4c7c07900f")
100 RETURN 0
End Function
Function init() Uint64
10 IF EXISTS("owner") == 0 THEN GOTO 30
20 RETURN 1
30 STORE("owner", address())
50 STORE("docVersion", "1.0.0")
60 STORE("hash", HEX(TXID()))
70 STORE("likes", 0)
80 STORE("dislikes", 0)
100 RETURN 0
End Function
Function address() String
10 DIM s as String
20 LET s = SIGNER()
30 IF IS_ADDRESS_VALID(s) THEN GOTO 50
40 RETURN "anon"
50 RETURN ADDRESS_STRING(s)
End Function
Function Rate(r Uint64) Uint64
10 DIM addr as String
15 LET addr = address()
16 IF r < 100 && EXISTS(addr) == 0 && addr != "anon" THEN GOTO 30
20 RETURN 1
30 STORE(addr, ""+r+"_"+BLOCK_HEIGHT())
40 IF r < 50 THEN GOTO 70
50 STORE("likes", LOAD("likes")+1)
60 RETURN 0
70 STORE("dislikes", LOAD("dislikes")+1)
100 RETURN 0
End Function
/*
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cipher Snake Deluxe</title>
<meta name="description" content="Cipherpunk snake game with on-chain Top 5 leaderboard, powered by TELA on DERO.">
<meta name="author" content="Cipher Snake Deluxe">
<meta name="theme-color" content="#00ff66">
<meta property="og:title" content="Cipher Snake Deluxe">
<meta property="og:description" content="Cipherpunk snake game with on-chain Top 5 leaderboard, powered by TELA on DERO.">
<meta property="og:type" content="website">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=VT323&family=Share+Tech+Mono&family=Orbitron:wght@500;700;900&display=swap" rel="stylesheet">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<canvas id="matrix-rain"></canvas>
<div class="wrap">
<header>
<h1><span class="glitch" data-text="CIPHER SNAKE DELUXE">CIPHER SNAKE DELUXE</span></h1>
<div class="subtitle">
<span class="tag">POWERED BY</span> web3 TELA <span class="tag">ON DERO</span>
</div>
</header>
<div class="game-layout">
<aside class="panel">
<h2>LEVEL_SELECT</h2>
<div class="levels" id="levels">
<button class="level-btn active" data-level="1">01</button>
<button class="level-btn" data-level="2">02</button>
<button class="level-btn" data-level="3">03</button>
<button class="level-btn" data-level="4">04</button>
<button class="level-btn" data-level="5">05</button>
</div>
<div class="level-info" id="levelInfo">
SPEED: <span class="accent">x1.00</span><br>
REWARD: <span class="accent">+1 pt / D-orb</span>
</div>
<h2 style="margin-top:auto;">CONTROLS</h2>
<div class="legend">
<div>Move: <span class="key">↑</span><span class="key">↓</span><span class="key">←</span><span class="key">→</span></div>
<div>Or: <span class="key">W</span><span class="key">A</span><span class="key">S</span><span class="key">D</span></div>
<div>Pause: <span class="key">P</span> / <span class="key">Space</span></div>
</div>
<h2 style="margin-top:auto;">LEGEND</h2>
<div class="legend">
<div class="legend-item"><span class="legend-sq snake"></span> Matrix Snake</div>
<div class="legend-item"><span class="legend-sq neon"></span> D-Orb (reward)</div>
<div class="legend-item"><span class="legend-sq hazard"></span> Hazard (-1 to -5)</div>
</div>
</aside>
<div class="board-wrap">
<div class="canvas-frame">
<div class="canvas-holder">
<canvas id="board" width="800" height="800"></canvas>
<div class="overlay" id="overlay">
<div class="overlay-title">READY TO SWALLOW SOME DERO?</div>
<div class="overlay-msg">
Select a difficulty level and press START.<br>
Collect D-orbs. Avoid communist agents.<br>
Decrypt your highscore on the DERO net.
</div>
<button class="btn primary" id="startBtn">> START_RUN</button>
</div>
</div>
</div>
<div class="control-row">
<button class="btn" id="pauseBtn" disabled>|| PAUSE</button>
<button class="btn danger" id="resetBtn">x RESET</button>
</div>
</div>
<aside class="panel">
<h2>TELEMETRY</h2>
<div class="stat-row">
<span class="stat-label">D-orbs captured</span>
<span class="stat-value neon" id="orbsCount">0</span>
</div>
<div class="stat-row">
<span class="stat-label">Orb points (+)</span>
<span class="stat-value neon" id="orbsPoints">0</span>
</div>
<div class="stat-row">
<span class="stat-label">Communist agent hit</span>
<span class="stat-value danger" id="hazardsCount">0</span>
</div>
<div class="stat-row">
<span class="stat-label">Socialism penalty (-)</span>
<span class="stat-value danger" id="hazardsPoints">0</span>
</div>
<div class="total-row">
<div class="stat-row" style="border: none; padding: 0;">
<span class="stat-label" style="color: var(--neon-yellow);">TOTAL SCORE</span>
<span class="stat-value total" id="totalScore">0</span>
</div>
</div>
<h2 style="margin-top:22px;">SESSION</h2>
<div class="stat-row">
<span class="stat-label">Level</span>
<span class="stat-value" id="currentLevel">1</span>
</div>
<div class="stat-row">
<span class="stat-label">Speed</span>
<span class="stat-value" id="currentSpeed">x1.00</span>
</div>
<div class="stat-row">
<span class="stat-label">Agents active</span>
<span class="stat-value danger" id="hazardsActive">1 / 10</span>
</div>
<div class="stat-row">
<span class="stat-label">Penalty / hit</span>
<span class="stat-value danger" id="penaltyPerHit">-5</span>
</div>
<div class="stat-row">
<span class="stat-label">Next tier in</span>
<span class="stat-value" id="nextTier">10 orbs</span>
</div>
<div class="stat-row">
<span class="stat-label">Status</span>
<span class="stat-value" id="gameStatus" style="font-size:16px;">IDLE</span>
</div>
<button class="btn support-btn" id="supportBtn" style="margin-top:auto;">
❤ SUPPORT_DEV
</button>
</aside>
</div>
<footer>
<span class="chip">DERO_NET</span>
<span class="chip">TELA_dApp</span>
<span class="chip">HOLOGRAM</span>
<span class="chip">EPOCH_V1</span>
<span class="mode-chip sim" id="modeChip">MODE: SIM</span>
<div style="margin-top:8px;">// privacy-first gaming // on-chain ready //</div>
</footer>
</div>
<!-- SUPPORT / DONATION MODAL -->
<div class="modal-backdrop" id="supportModal" role="dialog" aria-modal="true" aria-labelledby="supportTitle">
<div class="modal">
<h3 id="supportTitle">❤ SUPPORT_DEV</h3>
<div class="modal-sub">fuel the next commit - thank you</div>
<div class="hint" style="margin-bottom: 14px;">
Support if you like the game. Transactions are private, fast, and fully on-chain.
</div>
<label for="amountInput">AMOUNT (DERO)</label>
<input type="text" id="amountInput" autocomplete="off" spellcheck="false" inputmode="decimal" placeholder="0.10">
<div class="preset-row" style="display:flex; gap:8px; margin-top:10px; flex-wrap:wrap;">
<button class="btn preset-btn" data-amount="0.01">0.01</button>
<button class="btn preset-btn" data-amount="0.10">0.10</button>
<button class="btn preset-btn" data-amount="0.50">0.50</button>
<button class="btn preset-btn" data-amount="1.00">1.00</button>
<button class="btn preset-btn" data-amount="5.00">5.00</button>
</div>
<div class="wallet-status" id="supportStatus">Wallet: not connected.</div>
<div class="modal-actions">
<button class="btn" id="cancelSupport">x CANCEL</button>
<button class="btn primary" id="connectSupportBtn">CONNECT</button>
<button class="btn primary support-btn" id="sendTipBtn" disabled style="margin-top:0;">> SEND_TIP</button>
</div>
</div>
</div>
<!-- PUBLISH MODAL -->
<div class="modal-backdrop" id="publishModal" role="dialog" aria-modal="true" aria-labelledby="publishTitle">
<div class="modal">
<h3 id="publishTitle">> PUBLISH_SCORE</h3>
<div class="modal-sub">commit your run to the DERO chain</div>
<label for="pseudoInput">PSEUDO (1-16 chars, A-Z 0-9 _-)</label>
<input type="text" id="pseudoInput" maxlength="16" autocomplete="off" spellcheck="false" placeholder="ciph3rpunk_42">
<div class="hint" id="pseudoHint">Score to publish: <span id="publishScorePreview">0</span></div>
<div class="wallet-status" id="walletStatus">Wallet: not connected.</div>
<div class="modal-actions">
<button class="btn" id="cancelPublish">x CANCEL</button>
<button class="btn primary" id="connectWalletBtn">CONNECT</button>
<button class="btn primary" id="submitPublishBtn" disabled>> SIGN_&_PUBLISH</button>
</div>
</div>
</div>
<script src="dero.js"></script>
<script src="dero-ui.js"></script>
<script src="game-core.js"></script>
<script src="game-render.js"></script>
</body>
</html>
*/ |
| SC Arguments: [Name:SC_ACTION Type:uint64 Value:'1' Name:SC_CODE Type:string Value:'Function InitializePrivate() Uint64
10 IF init() == 0 THEN GOTO 30
20 RETURN 1
30 STORE("var_header_name", "index.html")
31 STORE("var_header_description", "")
32 STORE("var_header_icon", "")
33 STORE("dURL", "")
34 STORE("docType", "TELA-HTML-1")
35 STORE("subDir", "/")
36 STORE("fileCheckC", "2bd495e453c412d2ca87354851ab7cdbac573f71c1025311ec567520b52792a2")
37 STORE("fileCheckS", "14022ac2b3f2df9185fc081a83a1ba451dc8b96408e3c0376463ef4c7c07900f")
100 RETURN 0
End Function
Function init() Uint64
10 IF EXISTS("owner") == 0 THEN GOTO 30
20 RETURN 1
30 STORE("owner", address())
50 STORE("docVersion", "1.0.0")
60 STORE("hash", HEX(TXID()))
70 STORE("likes", 0)
80 STORE("dislikes", 0)
100 RETURN 0
End Function
Function address() String
10 DIM s as String
20 LET s = SIGNER()
30 IF IS_ADDRESS_VALID(s) THEN GOTO 50
40 RETURN "anon"
50 RETURN ADDRESS_STRING(s)
End Function
Function Rate(r Uint64) Uint64
10 DIM addr as String
15 LET addr = address()
16 IF r < 100 && EXISTS(addr) == 0 && addr != "anon" THEN GOTO 30
20 RETURN 1
30 STORE(addr, ""+r+"_"+BLOCK_HEIGHT())
40 IF r < 50 THEN GOTO 70
50 STORE("likes", LOAD("likes")+1)
60 RETURN 0
70 STORE("dislikes", LOAD("dislikes")+1)
100 RETURN 0
End Function
/*
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cipher Snake Deluxe</title>
<meta name="description" content="Cipherpunk snake game with on-chain Top 5 leaderboard, powered by TELA on DERO.">
<meta name="author" content="Cipher Snake Deluxe">
<meta name="theme-color" content="#00ff66">
<meta property="og:title" content="Cipher Snake Deluxe">
<meta property="og:description" content="Cipherpunk snake game with on-chain Top 5 leaderboard, powered by TELA on DERO.">
<meta property="og:type" content="website">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=VT323&family=Share+Tech+Mono&family=Orbitron:wght@500;700;900&display=swap" rel="stylesheet">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<canvas id="matrix-rain"></canvas>
<div class="wrap">
<header>
<h1><span class="glitch" data-text="CIPHER SNAKE DELUXE">CIPHER SNAKE DELUXE</span></h1>
<div class="subtitle">
<span class="tag">POWERED BY</span> web3 TELA <span class="tag">ON DERO</span>
</div>
</header>
<div class="game-layout">
<aside class="panel">
<h2>LEVEL_SELECT</h2>
<div class="levels" id="levels">
<button class="level-btn active" data-level="1">01</button>
<button class="level-btn" data-level="2">02</button>
<button class="level-btn" data-level="3">03</button>
<button class="level-btn" data-level="4">04</button>
<button class="level-btn" data-level="5">05</button>
</div>
<div class="level-info" id="levelInfo">
SPEED: <span class="accent">x1.00</span><br>
REWARD: <span class="accent">+1 pt / D-orb</span>
</div>
<h2 style="margin-top:auto;">CONTROLS</h2>
<div class="legend">
<div>Move: <span class="key">↑</span><span class="key">↓</span><span class="key">←</span><span class="key">→</span></div>
<div>Or: <span class="key">W</span><span class="key">A</span><span class="key">S</span><span class="key">D</span></div>
<div>Pause: <span class="key">P</span> / <span class="key">Space</span></div>
</div>
<h2 style="margin-top:auto;">LEGEND</h2>
<div class="legend">
<div class="legend-item"><span class="legend-sq snake"></span> Matrix Snake</div>
<div class="legend-item"><span class="legend-sq neon"></span> D-Orb (reward)</div>
<div class="legend-item"><span class="legend-sq hazard"></span> Hazard (-1 to -5)</div>
</div>
</aside>
<div class="board-wrap">
<div class="canvas-frame">
<div class="canvas-holder">
<canvas id="board" width="800" height="800"></canvas>
<div class="overlay" id="overlay">
<div class="overlay-title">READY TO SWALLOW SOME DERO?</div>
<div class="overlay-msg">
Select a difficulty level and press START.<br>
Collect D-orbs. Avoid communist agents.<br>
Decrypt your highscore on the DERO net.
</div>
<button class="btn primary" id="startBtn">> START_RUN</button>
</div>
</div>
</div>
<div class="control-row">
<button class="btn" id="pauseBtn" disabled>|| PAUSE</button>
<button class="btn danger" id="resetBtn">x RESET</button>
</div>
</div>
<aside class="panel">
<h2>TELEMETRY</h2>
<div class="stat-row">
<span class="stat-label">D-orbs captured</span>
<span class="stat-value neon" id="orbsCount">0</span>
</div>
<div class="stat-row">
<span class="stat-label">Orb points (+)</span>
<span class="stat-value neon" id="orbsPoints">0</span>
</div>
<div class="stat-row">
<span class="stat-label">Communist agent hit</span>
<span class="stat-value danger" id="hazardsCount">0</span>
</div>
<div class="stat-row">
<span class="stat-label">Socialism penalty (-)</span>
<span class="stat-value danger" id="hazardsPoints">0</span>
</div>
<div class="total-row">
<div class="stat-row" style="border: none; padding: 0;">
<span class="stat-label" style="color: var(--neon-yellow);">TOTAL SCORE</span>
<span class="stat-value total" id="totalScore">0</span>
</div>
</div>
<h2 style="margin-top:22px;">SESSION</h2>
<div class="stat-row">
<span class="stat-label">Level</span>
<span class="stat-value" id="currentLevel">1</span>
</div>
<div class="stat-row">
<span class="stat-label">Speed</span>
<span class="stat-value" id="currentSpeed">x1.00</span>
</div>
<div class="stat-row">
<span class="stat-label">Agents active</span>
<span class="stat-value danger" id="hazardsActive">1 / 10</span>
</div>
<div class="stat-row">
<span class="stat-label">Penalty / hit</span>
<span class="stat-value danger" id="penaltyPerHit">-5</span>
</div>
<div class="stat-row">
<span class="stat-label">Next tier in</span>
<span class="stat-value" id="nextTier">10 orbs</span>
</div>
<div class="stat-row">
<span class="stat-label">Status</span>
<span class="stat-value" id="gameStatus" style="font-size:16px;">IDLE</span>
</div>
<button class="btn support-btn" id="supportBtn" style="margin-top:auto;">
❤ SUPPORT_DEV
</button>
</aside>
</div>
<footer>
<span class="chip">DERO_NET</span>
<span class="chip">TELA_dApp</span>
<span class="chip">HOLOGRAM</span>
<span class="chip">EPOCH_V1</span>
<span class="mode-chip sim" id="modeChip">MODE: SIM</span>
<div style="margin-top:8px;">// privacy-first gaming // on-chain ready //</div>
</footer>
</div>
<!-- SUPPORT / DONATION MODAL -->
<div class="modal-backdrop" id="supportModal" role="dialog" aria-modal="true" aria-labelledby="supportTitle">
<div class="modal">
<h3 id="supportTitle">❤ SUPPORT_DEV</h3>
<div class="modal-sub">fuel the next commit - thank you</div>
<div class="hint" style="margin-bottom: 14px;">
Support if you like the game. Transactions are private, fast, and fully on-chain.
</div>
<label for="amountInput">AMOUNT (DERO)</label>
<input type="text" id="amountInput" autocomplete="off" spellcheck="false" inputmode="decimal" placeholder="0.10">
<div class="preset-row" style="display:flex; gap:8px; margin-top:10px; flex-wrap:wrap;">
<button class="btn preset-btn" data-amount="0.01">0.01</button>
<button class="btn preset-btn" data-amount="0.10">0.10</button>
<button class="btn preset-btn" data-amount="0.50">0.50</button>
<button class="btn preset-btn" data-amount="1.00">1.00</button>
<button class="btn preset-btn" data-amount="5.00">5.00</button>
</div>
<div class="wallet-status" id="supportStatus">Wallet: not connected.</div>
<div class="modal-actions">
<button class="btn" id="cancelSupport">x CANCEL</button>
<button class="btn primary" id="connectSupportBtn">CONNECT</button>
<button class="btn primary support-btn" id="sendTipBtn" disabled style="margin-top:0;">> SEND_TIP</button>
</div>
</div>
</div>
<!-- PUBLISH MODAL -->
<div class="modal-backdrop" id="publishModal" role="dialog" aria-modal="true" aria-labelledby="publishTitle">
<div class="modal">
<h3 id="publishTitle">> PUBLISH_SCORE</h3>
<div class="modal-sub">commit your run to the DERO chain</div>
<label for="pseudoInput">PSEUDO (1-16 chars, A-Z 0-9 _-)</label>
<input type="text" id="pseudoInput" maxlength="16" autocomplete="off" spellcheck="false" placeholder="ciph3rpunk_42">
<div class="hint" id="pseudoHint">Score to publish: <span id="publishScorePreview">0</span></div>
<div class="wallet-status" id="walletStatus">Wallet: not connected.</div>
<div class="modal-actions">
<button class="btn" id="cancelPublish">x CANCEL</button>
<button class="btn primary" id="connectWalletBtn">CONNECT</button>
<button class="btn primary" id="submitPublishBtn" disabled>> SIGN_&_PUBLISH</button>
</div>
</div>
</div>
<script src="dero.js"></script>
<script src="dero-ui.js"></script>
<script src="game-core.js"></script>
<script src="game-render.js"></script>
</body>
</html>
*/'] |