运行示例 当你运行bouncingdvd.py时,输出将看起来像图 5-1 。 bouncingdvd.py节目的斜向移动的 DVD 标识 工作原理 你可能还记得学校数学课上的笛卡尔坐标。 图 5-2 显示了屏幕的坐标系统。 :原点(0,0)在屏幕的左上方,x 和 y 坐标分别向右下递增。 without it adding a # newline automatically, so reduce the width by one: WIDTH -= 1 NUMBER_OF_LOGOS = 5 X] -= 2 logo[Y] += 1 # Display number of corner bounces: bext.goto(5, 如果把第 20 行的WIDTH, HEIGHT = bext.size()改成WIDTH, HEIGHT = 10, 5会怎么样?
webpack5构建vue 必要环境 安装ndejs 我们需要安装node 如果没有安装则安装 安装过则跳过 下载安装nodejs 执行 node -v npm -v [在这里插入图片描述] 初始化项目文件夹 vuex@next vue-router@next -D npm install terser-webpack-plugin copy-webpack-plugin -D 配置webpack webpack5内置了 new TerserPlugin() ] }, plugins: [ new HtmlWebpackPlugin({ title: "小型 } ] } ] }, plugins: [ new HtmlWebpackPlugin({ title: "小型 new TerserPlugin() ] }, plugins: [ new HtmlWebpackPlugin({ title: "小型
Try changing this to 5 or 50 points. 四十三、曼卡拉 原文:http://inventwithpython.com/bigbookpython/project43.html 棋盘游戏曼卡拉至少有 2000 年的历史,几乎和 63 号项目 | 5 | 5 | S | | | | | | | S T 0 +------+------+----- 项目 45“迷宫逃亡者 3D”使用了类似的迷宫字典表示。这两个项目的区别在于在屏幕上呈现迷宫的代码。由于迷宫逃亡者 2D 更简单,我推荐在进入迷宫逃亡者 3D 之前先熟悉这个程序。 你可以按照项目 44“迷宫逃亡者 2D”中的说明生成迷宫文件,或者从invpy.com/mazes下载迷宫文件。
在尝试这个项目之前,尝试项目 50“九十九瓶”是个好主意。 (For example: 5 17 23 42 50 51) > 1 2 3 4 5 Enter the powerball number from 1 to 26. > 6 How many times (For example: 5 17 23 42 50)') response = input('> ') # Check that the player entered 5 things = 5: print('Please enter 5 numbers, separated by spaces.') = 5: print('You must enter 5 different numbers.')
第 174 到 177 行将canvas字典中的数据呈现在屏幕上,其方式类似于项目 13“康威的生命游戏”在屏幕上呈现单元格的方式。 4, 3, 3, 3, 2, 5, 1, 5, 6, 6, 6, 4, 5, 5, 1, 5, 2, 2, 2, 5, 1, 1, 2, 1, 4, 5, 6, 2, 4, 3, 4, 3, 5, 2 , 2, 1, 1, 5, 1, 3, 6, 6, 6, 6, 5, 2, 6, 5, 4, 4, 5, 1, 6, 6, 6, 4, 2, 6, 2, 6, 2, 2, 4, 3, 6, 4, 6, 第六十四个项目的sevseg.py模块“七段显示模块”为每个数字生成图形,而不是直接呈现数字字符。 这个项目类似于项目 14,“倒计时” 运行示例 当您运行digitalclock.py时,输出将如下所示: __ __ __ __ __ __ | | |__|
| 8 . . 5 4 5 . | 7 . 8 | . 9 6 6 . . 3 | 5 . 2 | 7 . . ------+-------+------ 7 7 . . | . . . For example, here is a starting Sudoku grid and its solved form: 5 3 . | . 7 . | . . . 5 3 4 9 6 1 | 5 3 7 | 2 8 4 . . . | 4 1 9 | . . 5 2 8 7 | 4 1 9 | 6 3 5 . . . | . 8 . | . 7 9 第 28 到 43 行的displayCards()函数解释这些元组并在屏幕上显示 ASCII 艺术画表示,而不是直接打印出来,就像项目 4“21 点”一样。 你也可以自己想办法做到以下几点: 使用项目 57“进度条”中的退格打印技术,简单显示每条交换信息,然后打印\b字符,在打印下一条信息之前将其删除。 创建一个增加难度的四卡蒙特游戏。
这是因为只有一种掷骰子的组合给你 2(当两个骰子都掷出 1 时发生的组合),但许多组合加起来是 7:1 和 6,2 和 5,3 和 4,等等。 但是当你掷出三个骰子呢?还是四个?还是 1000? TOTAL - ROLLS - PERCENTAGE 2 - 27590 rolls - 2.8% 3 - 55730 rolls - 5.6% 4 - 83517 rolls - 8.4% 5 6 9 12 15 18 21 24 27 30 33 36 4| 0 4 8 12 16 20 24 28 32 36 40 44 48 5| 0 5 10 15 20 25 30 35 40 45 50 55 60 6| 0 6 12 18 24 30 36 42 48 54 60 66 这个程序的一个扩展版本在项目 51 中,“90 分钟启动” 运行示例 当您运行ninetyninebottles.py时,输出将如下所示: Ninety-Nine Bottles, by Al Sweigart
HOURGLASS.add((i, 23)) # Add walls for the bottom cap. for i in range(1, 5): HOURGLASS.add((18, i HOURGLASS.add((35 - i, 5 + i)) # Add the top right slanted wall. (a mystery game) `--snip--` Time left: 5 min, 0 sec You are in your TAXI. 三十九、兰顿的蚂蚁 原文:http://inventwithpython.com/bigbookpython/project39.html 兰顿的蚂蚁是二维网格上的元胞自动机模拟,类似于项目 13“ """Leetspeak, by Al Sweigart email@protected Translates English messages into l33t5p34]<.
对于一台超级计算机来说,这对于暴力破解来说太多了,所以项目 7“凯撒破解”中使用的密码破解方法不能用于对抗简单的密码。不幸的是,狡猾的攻击者可以利用已知的弱点来破解代码。 return [['1 ', '5 ', '9 ', '13'], ['2 ', '6 ', '10', '14'], ['3 ', '7 ', '11', '15'], ['4 你也可以自己想办法做到以下几点: 创建一个更困难的5 × 5变种的滑动瓷砖谜题。 创建一个“自动解决”模式,保存当前的瓷砖排列,然后尝试多达 40 个随机移动和停止,如果他们已经解决了难题。 水平分隔线上方的珠子是一个“天”珠子,对着分隔线向下拉动它会对该数字计数为 5,因此在十位栏中向下拉动一个天堂珠子并向上拉动三个地球珠子代表数字 80。 row has a bead for digits 0, 1, 2, 5, 6, and 7.
three rules: `--snip--` Enter a starting number (greater than 0) or QUIT: > 26 26, 13, 40, 20, 10, 5, 433, 1300, 650, 325, 976, 488, 244, 122, 61, 184, 92, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 第六十四个项目的sevseg.py模块“七段显示模块”为每个数字生成图形,而不是直接呈现数字字符。您必须先创建这个文件,倒计时程序才能运行。然后,将倒计时设置为你喜欢的任何秒数、分钟数和小时数。 这个程序类似于项目 19,“数字钟。” 这个项目类似于 58 项目“彩虹” 运行示例 当您运行deepcave.py时,输出如下: Deep Cave, by Al Sweigart email@protected Press Ctrl-C
15“深坑”和项目 20“数字雨”类似,这个程序通过打印ROWS列表中的字符串来创建滚动动画。 DUCKLING_WIDTH = 5 LEFT = 'left' RIGHT = 'right' BEADY = 'beady' WIDE = 'wide' HAPPY = 'happy' ALOOF :在蚀刻绘图器程序中绘制的图 工作原理 与项目 17“骰子数学”一样,这个程序使用存储在名为canvas的变量中的字典来记录绘图的线条。 (提示:质数总是以不是 5 的奇数结尾。)你也可以让计算机用项目 56“质数”来计算它们 这个程序的数学并不太重,这使它成为初学者的理想项目。 例如,math.sqrt(25)返回5.0,因为 5 的倍数本身就是 25,所以它是 25 的平方根。
Press Enter to begin... 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73 如果你想了解这个项目,项目 24 是值得研究的。isPrime()函数本质上是寻找给定数字中的任何因子,如果找到任何因子,就返回False。 这个程序中的算法可以快速找到大质数。 这个项目创建了一个getProgressBar()函数,它根据传递给它的参数返回一个进度条字符串。它模拟了一个下载文件,但是你可以在你自己的项目中重复使用进度条。 这个项目对初学者来说很好,它类似于项目 15“深坑” 运行示例 图 58-1 显示了运行rainbow.py时的输出。 这个游戏的一个变种,见项目 60,“石头剪刀布(必胜版本)。”
这个序列永远继续下去: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987 . . . Al Sweigart email@protected `--snip--` Enter the Nth Fibonacci number you wish to calculate (such as 5, 50, 1000, 9999), or QUIT to quit: > 50 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 工作原理 本书中的棋盘游戏项目遵循类似的程序结构。 你可以查看本书中带有桌游标签的其他项目,并相互比较,尤其是当你想创建自己的原创桌游程序时。
这个项目对初学者来说很棒,不管你是聪明的还是。。。不太聪明。 这个游戏类似于项目 1,“百吉饼”,以及辐射系列视频游戏中的黑客迷你游戏。 for i in range(500): if len(words) == 5: break # Found 5 words, so break out of the 这主要在大型软件应用中有用,但是您也可以将这些原则应用到较小的项目中。 这个项目的一个稍微复杂一点的变体是项目 65,“闪光地毯” 注意,这个程序使用原始字符串,它在开始的引号前面加上小写的r,这样字符串中的反斜杠就不会被解释为转义字符。
此外,如果您使用密钥 13 对消息进行加密,凯撒密码将与项目 61 的“ROT 13 密码”相同。在en.wikipedia.org/wiki/Caesar_cipher了解更多关于凯撒密码的信息。 Try changing the 4 to a 5 or 10. 代码中的 ASCII 艺术画使得输入这个程序需要一些时间(虽然复制和粘贴 ASCII 艺术画可以加快任务),但是这个项目对于初学者来说是很好的,因为它很简单,循环最少,没有定义函数。 简单的随机数生成和用于确定奇数或偶数和的基本数学使得这个项目特别适合初学者。更多关于赵晗的信息可以在en.wikipedia.org/wiki/Cho-han找到。 > cho The dealer lifts the cup to reveal: GO - GO 5 - 5 You won! You take 800 mon.
如果把 184 行的元组改成<((0, 1), (1, 3), (3, 2), (2, 0), (0,4), (4, 5), (5, 1))>会怎么样? 、七段显示模块 原文:http://inventwithpython.com/bigbookpython/project64.html 七段显示器是一种 LCD 组件,用于在袖珍计算器、微波炉和其他小型电子设备中显示数字 项目 14,“倒计时”和项目 19,“数字钟”,导入sevseg.py文件,这样他们就可以使用它的getSevSegStr()函数。 : # Render the 5. 这个项目中的短程序,类似于项目 35,“六边形网格”,在屏幕上打印这个重复的图案。 注意,这个程序使用原始字符串,它在开始的引号前面加上小写的r,这样字符串中的反斜杠就不会被解释为转义字符。
这个项目中的 54 个问题都是经过精心设计的,因此它们的答案简单、明显且容易误导人。找到真正的答案需要一些小聪明。 这个程序使用这些包装函数,这样它们可以以类似于项目 66“简单替换密码”中的encryptMessage()和decryptMessage()的方式被调用您可以将这些项目作为模块导入到其他程序中,以利用它们的加密代码 例如,你可以装满一个 5 升的桶,然后把里面的东西倒入 3 升的桶,这样你就有了一个满满的 3 升桶,5 升桶里有 2 升水。 经过一些努力,你应该能解决这个难题。 如果把第 16 行的{'8': 0, '5': 0, '3': 0}改成{'8': 0, '5': 4, '3': 0}会怎么样? 如果把第 16 行的{'8': 0, '5': 0, '3': 0}改成{'8': 9, '5': 0, '3': 0}会怎么样?
改之前的免杀小型项目,顺便介绍不免杀改到免杀的修改过程,并提供源码(文末)。 技术采用:shellcode经过xor隐藏在资源文件,使用APC加载。 项目共3个文件 • python脚本 • 资源文件 • c++代码 原来的代码(hello.cpp) APC注入函数,不查杀的原因在于典型函数QueueUserAPC暴露,导入表条目过多。 cpp metadata.res -luser32 -lkernel32 -fno-unroll-loops -fno-exceptions -fno-rtti 直接丢进机器双击运行,成功上线: 原项目在这里
这一篇用esl实战一把,利用esl client来实现一个小型呼叫中心的原型,先看看下面这张图: ? 5、考虑到客服可能正好离开位置(比如:起身去倒杯水),或者比较忙,直接挂断了电话,步骤4的呼叫肯定失败。
不同场景适用打包器 Parcel:小型到中型规模的项目(代码行小于 15k); Webpack:大型以及企业级规模的项目; Rollup:用于 NPM 包。 如果你是使用的全局安装的parcel-bundler,可能在构建vue项目时出现上面的错误 问题很明确,找不到该模块,只需要执行npm i --save parcel-bundler在项目里安装后再parcel