python如何制作游戏

  介绍

这篇文章给大家分享的是有关python如何制作游戏的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

,, <强> PyGame是一个python的库,能够让你更容易的写出一个游戏。它提供的功能包括图片处理和声音重放的功能,并且它们能很容易的整合进你的游戏里。

<强>下面是五子棋的代码,我的理解都写在注释里了

进口PyGame   #导入pygame模块   打印(pygame.ver)   #检查pygame的版本,检查pygame有没有导入成功      空=0   黑色=1   白色=2   #定义三个常量函数,用来表示白棋,黑棋,以及空      black_color=(0, 0, 0)   #定义黑色(黑棋用,画棋盘)   white_color=(255、255、255)   #定义白色(白棋用)      #定义棋盘这个类   类RenjuBoard(对象):      def __init__(自我):   #自我。_board=董事会=[(空)_ * 15的范围(15)]   #将棋盘每一个交叉点都看作列表的一个元素位,一共有15 * 15共225个元素   自我。_board=[[]] * 15   self.reset ()   #重置棋盘   def重置(自我):   的行范围(len (self._board)):   自我。_board(行)=(空)* 15   #定义棋盘上的下棋函数,行表示行,坳表示列,is_black表示判断当前点位该下黑棋,还是白棋   def移动(自我、行坳,is_black):   如果自我。_board(行)(col)==空:   自我。_board(行)(col)=黑如果其他is_black白   还真   返回假   #给棋盘定义一个函数将自己在屏幕上面画出来,使用pygame.draw()函数。并且顺便将下了的棋子也画出来   def画(自我、屏幕):   对h范围内(16):   pygame.draw。线(屏幕,black_color,   [40,h * 40]、[600 h * 40], 1)   pygame.draw。线(屏幕,black_color,   #给棋盘加一个外框,使美观   pygame.draw。矩形(屏幕,black_color(36岁,36岁,568年,568年),3)   #在棋盘上标出,天元以及另外4个特殊点位   pygame.draw。圆(屏幕,black_color (320、320), 5 0)   pygame.draw。圆(屏幕,black_color (160、160), 3, 0)   pygame.draw。圆(屏幕,black_color (160、480), 3, 0)   pygame.draw。圆(屏幕,black_color (480、160), 3, 0)   pygame.draw。圆(屏幕,black_color (480、480), 3, 0)   #做2次循环取得棋盘上所有交叉点的坐标   的行范围(len (self._board)):   上校的范围(len (self._board(行))):   #将下在棋盘上的棋子画出来   如果自我。_board(行)(col) !=空:   ccolor=black_color \   如果自我。_board(行)(col)==黑white_color   #取得这个交叉点下的棋子的颜色,并将棋子画出来   pos=[40 * 40 * (col + 1),(行+ 1)]   #画出棋子   pygame.draw。圆(屏幕,ccolor, pos, 18岁,0)      #定义函数,传入当前棋盘上的棋子列的表,输出结果,不管黑棋白棋胜,都是传回假,未出结果则为真   def is_win(板):   n的范围(15):   #判断垂直方向胜利   国旗=0   #国旗是一个标签,表示是否有连续以上五个相同颜色的棋子   b在board._board:   如果b [n]==1:   标志+=1   如果标志==5:   打印(& # 39;黑棋胜& # 39;)   返回假   其他:   #其他表示此时没有连续相同的棋子,标签旗帜重置为0   国旗=0      国旗=0   b在board._board:   如果b [n]==2:   标志+=1   如果标志==5:   打印(& # 39;白棋胜& # 39;)   返回假   其他:   国旗=0      #判断水平方向胜利   国旗=0   b在board._board [n]:   如果b==1:   标志+=1   如果标志==5:   打印(& # 39;黑棋胜& # 39;)   返回假   其他:   国旗=0      国旗=0   b在board._board [n]:   如果b==2:   标志+=1   如果标志==5:   打印(& # 39;白棋胜& # 39;)   返回假   其他:   国旗=0      #判断正斜方向胜利      x的范围(25):   国旗=0   对于我,b在列举(board._board):   如果14祝辞=x -我在=0和b (x -我)==1:   标志+=1   如果标志==5:   打印(& # 39;黑棋胜& # 39;)   返回假   其他:   国旗=0      x的范围(25):   国旗=0   对于我,b在列举(board._board):   如果14祝辞=x -我在=0和b (x -我)==2:   标志+=1   如果标志==5:   打印(& # 39;白棋胜& # 39;)   返回假   其他:   国旗=0      #判断反斜方向胜利   x的范围(-11 1):   国旗=0   对于我,b在列举(board._board):   如果0 & lt;=x +我& lt;=14和b (x + i)==1:   标志+=1   如果标志==5:   打印(& # 39;黑棋胜& # 39;)   返回假   其他:   国旗=0      x的范围(-11 1):   国旗=0   对于我,b在列举(board._board):   如果0 & lt;=x +我& lt;=14和b (x + i)==2:   标志+=1   如果标志==5:   打印(& # 39;白棋胜& # 39;)   返回假   其他:   国旗=0      还真         def main ():   #创建棋盘对象   董事会=RenjuBoard ()   #用于判断是下黑棋还是白棋   is_black=True   # pygame初始化函数,固定写法   pygame.init ()   pygame.display.set_caption(& # 39;五子棋& # 39;)#改标题   # pygame.display.set_mode()表示建立个窗口,左上角为坐标原点,往右为x正向,往下为y轴正向   屏幕=pygame.display.set_mode ((640640))   #给窗口填充颜色,颜色用三原色数字列表表示   screen.fill ([125、95、24)   board.draw(屏幕)#给棋盘类发命令,调用画()函数将棋盘画出来   pygame.display.flip() #刷新窗口显示      运行=True   #当主循环的标签,以便跳出循环   在运行:   #遍历建立窗口后发生的所有事件,固定写法   在pygame.event.get事件():   #根据事件的类型,进行判断   如果事件。类型==pygame.QUIT:   运行=False      elif事件。类型==pygame.KEYUP:   通过   # pygame.MOUSEBUTTONDOWN表示鼠标的键被按下   elif事件。==pygame类型。MOUSEBUTTONDOWN和\   事件。按钮==1:#按钮表示鼠标左键   x, y=事件。pos #拿到鼠标当前在窗口上的位置坐标   #将鼠标的(x, y)窗口坐标,转化换为棋盘上的坐标   行=圆((y - 40)/40)   坳=圆((x - 40)/40)   如果董事会。移动(行,坳,is_black):   is_black=不是is_black   屏幕上。填充([125、95、24)   board.draw(屏幕)   pygame.display.flip ()   #调用判断胜负函数   如果不是is_win(板):   #打破   运行=False   #这里我有个虫子没找到解决办法,就是判断出胜负后,使用打破跳出事件遍历的,循环,但是老是不能跳出来,导致胜负分出来了   #还可以继续下,这里我采用判断胜负后就将运行标签赋值为False,跳出主循环,但是这样棋盘的窗口也没了。明天再找找虫子在哪      pygame.quit ()      if __name__==& # 39; __main__ # 39;:   main ()

python如何制作游戏