DeepSeek 最近真的太火了!除了常规问答,它还可以“曲线救国”:用代码生成的方式做出海报样式,甚至搭一个文字冒险小游戏。这篇文章就带你用最少的步骤,做出两个有趣的小项目。
关键信息:DeepSeek-R1 是文本推理大模型,本身不直接出图。但我们可以让它输出 HTML/CSS/JS,在网页里呈现海报效果。
请用 HTML + CSS 生成一个公众号首图(16:9),科技感强,主色蓝。主标题文案为 “Cline”,字体风格模仿中国泼墨(可用粗笔触+描边+阴影模拟),标题带“心跳”动态效果。要求:
- 自适应屏幕,保证 16:9 画布;
- 背景用深色渐变+轻微网格噪声;
- 标题置中,副标题放在下方一行(可写“Tech Vision”占位);
- 代码一次性给出,直接可运行(不依赖框架)。
让 DeepSeek 产出 HTML 代码后,复制到任意在线 HTML 运行器(如 codepen / 本地 .html 文件)即可看到效果。
你可把它当作 DeepSeek 回答的“对照模板”,方便二次迭代 Prompt。
<!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 Vision</p>
</div>
</div>
</div>
</body>
</html>
html2canvas
,点击按钮一键导出 PNG;
思路:让 DeepSeek 先整理世界观与数值设定,再让它用 Python 输出可运行的控制台版本。无需本地配置,也可在在线 Python 环境直接跑。
请帮我设计一个“修真”背景的文字冒险 RPG(DOS 质感),要求:
- 角色属性:气血、灵力、修为、悟性、幸运;
- 职业/流派:剑修/丹修/体修(提供差异化技能与成长);
- 地点/事件:门派修炼、秘境探索、宗门任务、奇遇、炼丹、试剑;
- 战斗:回合制,包含命中、暴击、技能冷却与状态(中毒/眩晕/护盾);
- 结局:至少 3 种(飞升、入魔、坐化),含分支条件;
- 输出可运行的 Python 代码(不依赖第三方库),并内含输入校验、存档/读档(JSON)。
这是一份“稳健骨架”,便于你把 DeepSeek 生成的代码与之拼合或替换。
# 修真文字冒险(精简可玩版)
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)
把代码粘贴到在线 Python 运行器(如你文中提到的 online-python)即可游玩。想扩展内容时,让 DeepSeek 输出“新增剧情/技能片段”,再合并到以上骨架中。
filter/drop-shadow
与轻微 transform: rotate/scale
随机动画。
html2canvas
或 dom-to-image
,点击“导出海报”直接生成 PNG。
DeepSeek-R1 不只是“会答题”的模型,更是一个创意合作者:
随着模型能力持续演进,这种“从想法到成品”的路径只会更短。现在就动手试试,把上面的 Prompt 与代码跑一遍——你会惊讶于:创意被实现,真的只差一句好提示。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。