前言
中国人讲“琴棋书画”,可见下棋这种需要智慧的游戏,在古人日常生活中是极为重要的。
而说到棋,我们所熟知的有围棋、象棋、军旗、跳棋等等,当然,还有五子棋。
今天的重点也就在这五子棋之上🥂,我们来造一个Python版的五子棋解解馋吧!
小科普:
在古代,五子棋棋具虽然与围棋相类同,但是下法却是完全不同的。
五子棋是“棋类游戏,棋具与围棋相同,两人对局,轮流下子,先将五子连成一行者为胜”,有人将
五子棋称为“连五子”、“连珠”的,可能是源于《汉书》中的“日月如合璧,五星如连珠”。
相传,宋代有一个叫赵师秀的人与叫司马光的人相约下五子棋,司马光有急事未能赴约,使赵师秀
坐立不安;由此,赵师秀留下了一首名诗《有约》:
“黄梅时节家家雨,青草池塘处处蛙。有约不来过夜半,闲敲棋子落灯花。”
由此可见,五子棋在我国古代社会中的影响广泛,人们对它也是十分喜好的。
话有点儿多,那我们开始吧——
Show Time
事情是这样子的:
大家好,小编今天水群的时候,刷到个极其离谱的视频🤳
卧槽,这黑棋子咋还裂变上了😲
五子棋还能这么下的吗?
要是我学会了这招
秒个小朋友可大有希望呀!
————————————
视频这一坨裂变的黑棋怼过去
别说五子,十连珠都有了吧
算了,五子棋就五子棋吧
小编先开一把,爽就完事了✊!
1)背景环境
本文是基于Pygame游戏模块写的界面五子棋小游戏。
安装Pygame:
pip install pygame
C:\Users> pip install pygame
Collecting pygame
Downloading https://files.pythonhosted.org/packages/3e/f5/feabd88a2856ec86166a897b62bfad828bfe7a94a27cbd7ebf07fd
70399/pygame-1.9.4-cp37-cp37m-win_amd64.whl (4.2MB)
100% |██████████████████████████| 4.2MB 6.6MB/s
Installing collected packages: pygam
Successfully installed pygame-1.9.4
Successfully即是已经安装成功。
Pygame常用模块:
模块名 功能 pygame.cdrom 访问光驱 pygame.cursors 加载光标 pygame.display 访问显示设备 pygame.draw 绘制形状、线和点 pygame.event 管理事件 pygame.font 使用字体 pygame.image 加载和存储图片 pygame.joystick 使用游戏手柄或者类似的东西 pygame.key 读取键盘按键 pygame.mixer 声音 pygame.mouse 鼠标 pygame.movie 播放视频 pygame.music 播放音频 pygame.overlay 访问高级视频叠加 pygame.rect 管理矩形区域 pygame.scrap 本地剪贴板访问 pygame.sndarray 操作声音数据 pygame.sprite 操作移动图像 pygame.surface 管理图像和屏幕 pygame.surfarray 管理点阵图像数据 pygame.time 管理时间和帧信息 pygame.transform 缩放和移动图像 |
背景素材:(仅图片)
2)代码演示
主程序:
import pygame
from drawing import Display
from status import State
from setup import *
def main():
""" 主程序 """
state = State()
display = Display(state.screen)
display.drawChessBoard()
display.drawRightSide()
while True:
checkEvents(state, display)
state.clock.tick(FPS)
pygame.display.update()
# noinspection PyPep8Naming
def checkEvents(state, display):
""" 检查事件程序 """
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_F1:
state.reStart()
display.drawChessBoard()
display.drawRightSide()
if event.type == pygame.MOUSEBUTTONDOWN:
if event.button == 1 and state.startGame():
human_piece = state.humanPiece()
if human_piece:
display.drawMain(human_piece[0], human_piece[1], human_piece[2], human_piece[3], human_piece[4])
if not human_piece[3]:
return