Skip to content

Latest commit

 

History

History
227 lines (155 loc) · 5.01 KB

338-595579-随机颜色_csi_转义字符_VT100选项_终端颜色设置.sy.md

File metadata and controls

227 lines (155 loc) · 5.01 KB
show version enable_checker
step
1.0
true

随机数字运算

回忆上次内容

  • 上次输出了
    • 随机大写 ABCD
    • 随机成语
  • 你感受到 随机的乐趣了么?
  • 如果我想要 颜色随机起来
    • 应该怎么办?

随机字体

  • 字体效果可以通过
    • VT100控制符来控制
  • 不同的数字
    • 对应不同的效果

图片描述

  • 上面的 数字
    • 通过 随机来得到
  • 这样就可以获得随机的字体效果

图片描述

  • 在游乐场中
    • 我们得到了随机数7
      • 于是得到了反相的效果
      • invert

csi

  • csi 是
    • Control Sequence Introducer
    • 控制序列前导符

图片描述

  • 如果没有csi
    • 就是将文本直接输出到标准输出流
  • 如果加上了csi
    • 就输出了控制序列
    • 从而可以控制输出的位置和颜色等

图片描述

  • 通过 随机数字
    • 得到 随机字体
  • ctrl+c
    • 结束屏幕循环
  • 字体效果 果然够随机
    • 还可以 随机一点吗?

随机颜色

  • 颜色设置
    • FG foreground 前景色
    • BG background 背景色

图片描述

  • 先尝试得到
    • 随机的前景色
  • 随机数取值范围
    • random.randint(30,37)

随机颜色

  • 变量命名
    • rand 代表
      • 得到的随机数字
    • font 代表
      • 得到的随机字体

图片描述

  • 随机数字得到随机颜色
    • 效果确实也很随机

图片描述

  • 可以得到 随机的背景色 吗?

随机背景

  • 将范围从 前景色[30, 37]
    • 移动到 背景色[40,47]

图片描述

  • 这看起来
    • 确实 比前景色 更加随机

图片描述

  • 但是 前景色
    • 还是 固定的颜色
  • 可以 前景色 、背景色
    • 随机 吗?

随机前景和背景

图片描述

  • 确实前景背景都可以随机了

图片描述

  • 还可以更乱一点吗?

索引颜色

  • 索引模式

图片描述

  • 根据上述原理

图片描述

  • 索引色来自于颜色索引表

图片描述

随机索引颜色

图片描述

图片描述

  • 如果此时再加上随机字体效果...

配合 随机数字

图片描述

  • 都随机了起来

图片描述

目前状态

  • 目前是 使用索引色 随机变化的 效果
    • 字符范围是 0-9
import random
while True:
    csi = "\33["
    font = str(random.randint(0,9))
    rand_fg = "38;5;" + str(random.randint(0,255))
    rand_bg = "48;5;" + str(random.randint(0,255))
    final_font = csi + font + ";" + rand_fg + ";" + rand_bg + "m"
    print(final_font + font,end="")
  • 这很像当年一款病毒的屏幕展示效果

crash.com

  • 病毒的名称是
    • crash.com

图片描述

  • 不要看太久
    • 眼睛受不了
  • 目前
    • 还是 索引色 模式
  • 是否可以
    • 再进一步
    • 使用RGB颜色模式
    • 来得到随机颜色呢?

字符雨

  • 黑客帝国字符雨
    • 灵感来自当时设计师(Simon Whitely)的日本裔妻子
    • 据他说 来源于 扫描后的寿司菜谱

图片描述

  • 符号来自日文片假名、罗马字母、数字

RGB模式

  • RGB模式
    • \33[38;2;R;G;Bm
import random
import time
num = 0
print("\33[0m")
while True:
     s = "\33[38;2;0;"+str(num)+";0mNeo"
     print(s, end = "")
     num += 1
     num = num % 256
  • 效果

图片描述

  • 绿色的255级色阶

总结

  • 这次输出了
    • 随机字符
    • 随机字体
    • 随机基础色
    • 随机索引色
    • 随机RGB色

图片描述

  • 你感受到随机的乐趣了么?
  • 随机到底有什么乐趣呢?
  • 下次再说 👋