דרוש מידע איך עושים גלגל מזל- הגרלה ושזה לא יעבוד על אינטרנט??

אושר המאושרת

משתמש מקצוען
מחפשת גלגל רולטה כזה להזין בו שמות והוא יסתובב ויבחר שם באופן אקראי- אבל שאני יוכל להוריד אותו והוא לא יעבוד על אינטרנט..
כמו זה-https://iw.piliapp.com/random/wheel/
 
וואו.
איזה כשרון.
בכזו מהירות להוציא כזה דבר...

מה שאני ניסיתי לעשות ולא הצליח זה שיוכלו לשים את אותו שם כמה פעמים.
לדוגמא כן ולא. שלא יהיה רק חצי חצי אלא שיוכלו לעשות כן לא כן לא כן לא...
שימי לב שהוא ממש לא תמיד כותב אח"כ בגדול את מי שבאמת יצא בחץ...
מעניין למה...
בכל אופן זה מדהים מדהים!!!!!!!!!!!!!!
 

ש3030

משתמש חדש
וואוו איזה יופי! אני רוצה לעשות עם זה הגרלה על סכומי כסף לעובדות שלי... תודה ענקית!
ממש מסוקרנת לראות איזה עוד שדרוגים תעשי
 

נקודת מחשבה

מהמשתמשים המובילים!
עיצוב גרפי
עיצוב פונטים
טוב - נגמר לי הקרדיטים כרגע בג'פט עד מחר
אתם יכולים לשפר אותו גם
זה הקוד:
קוד:
<!DOCTYPE html>
<html lang="he" dir="rtl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>גלגל רולטה משודרג עם סבבים מרובים</title>
    <style>
        body {
            display: flex;
            justify-content: center;
            align-items: flex-start;
            min-height: 100vh;
            font-family: Arial, sans-serif;
            background-color: #f0f0f0;
            padding: 20px;
            box-sizing: border-box;
        }
        .container {
            display: flex;
            gap: 40px;
            align-items: flex-start;
        }
        .wheel-container {
            display: flex;
            flex-direction: column;
            align-items: center;
        }
        #wheel {
            width: 500px;
            height: 500px;
            border-radius: 50%;
            border: 10px solid #333;
            position: relative;
            box-shadow: 0 0 15px rgba(0,0,0,0.2);
        }
        #wheel canvas {
            width: 100%;
            height: 100%;
            border-radius: 50%;
        }
        .participants-container, .results-container {
            width: 300px;
        }
        .participants-container h2, .results-container h2 {
            text-align: center;
            margin-bottom: 10px;
        }
        button {
            margin-top: 20px;
            padding: 10px 20px;
            font-size: 18px;
            cursor: pointer;
            background-color: #4CAF50;
            color: white;
            border: none;
            border-radius: 5px;
            transition: background-color 0.3s, transform 0.1s;
        }
        button:hover {
            background-color: #45a049;
            transform: scale(1.05);
        }
        button:disabled {
            background-color: #cccccc;
            cursor: not-allowed;
        }
        input[type="text"], input[type="number"] {
            margin-top: 20px;
            padding: 10px;
            font-size: 16px;
            width: 100%;
            box-sizing: border-box;
        }
        #nameList, #resultsList {
            margin-top: 10px;
            max-height: 300px;
            overflow-y: auto;
            border: 1px solid #ddd;
            padding: 10px;
            background-color: white;
        }
        #nameList div {
            margin-bottom: 5px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 5px;
            border-radius: 3px;
        }
        #nameList button {
            margin-top: 0;
            padding: 2px 5px;
            font-size: 14px;
            background-color: #f44336;
        }
        #result {
            margin-top: 20px;
            font-size: 24px;
            font-weight: bold;
            text-align: center;
            min-height: 50px;
        }
        #winnerAnimation {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            display: none;
            justify-content: center;
            align-items: center;
            background-color: rgba(0, 0, 0, 0.8);
            z-index: 1000;
        }
        #winnerAnimation span {
            font-size: 48px;
            color: white;
            text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
            animation: winnerPulse 1s infinite alternate;
        }
        @keyframes winnerPulse {
            from { transform: scale(1); }
            to { transform: scale(1.1); }
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="wheel-container">
            <div id="wheel">
                <canvas id="canvas"></canvas>
            </div>
            <input type="number" id="roundsInput" min="1" value="1" placeholder="מספר סבבים">
            <button id="spinButton">סובב</button>
            <div id="result"></div>
        </div>
        <div class="participants-container">
            <h2>רשימת המשתתפים</h2>
            <input type="text" id="nameInput" placeholder="הכנס שם">
            <button id="addButton">הוסף שם</button>
            <div id="nameList"></div>
            <button id="clearButton">נקה רשימה</button>
        </div>
        <div class="results-container">
            <h2>תוצאות הסבבים</h2>
            <input type="text" id="prizeInput" placeholder="הכנס פרס (אופציונלי)">
            <div id="resultsList"></div>
            <button id="exportButton">יצוא תוצאות</button>
        </div>
    </div>
    <div id="winnerAnimation">
        <span></span>
    </div>

    <script>
        const canvas = document.getElementById('canvas');
        const ctx = canvas.getContext('2d');
        const spinButton = document.getElementById('spinButton');
        const addButton = document.getElementById('addButton');
        const clearButton = document.getElementById('clearButton');
        const exportButton = document.getElementById('exportButton');
        const nameInput = document.getElementById('nameInput');
        const prizeInput = document.getElementById('prizeInput');
        const roundsInput = document.getElementById('roundsInput');
        const nameList = document.getElementById('nameList');
        const resultDiv = document.getElementById('result');
        const resultsList = document.getElementById('resultsList');
        const winnerAnimation = document.getElementById('winnerAnimation');

        let names = [];
        let roundResults = [];
        const colors = [
            '#FF6B6B', '#4ECDC4', '#45B7D1', '#FFA07A', '#98D8C8', '#F7DC6F',
            '#BB8FCE', '#F1948A', '#82E0AA', '#D7BDE2', '#A3E4D7', '#F8C471'
        ];

        const size = canvas.width = canvas.height = 500;
        const radius = size / 2;
        let arc = 0;
        let angle = 0;
        let isSpinning = false;
        let currentRound = 1;
        let totalRounds = 1;

        const drawWheel = () => {
            if (names.length === 0) {
                ctx.clearRect(0, 0, size, size);
                return;
            }

            arc = (Math.PI * 2) / names.length;
            names.forEach((name, i) => {
                const startAngle = i * arc;
                const endAngle = startAngle + arc;
                ctx.beginPath();
                ctx.arc(radius, radius, radius, startAngle, endAngle, false);
                ctx.lineTo(radius, radius);
                ctx.fillStyle = colors[i % colors.length];
                ctx.fill();
                ctx.save();
                ctx.translate(radius, radius);
                ctx.rotate((startAngle + endAngle) / 2);
                ctx.fillStyle = '#000';
                ctx.font = 'bold 16px Arial';
                ctx.textAlign = 'right';
                ctx.fillText(name, radius - 10, 5);
                ctx.restore();
            });
        };

        const spinWheel = () => {
            if (isSpinning || names.length === 0) return;
            totalRounds = parseInt(roundsInput.value) || 1;
            roundResults = [];
            currentRound = 1;
            startSpin();
        };

        const startSpin = () => {
            isSpinning = true;
            spinButton.disabled = true;
            resultDiv.textContent = `מסובב... (סבב ${currentRound} מתוך ${totalRounds})`;
            let spinTime = Math.random() * 3000 + 3000;
            const endAngle = Math.random() * Math.PI * 2;
            let currentSpeed = 50;

            const spinInterval = setInterval(() => {
                spinTime -= 30;
                angle += currentSpeed / 100;
                currentSpeed *= 0.97;
                if (spinTime <= 0 && currentSpeed < 0.1) {
                    clearInterval(spinInterval);
                    const winningIndex = Math.floor(((angle % (Math.PI * 2)) + (Math.PI * 2)) % (Math.PI * 2) / arc);
                    const winner = names[winningIndex];
                    roundResults.push({ round: currentRound, winner: winner });
                    showWinner(winner, currentRound, totalRounds);
                    currentRound++;
                    if (currentRound <= totalRounds) {
                        isSpinning = false;
                        spinButton.disabled = false;
                        resultDiv.textContent = `לחץ על "סובב" כדי להתחיל את סבב ${currentRound}`;
                    } else {
                        isSpinning = false;
                        spinButton.disabled = false;
                        updateResultsList();
                        resultDiv.textContent = `כל הסבבים הסתיימו`;
                    }
                }
                draw();
            }, 30);
        };

        const showWinner = (winner, currentRound, totalRounds) => {
            const prize = prizeInput.value.trim();
            const resultText = prize ? `${winner} זכה/זכתה ב${prize}` : `${winner} זכה/זכתה בסבב ${currentRound}`;
            resultDiv.textContent = resultText;
            winnerAnimation.style.display = 'flex';
            winnerAnimation.querySelector('span').textContent = resultText;
            setTimeout(() => {
                winnerAnimation.style.display = 'none';
            }, 2000);
        };

        const updateResultsList = () => {
            resultsList.innerHTML = '';
            roundResults.forEach(result => {
                const div = document.createElement('div');
                const prize = prizeInput.value.trim();
                div.textContent = prize ? `סבב ${result.round}: ${result.winner} זכה/זכתה ב${prize}` : `סבב ${result.round}: ${result.winner}`;
                resultsList.appendChild(div);
            });
        };

        const draw = () => {
            ctx.clearRect(0, 0, size, size);
            ctx.save();
            ctx.translate(radius, radius);
            ctx.rotate(angle);
            ctx.translate(-radius, -radius);
            drawWheel();
            ctx.restore();
        };

        const addName = () => {
            const newName = nameInput.value.trim();
            if (newName !== "" && !names.includes(newName)) {
                names.push(newName);
                nameInput.value = "";
                updateNameList();
                draw();
            }
        };

        const removeName = (name) => {
            names = names.filter(n => n !== name);
            updateNameList();
            draw();
        };

        const updateNameList = () => {
            nameList.innerHTML = '';
            names.forEach((name, index) => {
                const div = document.createElement('div');
                div.textContent = name;
                div.style.backgroundColor = colors[index % colors.length];
                div.style.color = 'white';
                const removeButton = document.createElement('button');
                removeButton.textContent = 'הסר';
                removeButton.onclick = () => removeName(name);
                div.appendChild(removeButton);
                nameList.appendChild(div);
            });
            spinButton.disabled = names.length === 0;
        };

        const clearNames = () => {
            names = [];
            updateNameList();
            draw();
            resultDiv.textContent = '';
            resultsList.innerHTML = '';
            roundResults = [];
        };

        const exportResults = () => {
            const prize = prizeInput.value.trim();
            let exportText = 'תוצאות הסבבים:\n';
            roundResults.forEach(result => {
                exportText += prize ? `סבב ${result.round}: ${result.winner} זכה/זכתה ב${prize}\n` : `סבב ${result.round}: ${result.winner}\n`;
            });

            const blob = new Blob([exportText], { type: 'text/plain;charset=utf-8' });
            const url = URL.createObjectURL(blob);
            const a = document.createElement('a');
            a.href = url;
            a.download = 'roulette_results.txt';
            document.body.appendChild(a);
            a.click();
            document.body.removeChild(a);
            URL.revokeObjectURL(url);
        };

        addButton.addEventListener('click', addName);
        spinButton.addEventListener('click', spinWheel);
        clearButton.addEventListener('click', clearNames);
        exportButton.addEventListener('click', exportResults);
        nameInput.addEventListener('keypress', (e) => {
            if (e.key === 'Enter') addName();
        });

        draw();
    </script>
</body>
</html>

ניתן לכתוב לג'פט מה בדיוק רוצים והוא יוסיף את זה לתוך הקוד
(בקוד שלי יש כרגע באג- לא רושם את תוצאות הסבבים, ומייצא רק תוצאה ראשונה - ניתן לכתוב לגפט שיסדר את זה, כאמור לי נגמרו הקרדיטים כרגע...)

שתפו כאן את הקודים המעודכנים


כרגע זה המעודכן:
 

קבצים מצורפים

  • רולטה.html
    KB 12.8 · צפיות: 9

אולי מעניין אותך גם...

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק לא

א לַמְנַצֵּחַ מִזְמוֹר לְדָוִד:ב בְּךָ יְהוָה חָסִיתִי אַל אֵבוֹשָׁה לְעוֹלָם בְּצִדְקָתְךָ פַלְּטֵנִי:ג הַטֵּה אֵלַי אָזְנְךָ מְהֵרָה הַצִּילֵנִי הֱיֵה לִי לְצוּר מָעוֹז לְבֵית מְצוּדוֹת לְהוֹשִׁיעֵנִי:ד כִּי סַלְעִי וּמְצוּדָתִי אָתָּה וּלְמַעַן שִׁמְךָ תַּנְחֵנִי וּתְנַהֲלֵנִי:ה תּוֹצִיאֵנִי מֵרֶשֶׁת זוּ טָמְנוּ לִי כִּי אַתָּה מָעוּזִּי:ו בְּיָדְךָ אַפְקִיד רוּחִי פָּדִיתָה אוֹתִי יְהוָה אֵל אֱמֶת:ז שָׂנֵאתִי הַשֹּׁמְרִים הַבְלֵי שָׁוְא וַאֲנִי אֶל יְהוָה בָּטָחְתִּי:ח אָגִילָה וְאֶשְׂמְחָה בְּחַסְדֶּךָ אֲשֶׁר רָאִיתָ אֶת עָנְיִי יָדַעְתָּ בְּצָרוֹת נַפְשִׁי:ט וְלֹא הִסְגַּרְתַּנִי בְּיַד אוֹיֵב הֶעֱמַדְתָּ בַמֶּרְחָב רַגְלָי:י חָנֵּנִי יְהוָה כִּי צַר לִי עָשְׁשָׁה בְכַעַס עֵינִי נַפְשִׁי וּבִטְנִי:יא כִּי כָלוּ בְיָגוֹן חַיַּי וּשְׁנוֹתַי בַּאֲנָחָה כָּשַׁל בַּעֲוֹנִי כֹחִי וַעֲצָמַי עָשֵׁשׁוּ:יב מִכָּל צֹרְרַי הָיִיתִי חֶרְפָּה וְלִשֲׁכֵנַי מְאֹד וּפַחַד לִמְיֻדָּעָי רֹאַי בַּחוּץ נָדְדוּ מִמֶּנִּי:יג נִשְׁכַּחְתִּי כְּמֵת מִלֵּב הָיִיתִי כִּכְלִי אֹבֵד:יד כִּי שָׁמַעְתִּי דִּבַּת רַבִּים מָגוֹר מִסָּבִיב בְּהִוָּסְדָם יַחַד עָלַי לָקַחַת נַפְשִׁי זָמָמוּ:טו וַאֲנִי עָלֶיךָ בָטַחְתִּי יְהוָה אָמַרְתִּי אֱלֹהַי אָתָּה:טז בְּיָדְךָ עִתֹּתָי הַצִּילֵנִי מִיַּד אוֹיְבַי וּמֵרֹדְפָי:יז הָאִירָה פָנֶיךָ עַל עַבְדֶּךָ הוֹשִׁיעֵנִי בְחַסְדֶּךָ:יח יְהוָה אַל אֵבוֹשָׁה כִּי קְרָאתִיךָ יֵבֹשׁוּ רְשָׁעִים יִדְּמוּ לִשְׁאוֹל:יט תֵּאָלַמְנָה שִׂפְתֵי שָׁקֶר הַדֹּבְרוֹת עַל צַדִּיק עָתָק בְּגַאֲוָה וָבוּז:כ מָה רַב טוּבְךָ אֲשֶׁר צָפַנְתָּ לִּירֵאֶיךָ פָּעַלְתָּ לַחֹסִים בָּךְ נֶגֶד בְּנֵי אָדָם:כא תַּסְתִּירֵם בְּסֵתֶר פָּנֶיךָ מֵרֻכְסֵי אִישׁ תִּצְפְּנֵם בְּסֻכָּה מֵרִיב לְשֹׁנוֹת:כב בָּרוּךְ יְהוָה כִּי הִפְלִיא חַסְדּוֹ לִי בְּעִיר מָצוֹר:כג וַאֲנִי אָמַרְתִּי בְחָפְזִי נִגְרַזְתִּי מִנֶּגֶד עֵינֶיךָ אָכֵן שָׁמַעְתָּ קוֹל תַּחֲנוּנַי בְּשַׁוְּעִי אֵלֶיךָ:כד אֶהֱבוּ אֶת יְהוָה כָּל חֲסִידָיו אֱמוּנִים נֹצֵר יְהוָה וּמְשַׁלֵּם עַל יֶתֶר עֹשֵׂה גַאֲוָה:כה חִזְקוּ וְיַאֲמֵץ לְבַבְכֶם כָּל הַמְיַחֲלִים לַיהוָה:
נקרא  4  פעמים

אתגר AI

הבעות פנים • אתגר 57

לוח מודעות

למעלה