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

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

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

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. anaconda2-keras安装;keras后端修改
  2. 面具卡米怎么删模块_魔兽8.3咋肥事——面具带几个收益高?对小怪宝箱水晶有加成吗?...
  3. linux 设备文件分区命令,Linux常见设备及相应/dev/xxx文件名、Mount Point、挂载点、Mount命令、fstab、挂载分区(示例代码)...
  4. 数据库原理与应用(SQL Server)笔记 第三章 连接查询
  5. mysql开启gtid dump_mysqldump关于--set-gtid-purged=OFF的使用
  6. URLDecoder和URLEncoder的使用总结
  7. 学计算机的怎样分析TCGA数据库,TCGA一些数据库
  8. [词汇] 十四、动词
  9. mysql 文本类型的长度
  10. matlab指南针的例子,小米指南针源码
  11. 对论文中模型进行编程实现时的注意要求和总结
  12. 计算机 电脑 整机 加密,如何加密文件夹
  13. Selina现身代言发福 手臂上伤疤明显
  14. 安装Ubuntu时:安装程序向硬盘复制文件时遇到错误
  15. curl api接口获取当前IP地址
  16. Gcd HYSBZ - 2818
  17. android edittext底线,android – 更改edittext的底线颜色
  18. 黑盒测试,白盒测试与灰盒测试的比较和区别
  19. vim normal 模式、插入模式、命令行模式
  20. C++ 打怪游戏 原创 小镇4.0--机甲纪元

热门文章

  1. 平台资金提现解决方案之实现微信商家转账到零钱功能
  2. html+css简单仿制淘宝商品界面
  3. Tomcat不能运行tomcat9w.exe的解决方案
  4. 写代码老是需要切换中英文符号怎么办
  5. 开源框架之WEIIT快速开发框架-开篇
  6. 哈奇森效应和反重力研究
  7. 居家办公是好是坏 远程办公的利弊分析 听听他们怎么说
  8. centos7 docker rpm安装
  9. 【第四趴】uni-app页面导航栏配置(掌握页面导航栏背景颜色、文字等效果配置)
  10. python人像_python 使用OpenCV进行简单的人像分割与合成