python坦克大战_Life is short,you need Python——Python实现坦克大战(一)

ae45e39db896df28049e6b0df5dd5bde.png

先展示一下效果

7ae7ceff7da63d3ce05a8c6c976b7732.png
搓搓小手手,坦克大战即将开始……https://www.zhihu.com/video/1140743290784817152

一、游戏引擎的安装

安装方式有两种:1.pip安装
windows + R --> cmd --> pip install pygame

ee1b2fda1b23f4c7af121f46c026c368.png

b9254e3362daa81eeedbd7d8064a5ac4.png

2.pycharm安装
File -->setting -->project -->prioect Interpreter -->右侧 + install --> 搜索输入pygame -->左下方installpackage

4590a5b4072bca010ee4da0580e7ff41.png

验证pygame安装是否成功

92e2d5f49bba9c3dc7521d46b5ee1428.png

ae6012fc1dcd2d7fb61ab23107c5fc15.png
import pygame运行结果:
pygame 1.9.6
Hello from the pygame community. https://www.pygame.org/contribute.html

二.项目的需求(基于面向对象的分析):

有哪些类,不同的类具有的功能
1.主逻辑类
开始游戏
结束游戏
2.坦克类(1.我方坦克 2.敌方坦克)
移动
射击
展示
3.子弹类
移动
展示
4.爆炸效果类
展示爆炸效果
5.墙壁类
属性:坦克和子弹是否可以通过
6.音效类
播放背景音乐,射击音效,爆炸音效

三.坦克大战项目框架的搭建

涉及到的类,用代码简单的实现

import pygameclass MainGame:"""主游戏类"""def __init__(self):passdef startGame(self):"""开始游戏"""passdef endGame(self):"""结束游戏"""passclass Tank:"""坦克类"""def __init__(self):passdef move(self):"""坦克的移动"""passdef shot(self):"""坦克的射击"""passdef displayTank(self):"""展示坦克"""passclass MyTank(Tank):"""我方坦克类"""def __init__(self):passclass EnemyTank(Tank):"""敌方坦克类"""def __init__(self):passclass Bullet:"""子弹类"""def __init__(self):passdef move(self):"""子弹的移动"""passdef displayBullet(self):"""展示子弹"""passclass Explode:"""爆炸效果类"""def __init__(self):passdef displayExplode(self):"""展示爆炸效果"""passclass Wall:"""墙壁类"""def __init__(self):passdef dispalyWall(self):"""展示墙壁"""passclass Music:"""音效类"""def __init__(self):passdef play(self):"""开始播放音乐"""pass

四.项目开始:

1.创建游戏窗口

用到游戏引擎中的功能模块:
查看官方开发文档 http://www.pygame.org/docs/

www.pygame.org​www.pygame.org
import pygame_display = pygame.display
COLOR_BLACK = pygame.Color(0,0,0)#窗口颜色class MainGame:"""主游戏类"""window = None  # 游戏主窗口SCREEN_HEIGHT = 500  # 窗口的高度SCREEN_WIDTH = 800  # 窗口的宽度def __init__(self):passdef startGame(self):"""开始游戏"""_display.init()  # 初始化窗口MainGame.window = _display.set_mode([MainGame.SCREEN_WIDTH,MainGame.SCREEN_HEIGHT])  # 创建窗口并加载窗口(借鉴官方文档)_display.set_caption("坦克大战v1.03")  # 设置游戏的标题while True:#让窗口持续刷新MainGame.window.fill(COLOR_BLACK)#给窗口完成一个填充颜色_display.update()#窗口的刷新def endGame(self):"""结束游戏"""print("谢谢使用")exit()  # 结束python解释器class Tank:"""坦克类"""def __init__(self):passdef move(self):"""坦克的移动"""passdef shot(self):"""坦克的射击"""passdef displayTank(self):"""展示坦克"""passclass MyTank(Tank):"""我方坦克类"""def __init__(self):passclass EnemyTank(Tank):"""敌方坦克类"""def __init__(self):passclass Bullet:"""子弹类"""def __init__(self):passdef move(self):"""子弹的移动"""passdef displayBullet(self):"""展示子弹"""passclass Explode:"""爆炸效果类"""def __init__(self):passdef displayExplode(self):"""展示爆炸效果"""passclass Wall:"""墙壁类"""def __init__(self):passdef dispalyWall(self):"""展示墙壁"""passclass Music:"""音效类"""def __init__(self):passdef play(self):"""开始播放音乐"""passMainGame().startGame()

