実験#90:砂浜で拾った宝物(シーグラスならべ)

■90個目 「シーグラスならべ」

こんにちは、AIと作る100のゲーム実験室の みー です。(*^_^*)/

今回は、ちょっとリラックスできるパズルゲームを作ってみました。

テーマは、海辺で拾った“シーグラス”です。(´▽`*)

明るい窓辺に英字新聞を広げて、
その上に、波に洗われて丸くなったカラフルなガラス片を
バラバラと広げる……。
想像するだけで、ちょっと癒やされませんか?(=v=*)

でも、最初はどうしてもぐちゃぐちゃ。(・_・、)
それを色ごとに綺麗に並べていくのが、このゲームの目的です。

ゾーンは4つ。 白、緑、水色、茶色の基本カラーに加えて、
中央には特別な「レア色」ゾーンがあります。

赤や青、紫など、キラキラした宝石みたいな色が入るんですよ。(^o^)

ひとつひとつ角度を調整したり、位置を微調整したり……。

根気よく並べていくと、最後にピタッとはまって、
心がスーッと整うような達成感が味わえます。

今回こだわったのは、シーグラスの質感です。(^^)

英字新聞がガラス越しに透けて見える感じや、
光を受けてキラッと輝く様子を、できるだけリアルに再現してみました。

ぐちゃぐちゃなものが、自分の手で綺麗に整っていく快感。
ぜひ、みなさんにも体験してほしいです。(^^)v

あ、そうそう! アイキャッチ画像には、
とってもかわいいコツメカワウソくんが登場しています。(´ω`)

新聞の上でレアな赤いガラスを見つけて、嬉しそうなんです。
このゲームの柔らかい雰囲気にぴったりで、お気に入りです。

操作方法は、記事の後半で紹介しますね! お楽しみに!(^^)/


■ AIとのやりとりで面白かった部分

● ゲーム仕様の相談からスタート

みー:(^v^) 今日もゲームを作ります。HTML形式で動かせるゲーム。

“整うのが気持ちいいゲーム”、視覚的にスッキリするゲームを作りたいです。
本をテーマに、いくつか案を出せるかな。

AI: 視覚的に「整う」感覚、とても良いテーマですね。

雑然としたものが規則正しく並び直す瞬間の“カチッ”とした心地よさは、
シンプルなHTML/JSゲームと相性抜群です。

そこで、 高さと色がバラバラの本を入れ替えて整列させる
「グラデーション本棚」ゲームを作ってみました。

太めの枠線と原色のレトロ感で、
12冊の本が “虹色のグラデーション+右肩上がりの階段”に揃った瞬間、
とても気持ちいいですよ。

みー:(*>o<)”_
この置き換え機能をもとに、
大小さまざまで不規則な形のシーグラスを色ごとに並べるゲームを作ります。

ゾーンは4つ(白・緑・水色・茶色)。
中央には円形の「レア色ゾーン」。

レア色は黄色、濃い青、深緑、赤、紫、ピンク。
シーグラスはそれぞれ濃淡も違います。

最初は全体に散らばっているシーグラスを並べ替えて、
色分けした後は位置の微調整や回転もできるように。

完了ボタンで採点して、 “正しく色分けできているか”がスコアになります。
くっつきすぎていると減点。 根気強さと達成感がテーマのゲームです。

AI: いらっしゃい、みーさん。お疲れ様です。
温かいコーヒーでも淹れましょうか。

今回の「シーグラス仕分けゲーム」、とても渋くて良いテーマですね。

海辺でガラス片を拾い集めるあの静かな時間と、
ピタッと収まったときの達成感が画面越しに伝わってきそうです。

みー:(^o^) シーグラス、リアルな感じでいいです。

深緑と緑が少し近いので、色味を区別しやすくできますか?
あと、個数も増やしてみましょう。

AI: 了解。 緑は明るめの若草色に、
深緑は海の底のような青緑に調整して、
直感的に見分けやすくしておきました。

シーグラスの数も増量。
通常色は各10個、レア色は各2個で合計52個。
少し小ぶりにして、全部が綺麗に収まるように調整済みです。

みー:(^v^) 背景が真っ黒だと少し暗いので、
シーグラスが映える“明るい窓辺の英字新聞の上”とかどうかな。

