さばばゲームのルール

 

さばばゲームのURL

ここ↓

https://suzusirod.github.io/sababagame/

基本的なプレイ方法

サイコロをたくさん振って役をそろえていくゲームです。PCでプレイしている場合はスペースキーでゲームを進めることも出来ます。押しっぱなしだと高速でプレイできます。スマホ用にオートプレイとかも実装したいけど時間が掛かりそうなので後回しにします。

役について

役は全部で3種類でさばば、ゾロ目、14以下です。さばばはサイコロの出目が388の場合に成立する役です。ゾロ目は出目がすべて同じ数字の役です。14以下は出目の合計が14以下になる場合に成立する役で通貨をすこし獲得できます。

 

通常時

通常時はゲーム内通貨が減っていきます。さばばやゾロ目を出してさばばチャンスを目指しましょう。さばばが成立すれば確実に、ゾロ目が出たら20%の確率でさばばチャンスに昇格します。

さばばチャンス

さばばチャンス時は役が成立するとゲージが増えます。ゲージがMaxになるとさばばラッシュに移行します。4回連続で役が成立しないとさばばチャンスが終了してゲージの進行具合に応じた確率でさばばラッシュに移行します。

さばばラッシュ

さばばラッシュは純増2.5枚でゲーム内通貨を増やしていきます。最初に50Gあり、役を成立させることで上乗せしていきます。

さばばを引いた時の上乗せ確率

上乗せ数 確率
30 57%
50 30%
100 10%
200 2%
300 1%

ゾロ目を引いた時の上乗せ確率

上乗せ数 確率
10 70%
30 20%
50 9%
100 1%

さばばを引いた場合は20%の確率でさばばストックを得ることが出来ます。

残りゲーム数が0になった場合さばばストックがあれば残りゲーム数が50になりさばばラッシュが継続します。さばばストックが0の場合はさばばチャンスに移行し、もう一度さばばラッシュを目指します。

資産運用シミュレーター(改良版)

資産運用シミュレーター

ボタンをクリックするとクリップボードに文字列がコピーされるhtmlサンプルコード

ボタンを押すと右側の文字列をクリップボードにコピーするコードを作らせました。
ボタンをクリックすると対象の文字列がクリップボードにコピーされ黄色く反応します。
メモ帳にコピペして保存する際に拡張子を.htmlにすると使えます。

"textToCopy = ["のコピーさせたい文字列1などを任意のものにして使ってください。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Copy Text to Clipboard</title>
<style>
    /* テキストがハイライトされるアニメーションの定義 */
    @keyframes textHighlight {
        0% { background-color: transparent; }
        50% { background-color: yellow; }
        100% { background-color: transparent; }
    }

    /* コピー項目を含むdiv要素に適用するスタイル */
    div.copyItem {
        margin-top: 5px; /* 上に10pxのマージンを追加 */
        margin-bottom: 5px; /* 下に10pxのマージンを追加 */
    }

    /* ハイライトアニメーションを適用するクラス */
    .highlight {
        animation: textHighlight 1s forwards;
    }

    button {
        margin-right: 10px; /* ボタンの右側に10pxのマージンを追加 */
    }
</style>
</head>
<body>
    <div id="listContainer"></div>

    <script>
    document.addEventListener('DOMContentLoaded', function() {
        // コピーしたい文字列の配列。ユーザーはこの配列にコピーしたいテキストを追加します。
        const textToCopy = [
            "コピーしたい文字列1", 
            "コピーしたい文字列2", 
            "コピーしたい文字列3"
            // 必要に応じて、この配列に新しい文字列を追加してください。
        ];
        const listContainer = document.getElementById('listContainer');

        // 各テキスト項目に対してコピー機能を持つ要素を作成し、ページに追加します。
        textToCopy.forEach(text => {
            listContainer.appendChild(createCopyItem(text));
        });

        // コピー項目を作成する関数
        function createCopyItem(text) {
            const listItem = document.createElement('div');
            listItem.classList.add('copyItem'); 
            const copyButton = document.createElement('button');
            copyButton.textContent = 'コピー';
            const textSpan = document.createElement('span');
            textSpan.textContent = text;

            // コピー操作を行うイベントリスナー
            copyButton.addEventListener('click', () => {
                copyToClipboard(text, textSpan);
            });

            listItem.appendChild(copyButton);
            listItem.appendChild(textSpan);

            return listItem;
        }

        // テキストをクリップボードにコピーし、アニメーションを適用する関数
        function copyToClipboard(text, textSpan) {
            navigator.clipboard.writeText(text).then(() => {
                // コピー成功時にテキストをハイライト
                textSpan.classList.add('highlight');
                // アニメーション終了後にクラスを削除
                setTimeout(() => textSpan.classList.remove('highlight'), 1000);
            }).catch(err => console.error('Failed to copy text: ', err));
        }
    });
    </script>
</body>
</html>

ウィンドウを並べる

# User32.dll を読み込む
Add-Type @"
    using System;
    using System.Text;
    using System.Runtime.InteropServices;
"@

# GetWindowText 関数の宣言
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
public static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);

# SetWindowPos 関数の宣言
[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);

# ターゲットのプロセスを取得
$desktopProcess = Get-Process -name "explorer"
$documentsProcess = Get-Process -name "explorer"

# ターゲットのウィンドウハンドルを取得
$desktopHandle = $desktopProcess.MainWindowHandle
$documentsHandle = $documentsProcess.MainWindowHandle

# 画面のサイズを取得
$screenWidth = [System.Windows.Forms.SystemInformation]::VirtualScreen.Width
$screenHeight = [System.Windows.Forms.SystemInformation]::VirtualScreen.Height

# 上半分のウィンドウサイズと位置を計算
$upperHeight = $screenHeight / 2
$upperRect = New-Object System.Drawing.Rectangle(0, 0, $screenWidth, $upperHeight)

# 下半分のウィンドウサイズと位置を計算
$lowerHeight = $screenHeight - $upperHeight
$lowerRect = New-Object System.Drawing.Rectangle(0, $upperHeight, $screenWidth, $lowerHeight)

# 上半分のウィンドウを移動
[User32]::SetWindowPos($desktopHandle, [IntPtr]::Zero, $upperRect.X, $upperRect.Y, $upperRect.Width, $upperRect.Height, 0x0040)

# 下半分のウィンドウを移動
[User32]::SetWindowPos($documentsHandle, [IntPtr]::Zero, $lowerRect.X, $lowerRect.Y, $lowerRect.Width, $lowerRect.Height, 0x0040)

Stable Diffusionで地雷系作成

地雷系のプロンプト

地雷系を作るためにそれっぽいのを作ってみました。

プロンプト 1girl, blunt bangs, black hair, brown eyes, long hair,Drooping eyes,eye bags,put eyeliner on top and bottom,mascara,red eyeshadow,porcelain skin,bright red lip,

 

 



 photo (medium),solo

 

地雷系の服のプロンプト

地雷系の服は下記のプロンプトでそれっぽいのが出来ました。

プロンプト pink chiffon blouse,ruffle decoration,long sleeve,black bow,skirt

先ほどのメイクのプロンプトを組み合わせると下記のような画像が生成されます

服のプロンプトを先にするとなんか安定しました

さらに手を加えて