运行结果:

d22edd0d4615920bf5e7bf9e9dd09e30.png

2.事件处理

  1. 点击关闭按钮,退出程序
  2. 方向控制,子弹发射
import pygame_display = pygame.display
COLOR_BLACK = pygame.Color(0, 0, 0)  # 窗口颜色class MainGame:"""主游戏类"""window = None  # 游戏主窗口SCREEN_HEIGHT = 500  # 窗口的高度SCREEN_WIDTH = 800  # 窗口的宽度def __init__(self):passdef startGame(self):"""开始游戏"""_display.init()  # 初始化窗口MainGame.window = _display.set_mode([MainGame.SCREEN_WIDTH,MainGame.SCREEN_HEIGHT])  # 创建窗口并加载窗口(借鉴官方文档)_display.set_caption("坦克大战v1.04")  # 设置游戏的标题# 让窗口持续刷新while True:MainGame.window.fill(COLOR_BLACK)  # 给窗口完成一个填充颜色self.getEvent()  # 在循环中持续完成事件的获取_display.update()  # 窗口的刷新def getEvent(self):"""获取程序运行期间所有的鼠标和键盘事件"""eventList = pygame.event.get()  # 获取所有的事件for event in eventList:  # 对事件进行判断处理(1.点击鼠标关闭按钮  2.按下键盘上的某个按键)if event.type == pygame.QUIT:  # 判断event.type是否为QUIT,如果是,直接调用程序结束方法self.endGame()# 判断事件是否为键盘按键操作,如果是,继续判断按键是哪一个按键,并进行对应的处理if event.type == pygame.KEYDOWN:# 具体是哪个按键的处理if event.key == pygame.K_LEFT:print("坦克向左调头,移动")elif event.key == pygame.K_RIGHT:print("坦克向右调头,移动")elif event.key == pygame.K_UP:print("坦克向上调头,移动")elif event.key == pygame.K_DOWN:print("坦克向下调头,移动")elif event.key == pygame.K_SPACE:print("发射子弹")def endGame(self):"""结束游戏"""print("谢谢使用")exit()  # 结束python解释器class Tank:"""坦克类"""def __init__(self):passdef move(self):"""坦克的移动"""passdef shot(self):"""坦克的射击"""passdef displayTank(self):"""展示坦克"""passclass MyTank(Tank):"""我方坦克类"""def __init__(self):passclass EnemyTank(Tank):"""敌方坦克类"""def __init__(self):passclass Bullet:"""子弹类"""def __init__(self):passdef move(self):"""子弹的移动"""passdef displayBullet(self):"""展示子弹"""passclass Explode:"""爆炸效果类"""def __init__(self):passdef displayExplode(self):"""展示爆炸效果"""passclass Wall:"""墙壁类"""def __init__(self):passdef dispalyWall(self):"""展示墙壁"""passclass Music:"""音效类"""def __init__(self):passdef play(self):"""开始播放音乐"""passMainGame().startGame()

运行结果:

b528b55e856d4db272f1559ac9b93dd1.png

3.实现左上角文字提示内容

模块:font

