从小到大玩过很多的游戏,在我小时候,能玩游戏的地方不多,那时玩游戏都是偷摸玩的,只要是个游戏就觉得非常有趣,比较经典的有魂斗罗,拳皇,超级玛丽,贪吃蛇,俄罗斯方块等游戏;发展到现在,玩游戏已经成为生活的一部分了,尤其是现在的很多游戏都已经网络社交化了,游戏种类也更加丰富了,没事大家一起组队玩个游戏还是很有趣的事情。

今天给大家带来的就是俄罗斯方块小游戏

先给大家看看游戏的试玩效果图

import sys, random from PyQt5.QtWidgets import QApplication, QDesktopWidget, QHBoxLayout, QVBoxLayout, QLabel, \QPushButton, QFrame, QLCDNumber, QSlider from PyQt5.QtGui import QIcon, QPainter, QPen, QBrush, QColor, QFont from PyQt5.QtCore import Qt, QBasicTimer # 形状
class Shape: def __init__(self): # 19种形状:tuple参数分别代表:(形状代号,左、右、上、下边缘距离,类型)self.num = 19 self.type1 = 1 self.type2 = 2 self.type3 = 3 self.type4 = 4 self.type5 = 5 self.vL = (1, 0, 0, 0, 3, self.type1)self.hL = (2, 0, 3, 0, 0, self.type1)self.S = (3, 0, 1, 0, 1, self.type2)self.lZ = (4, 0, 2, 0, 1, self.type3)self.ruZ = (5, 0, 1, 1, 1, self.type3)self.rZ = (6, 0, 2, 1, 0, self.type3)self.luZ = (7, 0, 1, 0, 2, self.type3)self.lvuF = (8, 0, 1, 0, 2, self.type4)self.rvuF = (9, 0, 1, 0, 2, self.type4)self.lhdF = (10, 0, 2, 0, 1, self.type4)self.rhdF = (11, 0, 2, 0, 1, self.type4)self.rvdF = (12, 0, 1, 0, 2, self.type4)self.lvdF = (13, 0, 1, 2, 0, self.type4)self.rhuF = (14, 0, 2, 1, 0, self.type4)self.lhuF = (15, 0, 2, 0, 1, self.type4)self.uW = (16, 0, 2, 1, 0, self.type5)self.dW = (17, 0, 2, 0, 1, self.type5)self.lW = (18, 0, 1, 1, 1, self.type5)self.rW = (19, 0, 1, 0, 2, self.type5)self.name = ((1, 0, 0, 0, 3, self.type1), (2, 0, 3, 0, 0, self.type1),(3, 0, 1, 0, 1, self.type2), (4, 0, 2, 0, 1, self.type3),(6, 0, 2, 1, 0, self.type3), (7, 0, 1, 0, 2, self.type3),(5, 0, 1, 1, 1, self.type3), (8, 0, 1, 0, 2, self.type4),(13, 0, 1, 2, 0, self.type4), (9, 0, 1, 0, 2, self.type4),(12, 0, 1, 0, 2, self.type4),(15, 0, 2, 0, 1, self.type4), (10, 0, 2, 0, 1, self.type4),(14, 0, 2, 1, 0, self.type4), (11, 0, 2, 0, 1, self.type4),(16, 0, 2, 1, 0, self.type5), (17, 0, 2, 0, 1, self.type5),(18, 0, 1, 1, 1, self.type5),(19, 0, 1, 0, 2, self.type5))self.color = (QColor(250, 150, 50), QColor(100, 100, 100), QColor(100, 150, 150), QColor(150, 100, 100))self.num_col = len(self.color) # Game
class Game: def __init__(self):self.__board = Board() # 界面
class Board(QFrame): def __init__(self):super().__init__()self.__num_y = 23 self.__num_x = 25 self.__time_step = 400 self.__initPara()self.__initUI()self.__initNet()self.setFocusPolicy(Qt.StrongFocus) # 初始化参数def __initPara(self):self.__score = 0self.__level = 0self.__timer = QBasicTimer()self.__FACTOR = 4 / 5 self.__FACTOR_SCREEN = 0.6 self.__canvas_w = self.geometry().width() * self.__FACTOR self.__canvas_h = self.geometry().height()self.__szy = int(self.__canvas_h / self.__num_y)self.__szx = int(self.__canvas_w / self.__num_x)self.__gameOverFlag = Falseself.__net = []self.__mshape = Shape()self.__block = Block(1, 1, self.__mshape.name[random.randint(0, self.__mshape.num - 1)], self.__mshape,self.__mshape.color[random.randint(0, self.__mshape.num_col - 1)]) # 初始化网格列表def __initNet(self):self.__net = [[0 for j in range(self.__num_x - 1)] for j in range(self.__num_y - 1)] # 初始化界面def __initUI(self):hb1 = QHBoxLayout()score_info_la = QLabel('Score: ')self.__score_la = QLabel('0')hb1.addWidget(score_info_la)hb1.addWidget(self.__score_la)hb1.addStretch(1)hb2 = QHBoxLayout()level_info_la = QLabel('Level: ')self.__level_la = QLabel('0')hb2.addWidget(level_info_la)hb2.addWidget(self.__level_la)hb2.addStretch(1)self.__speed_la = QLabel()self.__speed_la.setText(str((1010 - self.__time_step) / 10))self.__speed_label = QLabel('Speed:')self.__sd_slider = QSlider()self.__sd_slider.setOrientation(Qt.Horizontal)self.__sd_slider.setMaximum(1)self.__sd_slider.setMaximum(100)self.__sd_slider.setValue(int((1010 - self.__time_step) / 10))self.__sd_slider.valueChanged.connect(self.__LineEdt)hb3 = QHBoxLayout()hb3.addWidget(self.__speed_label)hb3.addWidget(self.__speed_la)hb2.addStretch(1)x_num_la = QLabel('X number:')self.__x_num_la_show = QLabel()self.__x_num_la_show.setText(str(self.__num_x - 1))hb12 = QHBoxLayout()hb12.addWidget(x_num_la)hb12.addWidget(self.__x_num_la_show)hb12.addStretch(1)self.__x_num_sl = QSlider(Qt.Horizontal, self)self.__x_num_sl.setMaximum(100)self.__x_num_sl.setMinimum(1)self.__x_num_sl.setValue(self.__num_x - 1)self.__x_num_sl.valueChanged.connect(self.__setXNum)y_num_la = QLabel('Y number:')self.__y_num_la_show = QLabel()self.__y_num_la_show.setText(str(self.__num_y - 1))hb13 = QHBoxLayout()hb13.addWidget(y_num_la)hb13.addWidget(self.__y_num_la_show)hb13.addStretch(1)self.__y_num_sl = QSlider(Qt.Horizontal, self)self.__y_num_sl.setMinimum(1)self.__y_num_sl.setMaximum(100)self.__y_num_sl.setValue(self.__num_y - 1)self.__y_num_sl.valueChanged.connect(self.__setYNum)self.__st_btn = QPushButton('Start')self.__st_btn.setEnabled(True)hb7 = QHBoxLayout()hb7.addWidget(self.__st_btn)hb7.addStretch(1)self.__stop_btn = QPushButton('Stop')self.__stop_btn.setEnabled(True)hb8 = QHBoxLayout()hb8.addWidget(self.__stop_btn)hb8.addStretch(1)self.__pause_btn = QPushButton('Pause')self.__pause_btn.setEnabled(True)hb9 = QHBoxLayout()hb9.addWidget(self.__pause_btn)hb9.addStretch(1)self.__new_btn = QPushButton('New Game')self.__new_btn.setEnabled(True)hb10 = QHBoxLayout()hb10.addWidget(self.__new_btn)hb10.addStretch(1)self.__exit_btn = QPushButton('Exit')self.__exit_btn.setEnabled(True)hb11 = QHBoxLayout()hb11.addWidget(self.__exit_btn)hb11.addStretch(1)self.__new_btn.clicked.connect(self.__newGameBtnAction)self.__st_btn.clicked.connect(self.__stBtnAction)self.__stop_btn.clicked.connect(self.__stopBtnAction)self.__pause_btn.clicked.connect(self.__pauseBtnAction)self.__exit_btn.clicked.connect(self.close)self.__lcd = QLCDNumber()self.__lcd.setMinimumSize(100, 100)hb4 = QHBoxLayout()hb4.addWidget(self.__lcd)hb4.addStretch(1)vb = QVBoxLayout()vb.addLayout(hb1)vb.addLayout(hb2)vb.addLayout(hb4)vb.addStretch(1)vb.addLayout(hb3)vb.addWidget(self.__sd_slider)vb.addLayout(hb7)vb.addLayout(hb8)vb.addLayout(hb9)vb.addStretch(1)vb.addLayout(hb12)vb.addWidget(self.__x_num_sl)vb.addLayout(hb13)vb.addWidget(self.__y_num_sl)vb.addLayout(hb10)vb.addStretch(10)vb.addLayout(hb11)hb5 = QHBoxLayout()hb5.addStretch(1)hb5.addLayout(vb)self.setLayout(hb5)screen = QDesktopWidget().screenGeometry()width = screen.width() * self.__FACTOR_SCREEN height = screen.height() * self.__FACTOR_SCREEN x0 = screen.width() * (1 - self.__FACTOR_SCREEN) / 2 y0 = screen.height() * (1 - self.__FACTOR_SCREEN) / 2 self.setGeometry(x0, y0, width, height)self.__canva_w = self.geometry().width() * self.__FACTOR self.__canva_h = self.geometry().height()self.__szx = int(self.__canva_w / self.__num_x)self.__szy = int(self.__canva_h / self.__num_y)self.setWindowTitle("Python知识交流群695185429")self.setWindowIcon(QIcon('example.png'))self.show() # 绘制网格def __drawNetGrid(self, qp):pen = QPen(Qt.lightGray, 1, Qt.DashLine)qp.setPen(pen) for i in range(self.__num_y):qp.drawLine(int(self.__szx / 2), int(i * self.__szy + self.__szy / 2),int(self.__num_x * self.__szx - self.__szx / 2), int(i * self.__szy + self.__szy / 2)) for i in range(self.__num_x):qp.drawLine(int(i * self.__szx + self.__szx / 2), int(self.__szy / 2),int(i * self.__szx + self.__szx / 2),int(self.__num_y * self.__szy - self.__szy / 2)) # 提示Game Overdef __gameOver(self, qp, x, y):pen = QPen(Qt.red)qp.setPen(pen)qp.setFont(QFont('Blackoak Std', 20))qp.drawText(x, y, self.__canva_w / 2, self.__canva_h / 2, True, 'Game Over!') # 类的自调用painter绘制函数def paintEvent(self, e):self.__canvas_w = self.geometry().width() * self.__FACTOR self.__canvas_h = self.geometry().height()self.__szx = int(self.__canvas_w / self.__num_x)self.__szy = int(self.__canvas_h / self.__num_y)qp = QPainter()qp.begin(self)self.__drawNetGrid(qp)  # 绘制网格# 绘制形状for i, eles in enumerate(self.__net): for j, ele in enumerate(eles): if not ele == 0:self.__drawRect(qp, j + 1, i + 1, self.__szx, self.__szy, ele) if self.__timer.isActive():self.__drawBlock(qp, self.__block, self.__szx, self.__szy) # game overif self.__gameOverFlag:self.__gameOverFlag = Falseself.__gameOver(qp, self.__canva_w / 4, self.__canva_h / 2)qp.end() # timerdef timerEvent(self, e): if self.__isNextPosEmpty(self.__block, 0, 1):self.__moveBlock(0, 1) else:self.__refreshFullNet(self.__block) for k, ele in enumerate(self.__net): if 0 not in ele:self.__score += 1 self.__level += int(self.__score / 10)self.__update_score()self.__update_level() for i in range(k):self.__net[k - i] = self.__net[k - 1 - i]self.__net[0] = [0 for i in range(self.__num_x - 1)] # 游戏结束if sum([1 for ele in self.__net[0] if not ele == 0]) > 0:self.stop()self.__st_btn.setEnabled(False)self.__pause_btn.setEnabled(False)self.__stop_btn.setEnabled(False)self.__gameOverFlag = True else:self.__block = self.__generateRandomBlock()self.update() # 键盘按键事件def keyPressEvent(self, e):key = e.key()x, y = self.__block.getXY() if key == Qt.Key_Left: if (x > 1) & self.__isNextPosEmpty(self.__block, -1, 0):self.__block.setXY(x - 1, y) elif key == Qt.Key_Right: if self.__isNextPosEmpty(self.__block, +1, 0):self.__block.setXY(x + 1, y) elif key == Qt.Key_Down: if self.__isNextPosEmpty(self.__block, 0, 2):self.__block.setXY(x, y + 2) elif key == Qt.Key_Up:block = Block(self.__block.getXY()[0], self.__block.getXY()[1], self.__block.getShape(), self.__mshape,self.__block.getColor())block.rota90() if (block.getDownBoun() > self.__num_y - 1) | (block.getLeftBoun() < 1) | (block.getRightBoun() > self.__num_x - 1): passelse:self.__block.rota90() elif key == Qt.Key_P: if self.__timer.isActive():self.stop() else:self.start()self.update() # 窗口大小改变自动调用事件def resizeEvent(self, e):self.update() # 判占位列表是否空def __isNextPosEmpty(self, block, step_x, step_y):bot = block.getDownBoun()right = block.getRightBoun() if ((bot + step_y) > self.__num_y - 1) | ((step_x > 0) & ((right + step_x) > self.__num_x - 1)): return Falsepos = block.getPos() for p in pos: if p[1] < 1: passelif not self.__net[p[1] - 1 + step_y][p[0] - 1 + step_x] == 0: return False return True # 更新占位列表def __refreshFullNet(self, block): for pos in block.getPos(): if (pos[0] < 1) | (pos[1] < 1) | (pos[0] > self.__num_x - 1) | (pos[1] > self.__num_y - 1): pass self.__net[pos[1] - 1][pos[0] - 1] = block.getColor() # 生成一个随机对象def __generateRandomBlock(self):num_sha = random.randint(0, self.__mshape.num - 1)sha = self.__mshape.name[num_sha]num_col = random.randint(0, self.__mshape.num_col - 1)color = self.__mshape.color[num_col]x = random.randint(1, self.__num_x)block = Block(x, 1, sha, self.__mshape, color) while block.getRightBoun() > (self.__num_x - 1):x = random.randint(1, self.__num_x)block = Block(x, 1, sha, self.__mshape, color) return block # 绘制方块def __drawRect(self, qp, x, y, szx, szy, color):x_loca = x * szx - szx / 2 y_loca = y * szy - szy / 2# Brushbrush = QBrush(color)brush.setStyle(Qt.SolidPattern)qp.setBrush(brush)qp.drawRect(x_loca, y_loca, szx, szy) # Penpen = QPen(Qt.darkBlue, 2, Qt.SolidLine)qp.setPen(pen)qp.drawRect(x_loca, y_loca, szx, szy) # 绘制特定形状def __drawBlock(self, qp, block, szx, szy):color = block.getColor()pos = block.getPos()x1 = pos[0][0]y1 = pos[0][1]x2 = pos[1][0]y2 = pos[1][1]x3 = pos[2][0]y3 = pos[2][1]x4 = pos[3][0]y4 = pos[3][1]self.__drawRect(qp, x1, y1, szx, szy, color)self.__drawRect(qp, x2, y2, szx, szy, color)self.__drawRect(qp, x3, y3, szx, szy, color)self.__drawRect(qp, x4, y4, szx, szy, color) # 移动def __moveBlock(self, speed_x, speed_y):self.__block.setXY(self.__block.getXY()[0] + speed_x, self.__block.getXY()[1] + speed_y) # 更新成绩def __update_score(self):self.__score_la.setText(str(self.__score))self.__lcd.display(str(self.__score)) # 更新等级def __update_level(self):self.__level_la.setText(str(self.__level)) # 滑动条事件def __LineEdt(self):self.__speed_la.setText(str(self.__sd_slider.value()))self.__time_step = 1010 - self.__sd_slider.value() * 10if self.__stop_btn.isEnabled() & self.__pause_btn.isEnabled():self.start() # 设置Xnumdef __setXNum(self):self.stop()self.__st_btn.setEnabled(False)self.__stop_btn.setEnabled(False)self.__pause_btn.setEnabled(False)self.__x_num_la_show.setText(str(self.__x_num_sl.value()))self.__num_x = self.__x_num_sl.value() # 设置Y Numdef __setYNum(self):self.stop()self.__st_btn.setEnabled(False)self.__stop_btn.setEnabled(False)self.__pause_btn.setEnabled(False)self.__y_num_la_show.setText(str(self.__y_num_sl.value()))self.__num_y = self.__y_num_sl.value() # 开始按钮事件def __stBtnAction(self): if self.__timer.isActive(): passelse:self.__st_btn.setEnabled(False)self.__stop_btn.setEnabled(True)self.__pause_btn.setEnabled(True)self.__timer.start(self.__time_step, self) # 停止按钮事件def __stopBtnAction(self): if self.__timer.isActive():self.__timer.stop()self.__st_btn.setEnabled(False)self.__pause_btn.setEnabled(False)self.__stop_btn.setEnabled(False)self.__timer.stop() # 暂停按钮事件def __pauseBtnAction(self): if self.__timer.isActive():self.__timer.stop()self.__st_btn.setEnabled(True)self.__pause_btn.setEnabled(False)self.__stop_btn.setEnabled(True) # 新游戏按钮事件def __newGameBtnAction(self): if self.__timer.isActive():self.stop()self.__initPara()self.__initNet()self.__st_btn.setEnabled(True)self.__pause_btn.setEnabled(True)self.__stop_btn.setEnabled(True)self.update()self.start() # 启动时间循环时间def start(self):self.__timer.start(self.__time_step, self) # 停止计时器def stop(self):self.__timer.stop() # 对象类
class Block: def __init__(self, x, y, shape, mshape, color):self.__x = xself.__y = yself.__color = colorself.__shape = shapeself.__sha = mshape # 返回四个块的中心坐标def getPos(self):x1 = x2 = x3 = x4 = self.__x y1 = y2 = y3 = y4 = self.__yif self.__shape[0] == self.__sha.hL[0]:x2 = x1 + 1 x3 = x2 + 1 x4 = x3 + 1elif self.__shape[0] == self.__sha.vL[0]:y2 = y1 + 1 y3 = y2 + 1 y4 = y3 + 1elif self.__shape[0] == self.__sha.S[0]:y2 = y1 + 1 x3 = x1 + 1 x4 = x3y4 = y2 elif self.__shape[0] == self.__sha.lZ[0]:x2 = x1 + 1 x3 = x2y3 = y2 + 1 x4 = x3 + 1 y4 = y3 elif self.__shape[0] == self.__sha.ruZ[0]:y2 = y1 + 1 x3 = x1 + 1 y3 = y1 - 1 x4 = x1 + 1elif self.__shape[0] == self.__sha.luZ[0]:y2 = y1 + 1 x3 = x1 + 1 y3 = y2x4 = x3y4 = y3 + 1elif self.__shape[0] == self.__sha.rZ[0]:x2 = x1 + 1 y2 = y1 - 1 x3 = x2y3 = y2 + 1 x4 = x3 + 1 y4 = y2 elif self.__shape[0] == self.__sha.lvuF[0]:x2 = x1 + 1 x3 = x4 = x2y3 = y2 + 1 y4 = y3 + 1elif self.__shape[0] == self.__sha.rvuF[0]:x2 = x1 + 1 y3 = y2 + 1 y4 = y3 + 1elif self.__shape[0] == self.__sha.lhdF[0]:y2 = y1 + 1 x3 = x1 + 1 x4 = x3 + 1elif self.__shape[0] == self.__sha.rhdF[0]:x2 = x1 + 1 x3 = x2 + 1 x4 = x3y4 = y3 + 1elif self.__shape[0] == self.__sha.rvdF[0]:y2 = y1 + 1 y3 = y2 + 1 x4 = x3 + 1 y4 = y3 elif self.__shape[0] == self.__sha.lvdF[0]:x2 = x1 + 1 y2 = y1 - 2 x3 = x4 = x2y3 = y1 - 1 y4 = y1 elif self.__shape[0] == self.__sha.rhuF[0]:x2 = x1 + 1 x3 = x2 + 1 x4 = x3y4 = y3 - 1elif self.__shape[0] == self.__sha.lhuF[0]:y2 = y1 + 1 x3 = x2 + 1 x4 = x3 + 1 y3 = y4 = y2 elif self.__shape[0] == self.__sha.uW[0]:x2 = x1 + 1 x3 = x2x4 = x3 + 1 y2 = y1 - 1elif self.__shape[0] == self.__sha.dW[0]:x2 = x1 + 1 x3 = x2x4 = x3 + 1 y3 = y2 + 1elif self.__shape[0] == self.__sha.lW[0]:x2 = x1 + 1 x4 = x3 = x2y2 = y1 - 1 y3 = y2 + 1 y4 = y3 + 1elif self.__shape[0] == self.__sha.rW[0]:y2 = y1 + 1 y3 = y2 + 1 y4 = y2x4 = x1 + 1return [(x1, y1), (x2, y2), (x3, y3), (x4, y4)] # 返回边界def getLeftBoun(self): return self.__x - self.__shape[1] def getRightBoun(self): return self.__x + self.__shape[2] def getTopBoun(self): return self.__y - self.__shape[3] def getDownBoun(self): return self.__y + self.__shape[4] # 返回形状def getShape(self): return self.__shape# 返回颜色def getColor(self): return self.__color# 设置颜色def setColor(self, color):self.__color = color # 设置形状def setShape(self, shape):self.__shape = shape # 设置坐标def setXY(self, x, y):self.__x = xself.__y = y # 返回坐标def getXY(self): return [self.__x, self.__y] # 移动坐标def __movePos(self, step_x, step_y):self.setXY(self.__x + step_x, self.__y + step_y) # 旋转90度def rota90(self): # type1if self.__shape[-1] == self.__sha.type1: if self.__shape[0] == self.__sha.vL[0]:self.setShape(self.__sha.hL)self.__movePos(-1, 1) elif self.__shape[0] == self.__sha.hL[0]:self.setShape(self.__sha.vL)self.__movePos(1, -1) # type2elif self.__shape[-1] == self.__sha.type2: pass# type3elif self.__shape[-1] == self.__sha.type3: if self.__shape[0] == self.__sha.lZ[0]:self.setShape(self.__sha.ruZ) elif self.__shape[0] == self.__sha.rZ[0]:self.setShape(self.__sha.luZ)self.__movePos(0, -1) elif self.__shape[0] == self.__sha.luZ[0]:self.setShape(self.__sha.rZ)self.__movePos(-1, 1) elif self.__shape[0] == self.__sha.ruZ[0]:self.setShape(self.__sha.lZ)self.__movePos(0, -1) # type4elif self.__shape[-1] == self.__sha.type4: if self.__shape[0] == self.__sha.lvuF[0]:self.setShape(self.__sha.rhuF)self.__movePos(0, 1) elif self.__shape[0] == self.__sha.lvdF[0]:self.setShape(self.__sha.lhuF)self.__movePos(0, -2) elif self.__shape[0] == self.__sha.rvuF[0]:self.setShape(self.__sha.rhdF)self.__movePos(-1, 1) elif self.__shape[0] == self.__sha.rvdF[0]:self.setShape(self.__sha.lhdF)self.__movePos(-1, 1) elif self.__shape[0] == self.__sha.lhuF[0]:self.setShape(self.__sha.rvuF)self.__movePos(1, 0) elif self.__shape[0] == self.__sha.lhdF[0]:self.setShape(self.__sha.lvuF)self.__movePos(0, -1) elif self.__shape[0] == self.__sha.rhuF[0]:self.setShape(self.__sha.rvdF)self.__movePos(1, -1) elif self.__shape[0] == self.__sha.rhdF[0]:self.setShape(self.__sha.lvdF)self.__movePos(0, 1) # type5elif self.__shape[-1] == self.__sha.type5: if self.__shape[0] == self.__sha.uW[0]:self.setShape(self.__sha.rW)self.__movePos(1, -1) elif self.__shape[0] == self.__sha.dW[0]:self.setShape(self.__sha.lW) elif self.__shape[0] == self.__sha.lW[0]:self.setShape(self.__sha.uW) elif self.__shape[0] == self.__sha.rW[0]:self.setShape(self.__sha.dW)self.__movePos(-1, +1) if __name__ == '__main__':app = QApplication(sys.argv)game = Game()sys.exit(app.exec_())

