首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >“DeepSeek 不会出图”?我用“曲线救国”做出炫酷海报,还顺手搭了个修真 RPG

“DeepSeek 不会出图”?我用“曲线救国”做出炫酷海报,还顺手搭了个修真 RPG

原创
作者头像
算法一只狗
发布2025-09-29 11:56:44
发布2025-09-29 11:56:44
16600
代码可运行
举报
文章被收录于专栏:算法一只狗算法一只狗
运行总次数:0
代码可运行

DeepSeek 最近真的太火了!除了常规问答,它还可以“曲线救国”:用代码生成的方式做出海报样式,甚至搭一个文字冒险小游戏。这篇文章就带你用最少的步骤,做出两个有趣的小项目。

一、用 DeepSeek-R1 生成“海报样式”首图

关键信息:DeepSeek-R1 是文本推理大模型,本身不直接出图。但我们可以让它输出 HTML/CSS/JS,在网页里呈现海报效果。

1)示例 Prompt(可直接复制)

代码语言:javascript
代码运行次数:0
运行
复制
请用 HTML + CSS 生成一个公众号首图(16:9),科技感强,主色蓝。主标题文案为 “Cline”,字体风格模仿中国泼墨(可用粗笔触+描边+阴影模拟),标题带“心跳”动态效果。要求:
- 自适应屏幕,保证 16:9 画布;
- 背景用深色渐变+轻微网格噪声;
- 标题置中,副标题放在下方一行(可写“Tech Vision”占位);
- 代码一次性给出,直接可运行(不依赖框架)。

2)在线预览方法

让 DeepSeek 产出 HTML 代码后,复制到任意在线 HTML 运行器(如 codepen / 本地 .html 文件)即可看到效果。

3)精简可跑的参考代码(含“心跳”动画)

你可把它当作 DeepSeek 回答的“对照模板”,方便二次迭代 Prompt。

代码语言:javascript
代码运行次数:0
运行
复制
<!doctype html>
<html lang="zh">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Cline 海报首图</title>
<style>
  :root{
    --blue:#4da3ff; --bg0:#070b12; --bg1:#0c1626; --grid:#0f223f;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  body,html{height:100%;background:var(--bg0);color:#cfe6ff;font-family:system-ui,Segoe UI,Arial}
  .frame{
    width:100vw;height:56.25vw; /* 16:9 = 9/16=0.5625 */
    max-height:100vh;max-width:177.78vh; /* 保持16:9 */
    margin:auto;position:relative;background:
      radial-gradient(1200px 800px at 50% 40%, #0f274a55 0%, transparent 60%),
      linear-gradient(180deg,var(--bg1),var(--bg0));
    overflow:hidden;border-radius:24px;box-shadow:0 20px 60px #0008, inset 0 0 0 1px #ffffff10;
  }
  /* 细网格 */
  .grid{
    position:absolute;inset:0;
    background-image:
      linear-gradient(90deg,var(--grid) 1px,transparent 1px),
      linear-gradient(0deg,var(--grid) 1px,transparent 1px);
    background-size:40px 40px;opacity:.25;mix-blend-mode:overlay;
  }
  .center{position:absolute;inset:0;display:grid;place-items:center}
  .stack{text-align:center;padding:4vmin}
  .title{
    font-weight:900;letter-spacing:.04em;line-height:1.1;
    font-size:clamp(36px,8vmin,96px);
    color:var(--blue);
    /* 泼墨/描边感(用多层阴影近似) */
    text-shadow:
      0 0 12px #2b6cbf66,
      0 0 24px #2b6cbfaa,
      0 2px 0 #001a33,
      -2px -2px 0 #001a33,
      2px -2px 0 #001a33,
      -2px 2px 0 #001a33,
      2px 2px 0 #001a33;
    animation:heartbeat 1.6s ease-in-out infinite;
  }
  .subtitle{
    margin-top:1.2rem;opacity:.85;letter-spacing:.2em;
    font-size:clamp(14px,2.2vmin,18px);
    text-transform:uppercase;
  }
  /* 心跳动画 */
  @keyframes heartbeat{
    0%{transform:scale(1)}
    15%{transform:scale(1.08)}
    30%{transform:scale(1)}
    45%{transform:scale(1.05)}
    60%{transform:scale(1)}
    100%{transform:scale(1)}
  }
  /* 装饰性扫描线 */
  .scan{
    position:absolute;left:0;right:0;height:2px;
    background:linear-gradient(90deg,transparent, #7fb3ff88, transparent);
    animation:scan 3.6s linear infinite;
  }
  @keyframes scan{
    from{top:-2px} to{top:100%}
  }
</style>
</head>
<body>
  <div class="frame">
    <div class="grid"></div>
    <div class="scan"></div>
    <div class="center">
      <div class="stack">
        <h1 class="title">Cline</h1>
        <p class="subtitle">Tech&nbsp;Vision</p>
      </div>
    </div>
  </div>
</body>
</html>

4)进阶:把网页“导出成图片”

  • 让 DeepSeek 在 HTML 中加上 html2canvas,点击按钮一键导出 PNG;
  • 或者使用浏览器的“另存为 PDF/PNG”(开发者工具装置截图)。

二、用 DeepSeek-R1 搭一个“修真文字冒险 RPG”

思路:让 DeepSeek 先整理世界观与数值设定,再让它用 Python 输出可运行的控制台版本。无需本地配置,也可在在线 Python 环境直接跑。

1)示例 Prompt(可直接复制)

代码语言:javascript
代码运行次数:0
运行
复制
请帮我设计一个“修真”背景的文字冒险 RPG(DOS 质感),要求:
- 角色属性:气血、灵力、修为、悟性、幸运;
- 职业/流派:剑修/丹修/体修(提供差异化技能与成长);
- 地点/事件:门派修炼、秘境探索、宗门任务、奇遇、炼丹、试剑;
- 战斗:回合制,包含命中、暴击、技能冷却与状态(中毒/眩晕/护盾);
- 结局:至少 3 种(飞升、入魔、坐化),含分支条件;
- 输出可运行的 Python 代码(不依赖第三方库),并内含输入校验、存档/读档(JSON)。

2)可直接运行的参考代码(精简版)