import pygame_display = pygame.display
COLOR_BLACK = pygame.Color(0, 0, 0)  # 窗口颜色
COLOR_RED = pygame.Color(255, 0, 0)  # 窗口左上角文字颜色class MainGame:"""主游戏类"""window = None  # 游戏主窗口SCREEN_HEIGHT = 500  # 窗口的高度SCREEN_WIDTH = 800  # 窗口的宽度def __init__(self):passdef startGame(self):"""开始游戏"""_display.init()  # 初始化窗口# 创建窗口并加载窗口(借鉴官方文档)MainGame.window = _display.set_mode([MainGame.SCREEN_WIDTH, MainGame.SCREEN_HEIGHT])_display.set_caption("坦克大战v1.05")  # 设置游戏的标题# 让窗口持续刷新while True:MainGame.window.fill(COLOR_BLACK)  # 给窗口完成一个填充颜色# 将绘制文字的小画布粘贴到窗口中MainGame.window.blit(self.getTextSurface("剩余敌方坦克{}辆".format(5)), (5, 5))self.getEvent()  # 在循环中持续完成事件的获取_display.update()  # 窗口的刷新def getEvent(self):"""获取程序运行期间所有的鼠标和键盘事件"""eventList = pygame.event.get()  # 获取所有的事件# 对事件进行判断处理(1.点击鼠标关闭按钮  2.按下键盘上的某个按键)for event in eventList:# 判断event.type是否为QUIT,如果是,直接调用程序结束方法if event.type == pygame.QUIT:self.endGame()# 判断事件是否为键盘按键操作,如果是,继续判断按键是哪一个按键,并进行对应的处理if event.type == pygame.KEYDOWN:# 具体是哪个按键的处理if event.key == pygame.K_LEFT:print("坦克向左调头,移动")elif event.key == pygame.K_RIGHT:print("坦克向右调头,移动")elif event.key == pygame.K_UP:print("坦克向上调头,移动")elif event.key == pygame.K_DOWN:print("坦克向下调头,移动")elif event.key == pygame.K_SPACE:print("发射子弹")def getTextSurface(self, text):pygame.font.init()  # 初始化字体模块# fontList = pygame.font.get_fonts()  # 查看系统支持的所有字体# print(fontList)font = pygame.font.SysFont('kaiti', 20)  # 选一个合适的字体textSurface = font.render(text, True, COLOR_RED)  # 使用对应的字符完成相关内容的绘制return textSurfacedef endGame(self):"""结束游戏"""print("谢谢使用")exit()  # 结束python解释器class Tank:"""坦克类"""def __init__(self):passdef move(self):"""坦克的移动"""passdef shot(self):"""坦克的射击"""passdef displayTank(self):"""展示坦克"""passclass MyTank(Tank):"""我方坦克类"""def __init__(self):passclass EnemyTank(Tank):"""敌方坦克类"""def __init__(self):passclass Bullet:"""子弹类"""def __init__(self):passdef move(self):"""子弹的移动"""passdef displayBullet(self):"""展示子弹"""passclass Explode:"""爆炸效果类"""def __init__(self):passdef displayExplode(self):"""展示爆炸效果"""passclass Wall:"""墙壁类"""def __init__(self):passdef dispalyWall(self):"""展示墙壁"""passclass Music:"""音效类"""def __init__(self):passdef play(self):"""开始播放音乐"""passMainGame().startGame()

运行结果:

9350c5c14b2a144e9c1a7cc8793a09ff.png

4.加载我方坦克

素材:

d9695b590c5175d15590a8179379a1fb.png

5a5735b4e6a00b9320af8dd5c6bc58f7.png

2ed8aad6916a6703963b0c5739f6e1de.png

