精神污染之古风生成器

写出来玩玩。

简直是精神污染。

# -*- coding: UTF-8 -*-

import random

words = ["",
    "朱砂 天下 杀伐 人家 韶华 风华 繁华 血染 墨染 白衣 素衣 嫁衣 倾城 孤城 空城 旧城 旧人 伊人 心疼 春风 古琴 无情 迷离 奈何 断弦 焚尽 散乱 陌路 乱世 笑靥 浅笑 明眸 轻叹 烟火 一生 三生 浮生 桃花 梨花 落花 烟花 离殇 情殇 爱殇 剑殇 灼伤 仓皇 匆忙 陌上 清商 焚香 墨香 微凉 断肠 痴狂 凄凉 黄梁 未央 成双 无恙 虚妄 凝霜 洛阳 长安 江南 忘川 千年 纸伞 烟雨 回眸 公子 红尘 红颜 红衣 红豆 红线 青丝 青史 青冢 白发 白首 白骨 黄土 黄泉 碧落 紫陌",
    ""," 情深缘浅 情深不寿 莫失莫忘 阴阳相隔 如花美眷 似水流年 眉目如画 曲终人散 繁华落尽 不诉离殇 一世长安 "
]
centences = ["xx,xx,xx 了 xx。",
    "xxxx,xxxx,不过是一场 xxxx。",
    "你说 xxxx,我说 xxxx,最后不过 xxxx。",
    "xx,xx,许我一场 xxxx。",
    "一 x 一 x 一 xx,半 x 半 x 半 xx。",
    "你说 xxxx,xxxx,后来 xxxx,xxxx。",
    "xxxx,xxxx,终不敌 xxxx。",
]

for i in range(len(words)):
    words[i] = words[i].split("")
    for j in reversed(range(0, len(words[i]))):
        if words[i][j] == "":
            # words[i].pop(j)
            del (words[i][j])

if '__main__' == __name__:
    centence = centences[random.randrange(len(centences))]
    for itr in reversed(range(0, len(words))):
        x = "x" * (itr + 1)
        while centence.find(x) >= 0:
            row = itr
            while len(words[row]) == 0:
                row = random.randrange(itr, len(words))
            rep = words[row][random.randrange(len(words[row]))]
            sta = random.randrange(len(rep) - itr)
            centence = centence.replace(x, rep[sta:sta + itr + 1], 1)
    print(centence)

生成出来的东西嘛……

你说曲终人散,我说情深不寿,最后不过情深缘浅。
你说情深不寿,如花美眷,后来似水流年,眉目如画。
一莫一凉一仓皇,半缘半长半嫁衣。
断弦,墨染,黄泉了血染。
墨染,青丝,许我一场曲终人散。
不诉离殇,繁华落尽,不过是一场眉目如画。

OK 不放了,快要吐了。

第一次知道 range 外面套一个 reversed 就可以逆序。这才是优雅。

开心就好

《精神污染之古风生成器》有3条留言

    • 本来是直接写倒序的。但每次都写一个倒序的东系感觉挺别扭的,并且倒序和正序控制起来有一点点差别。

      这样写可能看起来更 “符合人的思维” 吧。

      查了一下,好像 py3 这样写不会太存在性能问题。

留下评论