这是一份“稳健骨架”,便于你把 DeepSeek 生成的代码与之拼合或替换。

代码语言:javascript
代码运行次数:0
运行
复制
# 修真文字冒险(精简可玩版)
import json, random, os, sys

SAVE_FILE = "xiuzhen_save.json"

def ask(prompt, choices):
    while True:
        ans = input(f"{prompt} {choices}> ").strip()
        if ans in choices: return ans
        print("无效输入,请重试。")

def press(): input("\n[回车继续]")

class Role:
    def __init__(self, name, path):
        base = {"气血":100, "灵力":60, "修为":0, "悟性":50, "幸运":50}
        self.name, self.path = name, path
        self.attr = base
        if path=="剑修": self.attr["灵力"]+=10; self.attr["悟性"]+=10
        if path=="丹修": self.attr["悟性"]+=20
        if path=="体修": self.attr["气血"]+=30
        self.bag = {"灵草":0,"灵石":10}
        self.stage = "炼气一层"
        self.flags = {"入魔":False, "奇遇":False}
    def show(self):
        print(f"\n[{self.name}] 〔{self.path}〕  境界:{self.stage}")
        print("属性:", " ".join([f"{k}{v}" for k,v in self.attr.items()]))
        print("背包:", self.bag)

def save(role):
    with open(SAVE_FILE,"w",encoding="utf-8") as f:
        json.dump({"name":role.name,"path":role.path,"attr":role.attr,"bag":role.bag,
                   "stage":role.stage,"flags":role.flags}, f, ensure_ascii=False)
    print("已存档。")

def load():
    if not os.path.exists(SAVE_FILE): return None
    try:
        d=json.load(open(SAVE_FILE,"r",encoding="utf-8"))
        r=Role(d["name"], d["path"]); r.attr=d["attr"]; r.bag=d["bag"]
        r.stage=d["stage"]; r.flags=d["flags"]; return r
    except Exception as e:
        print("读档失败:",e); return None

def upgrade(role):
    role.attr["修为"] += random.randint(8,18) + role.attr["悟性"]//20
    if role.attr["修为"] >= 100:
        role.attr["修为"]=0
        tiers=["炼气一层","炼气二层","练气三层","筑基","金丹","元婴","化神","合体","大乘"]
        i = tiers.index(role.stage) if role.stage in tiers else 0
        role.stage = tiers[min(i+1, len(tiers)-1)]
        print(f"✨ 突破成功!境界晋升至:{role.stage}")