0f5e6cf80388566c95f61fda2c727359.png
import pygame_display = pygame.display
COLOR_BLACK = pygame.Color(0, 0, 0)  # 窗口颜色
COLOR_RED = pygame.Color(255, 0, 0)  # 窗口左上角文字颜色class MainGame:"""主游戏类"""window = None  # 游戏主窗口SCREEN_WIDTH = 800  # 窗口的宽度SCREEN_HEIGHT = 500  # 窗口的高度TANK_P1 = None  # 我方坦克def __init__(self):passdef startGame(self):"""开始游戏"""_display.init()  # 初始化窗口# 创建窗口并加载窗口(借鉴官方文档)MainGame.window = _display.set_mode([MainGame.SCREEN_WIDTH, MainGame.SCREEN_HEIGHT])MainGame.TANK_P1 = Tank(MainGame.SCREEN_WIDTH // 2, MainGame.SCREEN_HEIGHT - 70)  # 创建我方坦克_display.set_caption("坦克大战v1.06")  # 设置游戏的标题# 让窗口持续刷新while True:MainGame.window.fill(COLOR_BLACK)  # 给窗口完成一个填充颜色# 将绘制文字的小画布粘贴到窗口中MainGame.window.blit(self.getTextSurface("剩余敌方坦克{}辆".format(5)), (5, 5))# 将我方坦克加入到窗口中MainGame.TANK_P1.displayTank()self.getEvent()  # 在循环中持续完成事件的获取_display.update()  # 窗口的刷新def getEvent(self):"""获取程序运行期间所有的鼠标和键盘事件"""eventList = pygame.event.get()  # 获取所有的事件# 对事件进行判断处理(1.点击鼠标关闭按钮  2.按下键盘上的某个按键)for event in eventList:# 判断event.type是否为QUIT,如果是,直接调用程序结束方法if event.type == pygame.QUIT:self.endGame()# 判断事件是否为键盘按键操作,如果是,继续判断按键是哪一个按键,并进行对应的处理if event.type == pygame.KEYDOWN:# 具体是哪个按键的处理if event.key == pygame.K_LEFT:print("坦克向左调头,移动")elif event.key == pygame.K_RIGHT:print("坦克向右调头,移动")elif event.key == pygame.K_UP:print("坦克向上调头,移动")elif event.key == pygame.K_DOWN:print("坦克向下调头,移动")elif event.key == pygame.K_SPACE:print("发射子弹")def getTextSurface(self, text):pygame.font.init()  # 初始化字体模块# fontList = pygame.font.get_fonts()  # 查看系统支持的所有字体# print(fontList)font = pygame.font.SysFont('kaiti', 20)  # 选一个合适的字体textSurface = font.render(text, True, COLOR_RED)  # 使用对应的字符完成相关内容的绘制return textSurfacedef endGame(self):"""结束游戏"""print("谢谢使用")exit()  # 结束python解释器class Tank:"""坦克类"""def __init__(self, left, top):self.images = {'D': pygame.image.load('img/tank_1_D.jpg'),'U': pygame.image.load('img/tank_1_U.jpg'),'L': pygame.image.load('img/tank_1_L.jpg'),'R': pygame.image.load('img/tank_1_R.jpg'),}  # 四个方向,四个图片self.direction = 'U'  # 初始方向为上self.image = self.images[self.direction]  # 根据方向选择对应的图片# 坦克所在的区域  Rect-->self.rect = self.image.get_rect()# 指定坦克初始化位置分别距x,y轴的位置self.rect.left = leftself.rect.top = topdef move(self):"""坦克的移动"""passdef shot(self):"""坦克的射击"""passdef displayTank(self):"""展示坦克(将坦克绘制到窗口中,使用blit())"""# 重新设置坦克的图片self.image = self.images[self.direction]# 将坦克加载到窗口中MainGame.window.blit(self.image, self.rect)class MyTank(Tank):"""我方坦克类"""def __init__(self):passclass EnemyTank(Tank):"""敌方坦克类"""def __init__(self):passclass Bullet:"""子弹类"""def __init__(self):passdef move(self):"""子弹的移动"""passdef displayBullet(self):"""展示子弹"""passclass Explode:"""爆炸效果类"""def __init__(self):passdef displayExplode(self):"""展示爆炸效果"""passclass Wall:"""墙壁类"""def __init__(self):passdef dispalyWall(self):"""展示墙壁"""passclass Music:"""音效类"""def __init__(self):passdef play(self):"""开始播放音乐"""passMainGame().startGame()

运行结果:

bd5abece6bce1a9cc48b1bda36307ecc.png

