• 大小: 7.09MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-11-05
  • 语言: Python
  • 标签: wuziqi  python  pygame  game  

资源简介

用python中pygame模块开发的五子棋小游戏,实现功能:下棋,悔棋,重新开始,退出游戏,判赢,另附背景图片,背景音乐。

资源截图

代码片段和文件信息

import numpy as np
import pygame
import sys
import traceback
import copy
from pygame.locals import *


pygame.init()
pygame.mixer.init()

#颜色
background=(201202187)
checkerboard=(000)
button=(525344)



#音乐
play_chess_sound = pygame.mixer.Sound(“music/play_chess.wav“)
play_chess_sound.set_volume(0.2)
button_sound = pygame.mixer.Sound(“music/button.wav“)
button_sound.set_volume(0.2)
victor_sound = pygame.mixer.Sound(“music/victory.wav“)
victor_sound.set_volume(0.2)

#绘制棋盘
def Draw_a_chessboard(screen):  
    #填充背景色
    screen.fill(background)
    Background=pygame.image.load(“background.jpg“).convert_alpha()
    screen.blit(Background(00))
    #画棋盘
    for i in range(21):
        pygame.draw.line(screen checkerboard (40*i+3 3) (40*i+3 803)) 
        pygame.draw.line(screen checkerboard (3 40*i+3) (803 40*i+3))
    #画边线
    pygame.draw.line(screen checkerboard (3 3) (803 3)5)   
    pygame.draw.line(screen checkerboard (3 3) (3 803)5)   
    pygame.draw.line(screen checkerboard (803 3) (803 803)5)   
    pygame.draw.line(screen checkerboard (3 803) (803 803)5) 
    
    #画定位点
    pygame.draw.circle(screen checkerboard (163 163) 6) 
    pygame.draw.circle(screen checkerboard (163 643) 6) 
    pygame.draw.circle(screen checkerboard (643 163) 6) 
    pygame.draw.circle(screen checkerboard (643 643) 6) 
    pygame.draw.circle(screen checkerboard (403 403) 6) 
    
    #画‘悔棋’‘重新开始’跟‘退出’按钮
    pygame.draw.rect(screenbutton[900350120100]5)
    pygame.draw.rect(screenbutton[900500200100]5)
    pygame.draw.rect(screenbutton[900650200100]5)
    s_font=pygame.font.Font(‘font.ttf‘40)
    text1=s_font.render(“悔棋“Truebutton)
    text2=s_font.render(“重新开始“Truebutton)
    text3=s_font.render(“退出游戏“Truebutton)
    screen.blit(text1(920370))
    screen.blit(text2(920520))
    screen.blit(text3(920670))

#绘制棋子(横坐标,纵坐标,屏幕,棋子颜色(1代表黑,2代表白))
def Draw_a_chessman(xyscreencolor):    
    if color==1:        
        Black_chess=pygame.image.load(“Black_chess.png“).convert_alpha()
        screen.blit(Black_chess(40*x+3-1540*y+3-15))
    if color==2:
        White_chess=pygame.image.load(“White_chess.png“).convert_alpha()
        screen.blit(White_chess(40*x+3-1540*y+3-15))

#绘制带有棋子的棋盘
def Draw_a_chessboard_with_chessman(mapscreen):  
    screen.fill(background)
    Draw_a_chessboard(screen)
    for i in range(24):
        for j in range(24):
            Draw_a_chessman(i+1j+1screenmap[i][j])



#定义存储棋盘的列表
#列表为24列24行是因为判断是否胜利函数里的索引会超出19
#列表大一点不会对游戏有什么影响
map=[]
for i in range(24):
    map.append([000000000000000000000000])

#清零map列表
def clear():
    global map
    for i in range(24):
        for j in range(24):
            map[i][j]=0

#判断是否胜利
def win(i j):
    k = map[i][j]
    p=[]
    for a in range(20):
        p.append(0)
    for i3 in range(i-4i

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-08-11 16:53  Python 五子棋\
     文件      229499  2018-08-11 10:53  Python 五子棋\Background.jpg
     文件     1015586  2018-08-10 17:38  Python 五子棋\Background.png
     文件        5485  2018-08-10 16:31  Python 五子棋\Black_chess.png
     文件     8762068  2017-05-27 09:50  Python 五子棋\font.ttf
     目录           0  2018-08-11 09:05  Python 五子棋\music\
     文件        2104  2018-08-10 10:34  Python 五子棋\music\button.wav
     文件       17074  2018-08-11 09:04  Python 五子棋\music\play_chess.wav
     文件      455196  2018-08-11 08:58  Python 五子棋\music\victory.wav
     文件        1567  2018-08-10 15:23  Python 五子棋\Python 五子棋3.pyproj
     文件       10831  2018-08-11 16:53  Python 五子棋\Python_五子棋3.py
     文件        5206  2018-08-10 16:31  Python 五子棋\White_chess.png

评论

共有 条评论