def encounter(role):
    roll = random.random()
    if roll < 0.35:
        # 战斗
        print("\n你遭遇了凶兽!")
        hp = role.attr["气血"]
        mob = random.randint(60,120)
        while hp>0 and mob>0:
            act = ask("选择行动:1.普攻 2.灵技 3.防御", ["1","2","3"])
            if act=="1":
                dmg = random.randint(10,18)
                mob -= dmg; print(f"你造成 {dmg} 伤害。")
            elif act=="2" and role.attr["灵力"]>=10:
                dmg = random.randint(22,36) + (10 if role.path=="剑修" else 0)
                role.attr["灵力"] -= 10
                mob -= dmg; print(f"你施展灵技,造成 {dmg} 伤害。灵力-{10}")
            else:
                block = random.randint(8,16); print(f"防御,临时护盾 {block}")
            # 敌人回合
            if mob>0:
                md = random.randint(8,20)
                hp -= md; print(f"凶兽回击 {md},你的血量 {max(hp,0)}")
        if hp<=0:
            print("你重伤昏迷,被同门救回。气血恢复,灵力-10。")
            role.attr["灵力"]=max(0, role.attr["灵力"]-10)
        else:
            print("战胜凶兽,获得灵草与修为!")
            role.bag["灵草"] += 1
            role.attr["修为"] += 30
    elif roll < 0.6:
        print("\n你在竹林悟道,悟性提升。")
        role.attr["悟性"] += random.randint(3,8)
        upgrade(role)
    elif roll < 0.8:
        print("\n偶遇坊市交易。")
        if role.bag["灵石"]>=5:
            buy = ask("花5灵石买丹药(+气血/灵力)吗?1.是 2.否", ["1","2"])
            if buy=="1":
                role.bag["灵石"] -= 5
                if random.random()<0.5: role.attr["气血"]+=15; print("气血+15")
                else: role.attr["灵力"]+=15; print("灵力+15")
    else:
        print("\n奇遇!获得传承碎片,幸运提升。")
        role.flags["奇遇"]=True; role.attr["幸运"]+=10
        upgrade(role)

def ending(role):
    if role.flags["入魔"]:
        print("\n【结局:入魔】你走火入魔,成魔于世。")
    elif role.stage in ["合体","大乘"]:
        print("\n【结局:飞升】雷劫已过,羽化登仙。")
    else:
        print("\n【结局:坐化】道阻且长,你静坐山巅,了却此生。")

def main():
    print("=== 修真文字冒险 RPG ===")
    if ask("是否读取存档? 1.是 2.否", ["1","2"])=="1":
        role = load()
        if not role: print("无存档,将新建。")
    else: role=None
    if not role:
        name = input("道友名号:").strip() or "无名"
        path = ask("选择流派:1.剑修 2.丹修 3.体修", ["1","2","3"])
        role = Role(name, {"1":"剑修","2":"丹修","3":"体修"}[path])

    while True:
        role.show()
        print("\n①修炼提升 ②外出历练 ③炼丹交易 ④存档 ⑤读档 ⑥结束游历")
        op = ask("你的选择:", ["1","2","3","4","5","6"])
        if op=="1": upgrade(role); press()
        elif op=="2": encounter(role); press()
        elif op=="3":
            if role.bag["灵草"]>=2:
                role.bag["灵草"]-=2; role.attr["修为"]+=20
                print("炼成入门丹药,修为+20。"); press()
            else:
                print("灵草不足。"); press()
        elif op=="4": save(role); press()
        elif op=="5":
            r=load()
            if r: role=r; print("读档成功。"); press()
            else: press()
        else:
            break
    ending(role)

if __name__=="__main__":
    try: main()
    except KeyboardInterrupt: sys.exit(0)

3)在线运行

把代码粘贴到在线 Python 运行器(如你文中提到的 online-python)即可游玩。想扩展内容时,让 DeepSeek 输出“新增剧情/技能片段”,再合并到以上骨架中。


三、提升效果的小技巧

  • 让海报更“泼墨”:提示词中加入“描边 + 多层阴影 + 随机笔锋扰动”,让 DeepSeek 在 CSS 里加 filter/drop-shadow 与轻微 transform: rotate/scale 随机动画。
  • 一键出图:请它内置 html2canvasdom-to-image,点击“导出海报”直接生成 PNG。
  • 游戏重玩性:把随机事件与结局条件抽成列表,让 DeepSeek 生成“事件工坊”,后续只需补充 JSON 配置即可扩展世界观。
  • Debug 提示:遇到运行错误,直接把报错与代码片段丢给 DeepSeek,请它“只返回最小修改补丁”。

写在最后

DeepSeek-R1 不只是“会答题”的模型,更是一个创意合作者

  • 用推理 + 代码生成,快速搭出可用的海报页面;
  • 用世界观设定 + 代码骨架,轻松做出可玩的文字 RPG。

随着模型能力持续演进,这种“从想法到成品”的路径只会更短。现在就动手试试,把上面的 Prompt 与代码跑一遍——你会惊讶于:创意被实现,真的只差一句好提示。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、用 DeepSeek-R1 生成“海报样式”首图
    • 1)示例 Prompt(可直接复制)
    • 2)在线预览方法
    • 3)精简可跑的参考代码(含“心跳”动画)
    • 4)进阶:把网页“导出成图片”
  • 二、用 DeepSeek-R1 搭一个“修真文字冒险 RPG”
    • 1)示例 Prompt(可直接复制)
    • 2)可直接运行的参考代码(精简版)
    • 3)在线运行
  • 三、提升效果的小技巧
  • 写在最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档