5.坦克类新增speed属性,用来控制坦克移动快慢
6.事件处理:

  1. 改变坦克方向
  2. 修改坦克的位置(left,top):取决于坦克的速度
import pygame_display = pygame.display
COLOR_BLACK = pygame.Color(0, 0, 0)  # 窗口颜色
COLOR_RED = pygame.Color(255, 0, 0)  # 窗口左上角文字颜色class MainGame:"""主游戏类"""window = None  # 游戏主窗口SCREEN_WIDTH = 800  # 窗口的宽度SCREEN_HEIGHT = 500  # 窗口的高度TANK_P1 = None  # 我方坦克def __init__(self):passdef startGame(self):"""开始游戏"""_display.init()  # 初始化窗口# 创建窗口并加载窗口(借鉴官方文档)MainGame.window = _display.set_mode([MainGame.SCREEN_WIDTH, MainGame.SCREEN_HEIGHT])MainGame.TANK_P1 = Tank(MainGame.SCREEN_WIDTH // 2, MainGame.SCREEN_HEIGHT - 70)  # 创建我方坦克_display.set_caption("坦克大战v1.07")  # 设置游戏的标题# 让窗口持续刷新while True:MainGame.window.fill(COLOR_BLACK)  # 给窗口完成一个填充颜色# 将绘制文字的小画布粘贴到窗口中MainGame.window.blit(self.getTextSurface("剩余敌方坦克{}辆".format(5)), (5, 5))# 将我方坦克加入到窗口中MainGame.TANK_P1.displayTank()self.getEvent()  # 在循环中持续完成事件的获取_display.update()  # 窗口的刷新def getEvent(self):"""获取程序运行期间所有的鼠标和键盘事件"""eventList = pygame.event.get()  # 获取所有的事件# 对事件进行判断处理(1.点击鼠标关闭按钮  2.按下键盘上的某个按键)for event in eventList:# 判断event.type是否为QUIT,如果是,直接调用程序结束方法if event.type == pygame.QUIT:self.endGame()# 判断事件是否为键盘按键操作,如果是,继续判断按键是哪一个按键,并进行对应的处理if event.type == pygame.KEYDOWN:# 具体是哪个按键的处理if event.key == pygame.K_LEFT:print("坦克向左调头,移动")# 修改坦克方向MainGame.TANK_P1.direction = 'L'# 完成移动操作(调用坦克的移动方法)MainGame.TANK_P1.move()elif event.key == pygame.K_RIGHT:print("坦克向右调头,移动")# 修改坦克方向MainGame.TANK_P1.direction = 'R'# 完成移动操作(调用坦克的移动方法)MainGame.TANK_P1.move()elif event.key == pygame.K_UP:print("坦克向上调头,移动")# 修改坦克方向MainGame.TANK_P1.direction = 'U'# 完成移动操作(调用坦克的移动方法)MainGame.TANK_P1.move()elif event.key == pygame.K_DOWN:print("坦克向下调头,移动")# 修改坦克方向MainGame.TANK_P1.direction = 'D'# 完成移动操作(调用坦克的移动方法)MainGame.TANK_P1.move()elif event.key == pygame.K_SPACE:print("发射子弹")def getTextSurface(self, text):pygame.font.init()  # 初始化字体模块# fontList = pygame.font.get_fonts()  # 查看系统支持的所有字体# print(fontList)font = pygame.font.SysFont('kaiti', 20)  # 选一个合适的字体textSurface = font.render(text, True, COLOR_RED)  # 使用对应的字符完成相关内容的绘制return textSurfacedef endGame(self):"""结束游戏"""print("谢谢使用")exit()  # 结束python解释器class Tank:"""坦克类"""def __init__(self, left, top):self.images = {'D': pygame.image.load('img/tank_1_D.jpg'),'U': pygame.image.load('img/tank_1_U.jpg'),'L': pygame.image.load('img/tank_1_L.jpg'),'R': pygame.image.load('img/tank_1_R.jpg'),}  # 四个方向,四个图片self.direction = 'U'  # 初始方向为上self.image = self.images[self.direction]  # 根据方向选择对应的图片# 坦克所在的区域  Rect-->self.rect = self.image.get_rect()# 指定坦克初始化位置分别距x,y轴的位置self.rect.left = leftself.rect.top = topself.speed = 5def move(self):"""坦克的移动"""if self.direction == 'L':self.rect.left -= self.speedelif self.direction == 'R':self.rect.left += self.speedelif self.direction == 'U':self.rect.top -= self.speedelif self.direction == 'D':self.rect.top += self.speeddef shot(self):"""坦克的射击"""passdef displayTank(self):"""展示坦克(将坦克绘制到窗口中,使用blit())"""# 重新设置坦克的图片self.image = self.images[self.direction]# 将坦克加载到窗口中MainGame.window.blit(self.image, self.rect)class MyTank(Tank):"""我方坦克类"""def __init__(self):passclass EnemyTank(Tank):"""敌方坦克类"""def __init__(self):passclass Bullet:"""子弹类"""def __init__(self):passdef move(self):"""子弹的移动"""passdef displayBullet(self):"""展示子弹"""passclass Explode:"""爆炸效果类"""def __init__(self):passdef displayExplode(self):"""展示爆炸效果"""passclass Wall:"""墙壁类"""def __init__(self):passdef dispalyWall(self):"""展示墙壁"""passclass Music:"""音效类"""def __init__(self):passdef play(self):"""开始播放音乐"""passMainGame().startGame()

