js+css实现简洁版“掼蛋”扑克牌游戏代码
代码语言:html
所属分类:游戏
代码描述:js+css实现简洁版掼蛋扑克牌游戏代码,单机人机对战:你(东)和一名 AI 队友(西)对抗另外两名 AI 对手(南、北)。 简化规则:实现了掼蛋的核心牌型(单张、对子、三带二、顺子、同花顺、炸弹、天王炸等),但未包含“进贡/还贡”和“打几升级”的复杂多局机制,专注于单局的打牌体验。 AI 智能:AI 具备基本的出牌逻辑,会判断牌型、寻找能压过上家的牌、并在自己出牌时选择合理的牌型。
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <title>掼蛋 · 人机对战(精致UI版)</title> <meta name="viewport" content="width=device-width, initial-scale=1" /> <style> :root{ --bg:#0a0f1c;--felt:#0a2c20;--felt-dark:#0e3a2a;--panel:#0b1224cc;--text:#e5e7eb;--muted:#94a3b8; --accent:#22d3ee;--good:#22c55e;--warn:#f59e0b;--bad:#ef4444;--glass:#0b152acc;--border:#1d2a46; --card-bg:#f9fafb;--card-border:#d1d5db;--card-red:#dc2626;--card-black:#111827; } *{box-sizing:border-box} html,body{height:100%;margin:0;background:radial-gradient(1300px 800px at 50% -220px,#0b1022,#060913) fixed;color:var(--text); font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial;overflow:hidden;user-select:none} #app{max-width:1300px;height:100%;margin:0 auto;display:flex;flex-direction:column;padding:10px} /* 顶栏 */ .topbar{ flex-shrink:0;display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--glass); border:1px solid var(--border);border-radius:14px;padding:10px 12px; box-shadow:0 10px 30px #0009,inset 0 1px 0 #ffffff10;backdrop-filter:blur(8px) } button{ background:#0b152a;border:1px solid #223053;color:var(--text);border-radius:10px;padding:8px 12px; outline:none;transition:.2s;cursor:pointer } button:hover{border-color:#34508c} button.primary{background:linear-gradient(180deg,#1f3b74,#1b3364);border-color:#2b478a} button:disabled{opacity:.5;cursor:not-allowed} .chip{display:inline-flex;gap:6px;align-items:center;border:1px solid #223053;background:#0b152a;border-radius:999px;padding:4px 10px} .kbd{display:inline-block;border:1px solid #223053;background:#0b152a;border-radius:6px;padding:2px 6px;font-size:12px} /* 牌桌 */ .table{ flex-grow:1;position:relative;margin-top:10px; background:radial-gradient(1100px 700px at 50% 50%,var(--felt-dark),var(--felt)); border:1px solid #103325;border-radius:24px;box-shadow:inset 0 10px 60px #0008,inset 0 0 0 2px #042a1e } /* 玩家区 */ .player-area{position:absolute;display:flex;flex-direction:column;gap:8px;transition: transform 0.3s ease-out;} /* S 南(你) */ #player-s{bottom:10px;left:50%;transform:translateX(-50%);width:70%;max-width:860px;align-items:center} /* N 北(队友) */ #player-n{top:10px;left:50%;transform:translateX(-50%);width:60%;align-items:center} /* W 西(对手) */ #player-w{left:10px;top:50%;transform:translateY(-50%);width:180px;align-items:flex-start} /* E 东(对手) */ #player-e{right:10px;top:50%;transform:translateY(-50%);width:180px;align-items:flex-end} .player-info{ display:flex;align-items:center;gap:8px;padding:4px 10px; background:var(--glass);border:1px solid var(--border);border-radius:12px;backdrop-filter:blur(6px); transition: outline 0.2s; } .player-info.active{outline:2px solid var(--accent)} .hand{display:flex;position:relative} #player-s .hand{height:100px;margin-bottom:10px; margin-left: -102%; } #player-n .hand{height:60px; } #player-w .hand,#player-e .hand{flex-direction:column;width:60px;height:300px;} .last-played{ display:flex;justify-content:center;align-items:center;min-height:80px; padding:8px;border-radius:12px; background:rgba(0,0,0,0.15); border:1px solid rgba(255,255,255,0.08) } #player-s .last-played{width:100%} #player-n .last-played{min-width:300px} #player-w .last-played, #player-e .last-played{flex-direction:column;width:100%;min-height:160px} /* 卡牌 */ .card{ width:70px;height:96px;border-radius:8px;border:1px solid var(--card-border); background:var(--card-bg);color:var(--card-black); display:flex;flex-direction:column;justify-content:space-between;padding:4px; box-shadow:0 4px 10px rgba(0,0,0,0.4);font-weight:700;font-size:18px; position:absolute;transition:transform 0.2s, opacity 0.3s; } .card .rank{margin-left:2px} .card .suit{font-size:12px;align-self:flex-end} .card.red{color:var(--card-red)} .card.joker .rank{font-size:14px;font-weight:bold} .card.joker.red{background:linear-gradient(135deg,#fff,#ffdada)} .card.joker.black{background:linear-gradient(135deg,#ddd,#ccc)} .card.back{background:linear-gradient(135deg,#2c3e50,#1a242f);border-color:#111} #player-w .card.back, #player-e .card.back{width:96px;height:70px;transform:rotate(90deg);transform-origin: 50% 50%;} /* 玩家手牌交互 */ #player-s .card{cursor:pointer} #player-s .card.selected{transform:translate.........完整代码请登录后点击上方下载按钮下载查看
网友评论0