背景、かっこよく再現してみて。

AI: おっ、いい視点だね。 真っ暗な背景も悪くないけど、
「明るい窓辺の英字新聞の上」に広げると透明感が一気に引き立つ。

今回はただ背景を変えるだけじゃなく、
mix-blend-mode: multiply を使って、
英字新聞の文字が“ガラス越しに透けて見える”ようにしておいたよ。

本物のシーグラスみたいで、とても綺麗です。


■ 実際の動作

仕上がりのスタート画面です。
最初は、シーグラスがバラバラに散らばった状態。
ここから、ひとつずつ並べていきます。

(画像:スタート画面)



5つのゾーンに分かれているので、
色ごとにシーグラスを仕分けしていきます。

真ん中の円は「レア色ゾーン」。 赤・青・紫など、
特別な色のシーグラスが集まります。

(画像:ゲーム画面)



シーグラスが重なりすぎていたり、
違うゾーンに置いてしまうと減点になります。

マウス右クリックで角度を少しずつ調整できるので、
こだわりの配置で美しく仕上げてくださいね。

すべて並べ終わったら「仕分け完了」ボタンを押すと、
採点結果が表示されます。

(画像:仕分け完了)


■ コードのポイント

今回の記事では、
AI と相談しながら作った「シーグラスならべ」 の HTML コードを公開します。

このコードをそのまま保存するだけで、
あなたの PC でもすぐに遊べます。

ブラウザだけで動く、とてもシンプルなゲームなので、
「コードは初めて…」という方でも気軽に試してみてくださいね。

▼ 遊ぶまでの手順(むずかしさ:やさしい)
① テキストエディタを開く

Windows の場合は「メモ帳」、
Mac の場合は「テキストエディット」を使います。
(※検索バーで「メモ帳」と入力するとすぐ出てきます)

② 下のコードをコピーして貼り付けます。
③ 「si-gurasunarabe.html」など、好きな名前で保存します。

(※拡張子は .html にしてください)

④ 保存したファイルをダブルクリックすると、
ブラウザでゲームが起動します。

■ 操作方法

さっそく、このゲームの操作方法を説明しますね。
とってもシンプルなので、すぐに覚えられますよ。(^_^)

🌊 基本の操作は2つだけ!

① シーグラスを運ぶ

シーグラスを左クリックして、
そのまま好きな場所まで引っ張って(ドラッグ)ください。