运行结果:

ab7689df449c393b19345e0fc20f31f0.png
可以朝各个方向移动了https://www.zhihu.com/video/1141070523843960832

字数上限,新开一篇……

Life is short,you need Python——Python实现坦克大战(二)

皮卡丘比特:Life is short,you need Python——Python实现坦克大战(二)​zhuanlan.zhihu.com
eb2b0ec4b2cb7b9e96cad4dfeede6c3c.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468614.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【java设计模式】【行为模式Behavioral Pattern】迭代器模式Iterator Pattern

1 package com.tn.pattern;2 3 public class Client {4 public static void main(String[] args) {5 Object[] objs{"飞","雪","连","天","射","白","鹿","笑","书",&…

复习Java字节流_字符流使用及案例

字节流_字符流 主要内容 IO流字节流字符流异常处理Properties 第一章 IO概述 1.1 什么是IO 生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了ctrls ,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频…

ESP32 coredump 分析

1. 上次写了一个 ESP32 入门,我想有必要再写这篇文章,这次主要是分析 coredump 的,这就像 Android 和 Linux 系统的死机分析,有意思,也有难度。我们写代码的时候,不可避免的会遇到一些 coredump 的问题&am…

pycharm变量存_pycharm不为人知的功能们

一、远程调试这个功能真的好用,现改现测参考的博客写的挺详细的,补充一下个人的注意事项1.要选sftp连接,否则连接不上(没有具体查找原因,sftp挺好用的就用着),端口是222.Connection中的Root path指定根目录&#xff0c…

css div设置inline-block后 div顶部对齐

div{vertical-align:top}转载于:https://www.cnblogs.com/SunSong/p/6846776.html

我那个在华为过得很好的朋友

最近华为的事件又上了热搜,不管是微信还是知乎,都在啃这个热点,一种是看热闹不闲事大的,一种是看热闹闲事大的,我呢?昨晚跟我的一个华为朋友玩了几把王者荣耀,虽然不能带他全盘浪,但…

Redis概述_使用命令对redis的数据进行增删改查_Jedis连接redis进行数据操作_redis进行数据缓存案例

学习目标 redis 概念下载安装命令操作 1. 数据结构持久化操作使用Java客户端操作redis Redis 前言(从百度上抄的, 看看了解一下, 懒得排版了) 1. 概念: redis是一款高性能的NOSQL系列的非关系型数据库1.1.什么是NOSQLNoSQL(NoSQL Not Only SQL),意即…

cif t t操作流程图_外贸跟单员的详细工作流程:跟单员工作流程图

外贸跟单员详细工作流程外贸跟单员定义: 外贸跟单员是指在进出口业务中,在贸易合同签订后,依据合同和相关单证对货物加工、装运、保险、报检、报关、结汇等部分或全部环节进行跟踪或操作,协助履行贸易合同的外贸业务人员。外贸跟…

从你的全世界路过-论演员的自我修养

线程 1.概念 : 线程是一个程序内部的顺序控制流 2.线程与进程的区别 (1)每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销 (2) 线程可以看做轻量级的进程…

要有敬畏之心

最近开始周六也没有休息,心理上还是很难接受,也不是说周六上班有多累,就是没有找到对的感觉,就像和一个不喜欢的姑娘相亲,就算姑娘家财万贯,貌美如花,自己还是提不起兴趣,可能这就是…

复习Java_List_Set_HashSet原理_Collections使用_Comparator使用

复习Java_List_Set_HashSet原理_Collections使用_Comparator使用 主要内容 数据结构List集合Set集合Collections 第一章 数据结构 2.1 数据结构有什么用? 加快应用开发, 提高程序健壮性, 提高程序可重用性 2.2 常见的数据结构 数据存储的常用结构有&#xff…

子之错父之过什么意思_"子不教父之过",这句话出自哪里?什么意思?

展开全部"子不教父之过"这句话应该是养不教,父之过。意思是仅仅是供养儿62616964757a686964616fe4b893e5b19e31333431333939女吃穿,而不好好教育,是父母的过错。出自中国的传统启蒙教材《三字经》。在中国古代经典当中…

Linux之定时任务补充

定时任务两实例 例1: 每分钟打印一次自己的名字拼音全拼到“/server/log/自己的名字命名的文件”中。 [rootchengliang log]# mkdir -p /server/log/ [rootchengliang log]# echo "chensiqi" >>/server/log/chengliang [rootchengliang log]# crontab -l #time…

最近,我也要买书了

1.当当网给我做的一个活动,购书优惠,确实是福利了,而且筛选的书籍对我们做嵌入式都是比较有帮助的,你应该知道,做活动的时候,价格都是比较不错,不要错过了时间再想要当时的价格,有需…

复习Java异常处理_异常分类_自定义异常_线程初步了解

复习Java异常处理_异常分类_自定义异常_线程 主要内容 异常、线程 教学目标 第一章 异常 1.1 异常概念 异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是: 异常…

python selenium自动化测试面试题_selenium 自动化测试面试题及答案

1、selenium中如何判断元素是否存在?- isElementPresent2、selenium中hidden或者是display = none的元素是否可以定位到?- 不能3、selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?…

跟我师兄聊天引发的思考

我一个师兄,上大学的时候关系很好,我师兄也很喜欢打篮球,也许这就是我们有很多共同话题的原因,人是很奇怪,特别是做技术的,本来就比较闷,很难跟陌生人马上来电,但是如果有个共同爱好…

HDU 4701 Game

link:http://acm.hdu.edu.cn/showproblem.php?pid4701 DP真美 ! (亝 ‿ 亝) dp[pos][a][b][0/1]:第pos件商品即将被购买,Alice有a元, Bob有b元,轮到谁行动(0:Alice 1:Bob)。 打训练赛时,设计出…

写好一份属于自己的简历

原文出处:原文链接 下面是精益技术简历的47条原则: 版式 原则1:使用对齐 原则2:不必使用居中 原则3:谨慎使用粗体 原则4:避免不必要的折行 原则5:使用制表符辅助对齐 个人信息 原则6&#xff…

别忘了当初你为何出发

最近,特别喜欢听一个广播,宝安905,估计是因为我最近营养不太够,需要多喝一些鸡汤,刚好这个电台广播的鸡汤非常够味,非常符合我现在的胃口。比如这一句「你想收获世界上最好的东西,先让世界看到最…