为解决初学者学习上的困难,专门建立的Python学习扣qun:784758214,从0基础的python脚本到web开发、爬虫、django、数据挖掘数据分析等,0基础到项目实战的资料都有整理。送给每一位python的小伙伴!每晚分享一些学习的方法和需要注意的小细节,学习路线规划,利用编程赚外快。点击加入我们的 python学习圈

福利来啦,送给大家利用Python做出的一个小游戏源码,不要错过哟相关推荐

  1. 20行python代码的入门级小游戏--源码:猜大小

    源码: import random rang1 = int(input("请设置本局游戏的最小值:")) rang2 = int(input("请设置本局游戏的最大值:& ...

  2. 学生学python编程---实现贪吃蛇小游戏+源码

    学生学python编程---实现贪吃蛇小游戏+源码 前言 主要设计 1.蛇的表示 2.蛇怎么移动? 3.玩家控制小蛇移动功能的实现 4.如何判定游戏结束? 应用知识点 1.python知识点 1.1 ...

  3. 5个Python小游戏+源码,本来要帮我侄孙戒手游瘾的,结果我和他玩疯了

    我这个人本来是不喜欢玩游戏的,但最近我哥有点事情就把他孙子放在我家让我们帮忙带,我这个小侄孙就特别爱玩游戏,六七岁出头,天天盯着个王者荣耀,真是让人头疼. 然后我就想了个办法,就用Python改了消消 ...

  4. python剪刀石头布小游戏源码下载_Python Tkinter实现剪刀石头布小游戏

    Python Tkinter实现剪刀石头布小游戏 发布时间:2020-10-26 14:56:52 来源:亿速云 阅读:67 作者:Leah 本篇文章给大家分享的是有关Python Tkinter实现 ...

  5. 541页《利用Python进行数据分析》分享(附源码下载)

    1 前言 今天,StrongerTang 给大家分享一下 <利用Python进行数据分析>第二版,分享给有需要的小伙伴,也希望有更多的朋友能在StrongerTang相遇. 2 简介 &l ...

  6. 利用python制作自己的小游戏,超简教程

    懒得客套,直接步入主题 首先,利用python来做游戏需要用到python中的pygame模块,这个我们在终端cmd中安装 输入:pip install pygame 安装好后我们进入pycharm查 ...

  7. 如何用python爬视频_科学网—利用python爬取一个小视频 - 李鸿斌的博文

    工具 : requests 库 解析: beautifulsoup 任务: 视频抓取 1,分析目标网站 寻找一个虚拟的头文件 User-Agent: Mozilla/5.0 (Windows NT 6 ...

  8. Python快速编程入门#学习笔记02# |第十章 :Python计算生态与常用库(附.小猴子接香蕉、双人乒乓球小游戏源码)

    全文目录 学习目标 1. Python计算生态概述 1.1 Python计算生态概述 2. Python生态库的构建与发布 2.1 模块的构建与使用 * 2.1.1第三方库/模块导入的格式 2.2 包 ...

  9. python小游戏源码-Python小游戏之300行代码实现俄罗斯方块

    Python小游戏之300行代码实现俄罗斯方块 来源:中文源码网 浏览: 次 日期:2019年11月5日 [下载文档: Python小游戏之300行代码实现俄罗斯方块.txt ] (友情提示:右键点上 ...

最新文章

  1. 分享一个PyTorch医学图像分割开源库
  2. 51.1AP!单阶段检测器的新纪录,TOOD:即插即用的检测器换头术,显著提升性能
  3. c++ 优先队列_什么是队列?(Python队列)
  4. C++ WINDOWS API 第2章 Windows API概要
  5. 以array开头的php函数,PHP 常用数组函数详解
  6. Bootstrap3 源码版本的文件结构
  7. 使用webpack引入sass全局变量
  8. WPF e.Systemkey的一个坑
  9. bzoj 4443: [Scoi2015]小凸玩矩阵(二分+二分匹配)
  10. LSH︱python实现局部敏感哈希——LSHash(二)
  11. Laravel 跨域问题解决
  12. Altium Designer PCB等长线设计终极技巧(单端和差分线)
  13. 数字孪生实际应用案例-煤矿篇
  14. JedisClusterException: No way to dispatch this command to Redis Cluster because keys have different
  15. 线性渐变 `-webkit-linear-gradient`
  16. [二十一]深度学习Pytorch-正则化Regularization之weight decay
  17. HIVE --- Metastore
  18. error: Unable to load contents of file list: '/Users/.../Products/Debug-appletvos/myapp.app/Info....
  19. 同步时钟系统架构与原理
  20. synplify user guide note1

热门文章

  1. 聊聊ip与mac地址之间那些事
  2. 【总结】1327- 降低前端业务复杂度新视角:状态机范式
  3. Webpack中resolve配置
  4. 用Android UEventObserver监听内核uevent
  5. 关于上传文件的大小限制
  6. Ubuntu tar 解压的时候报错 tar: Ignoring unknown extended header keyword...解决方案
  7. vim 显示行号 (Linux)
  8. 解决python3 pkl文件打印出的数组有省略号的问题(numpy, pytorch)
  9. 深圳生活----租房篇
  10. vscode显示函数列表