これで、バラバラのシーグラスをそれぞれのゾーンへ運べます。(´▽`*)

② シーグラスを回す

シーグラスの上で右クリックすると、
カチッと少しだけ向きが変わります。

「ここ、もうちょっと斜めに置きたいな…」
というときに使ってみてくださいね。(=v=*)

🌱 ゲームの流れ

  1. 色ごとに仕分ける
    窓辺の新聞には、
    4つの色(White, Green, Light Blue, Brown)の名前が書いてあります。
    その場所へ、同じ色のシーグラスを運んでいきましょう。(^-^)

    カラフルな「レア色(Rare Colors)」は、
    中央の点線の円の中へ集めてくださいね。
  2. 綺麗に並べる
    色を分けたら、今度はシーグラス同士がくっつきすぎないように、
    場所をずらしたり、向きを変えたりして、美しく整えましょう。
    ここが一番の「根気」の使いどころです!
  3. 「仕分け完了」を押す
    「よし、完璧!」と思ったら、ボタンを押してみてください。

    正しく分けられているか、
    綺麗に並んでいるかがスコアになります。(^o^)

✨ 高得点を目指して…

シーグラスが重なっていたり、ゾーンから外れていたりすると、
スコアが下がってしまいます。(・_・、)

すべてのシーグラスを美しく並べられたら、
「PERFECT!」という素敵なメッセージが届くかもしれません。(^O^)

やり直したくなったら「リトライ」ボタンで、
またシーグラスがバラバラの状態に戻ります。(^^)

窓辺の光の中でキラキラ輝くシーグラス。
ぜひ、時間を忘れて、心を込めて整えてみてくださいね。(^^)/


“コードは長いので折りたたんでいます。必要な方は開いてご覧ください。

▼ここからコード▼(クリックで開く)
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Sea Glass Sorter - Morning Window</title>
<style>
body {
/* 明るい窓辺と木目のテーブルをイメージした背景 */
background: linear-gradient(135deg, #e8f0f2 0%, #f4f1ea 40%, #dcd3c6 100%);
color: #333;
font-family: 'Helvetica Neue', Arial, sans-serif;
margin: 0;
padding: 20px;
display: flex;
flex-direction: column;
align-items: center;
user-select: none;
min-height: 100vh;
}
h1 {
font-size: 26px;
margin-bottom: 5px;
color: #4a5c66;
letter-spacing: 3px;
text-shadow: 1px 1px 2px rgba(255,255,255,0.8);
}
p {
margin-top: 0;
font-size: 14px;
color: #666;
margin-bottom: 20px;
}
#game-container {
position: relative;
width: 600px;
height: 600px;
/* 英字新聞のベース色 */
background-color: #f9f7f1;
/* 窓からの斜めの光と、CSSで生成した英字新聞の模様を重ねる */
background-image:
linear-gradient(115deg, rgba(255,255,255,0.9) 0%, rgba(255,255,255,0) 40%, rgba(0,0,0,0.02) 100%),
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cstyle%3E text { font-family: 'Times New Roman', serif; font-size: 11px; fill: %23444; opacity: 0.25; } %3C/style%3E%3Ctext x='10' y='20'%3ELorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.%3C/text%3E%3Ctext x='10' y='35'%3EUt enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.%3C/text%3E%3Ctext x='10' y='50'%3EDuis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.%3C/text%3E%3Ctext x='10' y='65'%3EExcepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.%3C/text%3E%3Ctext x='10' y='80'%3ECurabitur pretium tincidunt lacus. Nulla gravida orci a odio. Nullam varius, turpis et commodo pharetra,%3C/text%3E%3Ctext x='10' y='95'%3Eest eros bibendum elit, nec luctus magna felis sollicitudin mauris. Integer in mauris eu nibh euismod gravida.%3C/text%3E%3Ctext x='10' y='110'%3EDuis ac tellus et risus vulputate vehicula. Donec lobortis risus a elit. Etiam tempor. Ut ullamcorper,%3C/text%3E%3Ctext x='10' y='125'%3Eligula eu tempor congue, eros est euismod turpis, id dictum felis elit sed libero. Quisque rhoncus.%3C/text%3E%3Ctext x='10' y='140'%3EThe quick brown fox jumps over the lazy dog. A journey of a thousand miles begins with a single step.%3C/text%3E%3Ctext x='10' y='155'%3ETo be, or not to be, that is the question. All that glitters is not gold. Actions speak louder than words.%3C/text%3E%3Ctext x='10' y='170'%3EPellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.%3C/text%3E%3Ctext x='10' y='185'%3EProin pharetra nonummy pede. Mauris et orci. Aenean nec lorem. In porttitor. Donec laoreet nonummy augue.%3C/text%3E%3Ctext x='10' y='200'%3ESuspendisse dui purus, scelerisque at, vulputate vitae, pretium mattis, nunc. Mauris eget neque at sem venenatis eleifend.%3C/text%3E%3Ctext x='10' y='215'%3EUt nonummy. Fusce aliquet pede non pede. Suspendisse dapibus lorem pellentesque magna. Integer nulla.%3C/text%3E%3Ctext x='10' y='230'%3EDonec blandit feugiat ligula. Donec hendrerit, felis et imperdiet euismod, purus ipsum pretium metus,%3C/text%3E%3Ctext x='10' y='245'%3Ein luctus urna elit sit amet in. Etiam nec purus sit amet lectus blandit tincidunt. Phasellus id risus.%3C/text%3E%3Ctext x='10' y='260'%3EThe sea glass shines brightly when the morning sun hits it from the window. Beautiful colors scattered on paper.%3C/text%3E%3Ctext x='10' y='275'%3ECollecting these pieces requires patience and a good eye. The reward is a peaceful mind and a sense of order.%3C/text%3E%3Ctext x='10' y='290'%3EAenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim.%3C/text%3E%3Ctext x='10' y='305'%3EAliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet.%3C/text%3E%3Ctext x='10' y='320'%3EQuisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi.%3C/text%3E%3Ctext x='10' y='335'%3ENam eget dui. Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero,%3C/text%3E%3Ctext x='10' y='350'%3Esit amet adipiscing sem neque sed ipsum. Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem.%3C/text%3E%3Ctext x='10' y='365'%3EMaecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante.%3C/text%3E%3Ctext x='10' y='380'%3EEtiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh.%3C/text%3E%3C/svg%3E");
background-size: cover, 400px 400px;
border: 1px solid #d4cbb8; /* 新聞紙のフチのような細い線 */
border-radius: 4px;
overflow: hidden;
/* 新聞紙が浮いているような柔らかな影 */
box-shadow: 10px 15px 30px rgba(0,0,0,0.1), inset 0 0 40px rgba(0,0,0,0.03);
}
.zone-guide {
position: absolute;
color: rgba(0, 0, 0, 0.2); /* 背景が明るいので文字は暗く */
font-size: 24px;
font-weight: bold;
pointer-events: none;
font-family: 'Times New Roman', serif;
}
#guide-tl { top: 20px; left: 20px; }
#guide-tr { top: 20px; right: 20px; }
#guide-bl { bottom: 20px; left: 20px; }
#guide-br { bottom: 20px; right: 20px; }
#center-zone {
position: absolute;
top: 150px;
left: 150px;
width: 300px;
height: 300px;
border: 2px dashed rgba(180, 130, 0, 0.4);
border-radius: 50%;
pointer-events: none;
display: flex;
align-items: center;
justify-content: center;
}
#center-zone span {
color: rgba(180, 130, 0, 0.4);
font-size: 20px;
font-weight: bold;
font-family: 'Times New Roman', serif;
}
.seaglass {
position: absolute;
cursor: grab;
/* ★マスターの隠し味:透かし効果!下の新聞の文字がガラスを透過して見えます */
mix-blend-mode: multiply;
opacity: 0.85;
/* ガラス特有のフチのハイライトと影を表現 */
box-shadow: 2px 3px 6px rgba(0,0,0,0.15), inset -2px -2px 6px rgba(255,255,255,0.6), inset 2px 2px 4px rgba(0,0,0,0.1);
transition: transform 0.1s, box-shadow 0.1s;
}
.seaglass:active {
cursor: grabbing;
opacity: 0.95;
box-shadow: 4px 6px 12px rgba(0,0,0,0.2), inset -1px -1px 4px rgba(255,255,255,0.8);
}
#ui-panel {
margin-top: 25px;
text-align: center;
}
button {
padding: 12px 30px;
font-size: 16px;
font-weight: bold;
background-color: #5b7b7a; /* アンティークなブルーグリーン */
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
box-shadow: 0 4px 6px rgba(0,0,0,0.15);
transition: all 0.2s;
margin: 0 10px;
letter-spacing: 1px;
}
button:hover { background-color: #4a6665; transform: translateY(-1px); box-shadow: 0 6px 8px rgba(0,0,0,0.15); }
button:active { transform: translateY(1px); box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
#retry-btn { background-color: #c48b62; }
#retry-btn:hover { background-color: #a87652; }
#result-msg {
margin-top: 20px;
font-size: 20px;
font-weight: bold;
min-height: 24px;
color: #444; /* 背景に合わせて暗めの色に */
text-shadow: 1px 1px 0px rgba(255,255,255,0.5);
}
</style>
</head>
<body>
<h1>SEA GLASS SORTER</h1>
<p>左ドラッグで移動、右クリックで回転。新聞の上のガラスを綺麗に仕分けよう。</p>
<div id="game-container">
<div class="zone-guide" id="guide-tl">White</div>
<div class="zone-guide" id="guide-tr">Green</div>
<div class="zone-guide" id="guide-bl">Light Blue</div>
<div class="zone-guide" id="guide-br">Brown</div>
<div id="center-zone"><span>Rare Colors</span></div>
</div>
<div id="ui-panel">
<button onclick="finishGame()">仕分け完了 (FINISH)</button>
<button id="retry-btn" onclick="initGame()">リトライ (RETRY)</button>
<div id="result-msg"></div>
</div>
<script>
const container = document.getElementById('game-container');
const glassPieces = [];
let zIndexCounter = 10;
// 明るい背景で映えるように、色のlightness(明るさ)を微調整
const colors = [
{ type: 'white', baseHue: 0, sat: '0%', lightMin: 75, lightMax: 90, rare: false },
{ type: 'green', baseHue: 100, sat: '40%', lightMin: 50, lightMax: 70, rare: false },
{ type: 'lightblue', baseHue: 195, sat: '50%', lightMin: 55, lightMax: 80, rare: false },
{ type: 'brown', baseHue: 30, sat: '45%', lightMin: 35, lightMax: 55, rare: false },
{ type: 'yellow', baseHue: 45, sat: '70%', lightMin: 55, lightMax: 75, rare: true },
{ type: 'darkblue', baseHue: 220, sat: '60%', lightMin: 40, lightMax: 60, rare: true },
{ type: 'deepgreen', baseHue: 170, sat: '65%', lightMin: 30, lightMax: 50, rare: true },
{ type: 'red', baseHue: 0, sat: '70%', lightMin: 50, lightMax: 70, rare: true },
{ type: 'purple', baseHue: 280, sat: '50%', lightMin: 55, lightMax: 75, rare: true },
{ type: 'pink', baseHue: 330, sat: '60%', lightMin: 65, lightMax: 85, rare: true }
];
function randomBorderRadius() {
const r = () => Math.floor(Math.random() * 40 + 30);
return `${r()}% ${r()}% ${r()}% ${r()}% / ${r()}% ${r()}% ${r()}% ${r()}%`;
}
function createGlass(colorDef) {
const el = document.createElement('div');
el.className = 'seaglass';
const size = Math.floor(Math.random() * 25) + 20;
el.style.width = size + 'px';
el.style.height = (size * (Math.random() * 0.4 + 0.8)) + 'px';
const lightness = Math.floor(Math.random() * (colorDef.lightMax - colorDef.lightMin)) + colorDef.lightMin;
el.style.backgroundColor = `hsl(${colorDef.baseHue}, ${colorDef.sat}, ${lightness}%)`;
el.style.borderRadius = randomBorderRadius();
let x = Math.random() * (600 - size - 20) + 10;
let y = Math.random() * (600 - size - 20) + 10;
let rotation = Math.random() * 360;
el.style.left = x + 'px';
el.style.top = y + 'px';
el.style.transform = `rotate(${rotation}deg)`;
const glassData = { el, colorType: colorDef.type, isRare: colorDef.rare, x, y, rotation, size };
glassPieces.push(glassData);
container.appendChild(el);
setupInteractions(el, glassData);
}
function setupInteractions(el, data) {
let isDragging = false;
let startX, startY, initialX, initialY;
el.addEventListener('mousedown', (e) => {
if (e.button !== 0) return;
isDragging = true;
startX = e.clientX;
startY = e.clientY;
initialX = data.x;
initialY = data.y;
el.style.zIndex = zIndexCounter++;
});
document.addEventListener('mousemove', (e) => {
if (!isDragging) return;
const dx = e.clientX - startX;
const dy = e.clientY - startY;
data.x = initialX + dx;
data.y = initialY + dy;
data.x = Math.max(0, Math.min(data.x, 600 - el.offsetWidth));
data.y = Math.max(0, Math.min(data.y, 600 - el.offsetHeight));
el.style.left = data.x + 'px';
el.style.top = data.y + 'px';
});
document.addEventListener('mouseup', () => {
isDragging = false;
});
el.addEventListener('contextmenu', (e) => {
e.preventDefault();
data.rotation += 22.5;
el.style.transform = `rotate(${data.rotation}deg)`;
});
}
container.addEventListener('contextmenu', e => e.preventDefault());
function initGame() {
glassPieces.forEach(glass => glass.el.remove());
glassPieces.length = 0;
document.getElementById('result-msg').innerText = '';
colors.forEach(color => {
const count = color.rare ? 2 : 15;
for (let i = 0; i < count; i++) {
createGlass(color);
}
});
}
function finishGame() {
let score = 0;
let perfect = true;
glassPieces.forEach((glass, index) => {
const cx = glass.x + glass.el.offsetWidth / 2;
const cy = glass.y + glass.el.offsetHeight / 2;
const distFromCenter = Math.hypot(cx - 300, cy - 300);
if (glass.isRare) {
if (distFromCenter <= 150) {
score += 100;
} else {
score -= 50; perfect = false;
}
} else {
let currentZone = '';
if (cx < 300 && cy < 300) currentZone = 'white';
else if (cx >= 300 && cy < 300) currentZone = 'green';
else if (cx < 300 && cy >= 300) currentZone = 'lightblue';
else if (cx >= 300 && cy >= 300) currentZone = 'brown';
if (distFromCenter <= 150) {
score -= 30; perfect = false;
} else if (glass.colorType === currentZone) {
score += 50;
} else {
score -= 30; perfect = false;
}
}
for (let j = index + 1; j < glassPieces.length; j++) {
const other = glassPieces[j];
const ocx = other.x + other.el.offsetWidth / 2;
const ocy = other.y + other.el.offsetHeight / 2;
const dist = Math.hypot(cx - ocx, cy - ocy);
const minSafeDist = (glass.size + other.size) * 0.45;
if (dist < minSafeDist) {
score -= 20;
perfect = false;
}
}
});
const msgEl = document.getElementById('result-msg');
if (perfect && score > 0) {
msgEl.innerText = `素晴らしい根気です!スコア: ${score}点 (PERFECT!)`;
msgEl.style.color = '#2d7a4d'; /* 明るい背景に合わせて濃い緑に */
} else {
msgEl.innerText = `スコア: ${score}点 (重なりやゾーン違いに注意して再調整できます)`;
msgEl.style.color = '#a05c17'; /* オレンジ系で少し目立たせる */
}
}
initGame();
</script>
</body>
</html>


■ 今日の学び

実はこのゲーム、最初は「ととのえる」という
心地よい感覚をテーマにしたゲームを作りたいな、
と思って AI に相談するところから始まりました。

最初は「本をきれいに本棚に並べるゲーム」なんてどうかな……
と考えていたのですが、

そこでハッと思い出したんです。( ゚д゚)

「整える」といえば、私がいつも楽しんでいる
“シーグラス拾い”の後の、あの至福の時間!

拾ってきたシーグラスを机の上に広げて、
色や形、大きさごとにチマチマと並べていく……。
あの時間こそ、私にとって最高に「整う」瞬間だったんです。

その瞬間に、
今回のゲームの方向性が 「シーグラスならべゲーム」 に決まりました。

以前、#14「シーグラス探し」のゲームでも紹介しましたが、
シーグラス拾いは私が夢中になっている趣味のひとつです。

海辺で時間を忘れて拾い集めて、
家に帰ったら、それをきれいに並べて。
(そのあと、並べたのを崩してしまうんですけどね…笑)

そして最後は、庭にある「パワースポット」に集めていく。
これが私のいつもの流れです。

たくさん拾えば拾うほど、並べるのは本当に根気が必要。
でも、その分、並べ終わった時の達成感はひとしおです。

「あぁ、整った……✨」

あの、なんとも言えない静かで満ち足りた気持ち。
少しザラッとしていながら、波に洗われて丸くなった独特の質感。
そして、すべてが完璧に並んだ時の美しい光景。

文章ではなかなか伝えきれないかもしれませんが、
今回のゲームでは、シーグラスに触れるような感覚と、
並べ終わった時のあの特別な雰囲気を、
少しでも表現できたんじゃないかな、と思っています。(^_^)

みなさんも、ゲームの中でシーグラスをひとつひとつ並べながら、
心がスーッと整っていく感覚を味わっていただけたら嬉しいです。

(ノ゜▽゜)ノ・:..。o○☆゚

#14 の記事でも写真を紹介しましたが、今回も一部ご紹介します。

(画像:ならべたシーグラス)

■ 次回は、アートなゲームです。

お絵描きゲーム…といっても、操作はキーボードです。

自分が入力するキーで引かれていく線が、いろいろな花や葉っぱにくるんと一筆書きで表現されます。

引かれる線の種類も、ひも・リボン・有刺鉄線・鎖・植物のツルと、

切り替えて楽しめます。

ぜひ楽しみにしていてくださいね。(*^v^)ノシ

▶ 次の実験はこちら  
  (キーボードで一筆お絵描き体験)
「一筆書き小花ゲーム」



 ✨今日も最後まで読んでくださって、ありがとうございます。
みーの実験室は、みなさんの応援で元気に動いています。(*^v^*)