python五子棋程序(代码片段)

阿汪先生 阿汪先生     2022-12-05     618

关键词:

Python——五子棋程序练习与理解

(《疯狂Python讲义》练习)


最近入了本《疯狂Python讲义》来复习Python语法和学习数据可视化处理,被圈粉了,猛推!
书上的一个五子棋程序的完善和注解。
因为是书上的框架,不是完全原创,仅供学习参考,侵删。


程序代码
#阿汪先生的博客.ws
import random
import sys
# 定义棋盘的大小
BOARD_SIZE = int(input('请输入棋盘大小:'))
high = []           #保存纵坐标
wide = []           #保存横坐标
num = []            #斜方向上连续棋子个数
num1 = []           #水平方向上连续棋子个数
num2 = []           #竖直方向上连续棋子个数
# 定义一个二维列表来充当棋盘
board = []
def initBoard() :
    # 把每个元素赋为"╋",用于在控制台画出棋盘
    for i in range(BOARD_SIZE) :
        #每行SIZE个
        row = ["╋"] * BOARD_SIZE
        #复制SIZE行
        board.append(row)
# 在控制台输出棋盘的方法
def printBoard() :
    # 打印每个列表元素
    for i in range(BOARD_SIZE) :
        for j in range(BOARD_SIZE) :
            # 打印列表元素后不换行
            print(board[i][j], end="")
        # 每打印完一行列表元素后输出一个换行符
        print()
initBoard()		#棋盘初始化
printBoard()	#打印棋盘
# 随机生成2位数字,并判断是否和手动输入相同(相同的话重新获取)
def randoms():
    w,s = [random.randint(1, BOARD_SIZE) for j in range(1, 3)]
    for i in range(len(wide)) :
       if wide[i] == w and high[i] == s :
          randoms()
       else:
          board[w - 1][s - 1]= "○"
# 判断五位数字是否相连
def sorts(num) :
    #坐标升序排列
   num.sort()
   n = 0
   j = 0
   n = num[0]       #棋子坐标的起始值/边界值/最小值
   for i in num :
      if i == n :
         n = i + 1
         j=j+1      #连续棋子数量
         if j >= 5:
             printBoard()
             print('一方胜出,游戏结束')
             sys.exit()
      else:
         n = i
         n = n + 1
         j = 1
def main():
    while 1>0:
        inputStr = input("请输入您下棋的坐标,应以x,y的格式:\\n")
        if inputStr != None :
             # 将用户输入的字符串以逗号(,)作为分隔符
            x_str, y_str = inputStr.split(sep = ",")
            # 把对应的列表元素赋为"●"。
            board[int(x_str) - 1][int(y_str) - 1] = "●"
            # 保存横坐标x_str和纵坐标y_str
            wide.append(int(x_str))
            high.append(int(y_str))
            # 进行是否成功判断
                #棋子个数大于5个开始判断
            if len(wide) >= 5 :
               for i in range(len(wide)) :
                   #斜方向上为△y/△x=1
                  if (wide[i]+int(y_str))/(high[i]+int(x_str)) == 1 :
                      # 横坐标保存
                     num.append(wide[i])
                     sorts(num)
                   #竖直方向上
                  if wide[i] == int(x_str):
                      #纵坐标保存
                     num1.append(high[i])
                     sorts(num1)
                   #水平方向上
                  if high[i] == int(y_str):
                      #横坐标保存
                     num2.append(wide[i])
                     sorts(num2)
               #清空列表,否则只能判断连续操作上的5枚棋子
               num.clear()
               num1.clear()
               num2.clear()
             #随机函数生成棋子
            randoms()
             #打印棋盘
            printBoard()

main()
程序效果

python打印五子棋棋盘(代码片段)

Python打印五子棋棋盘要求思路代码运行结果要求五子棋是一种由双人对弈的纯策略型棋类游戏,它使用的棋盘一般由横纵等距的各15条平行线构成,这些线垂直交叉形成的225个交叉点为对弈双方的落子点。本实例要求编写... 查看详情

python五子棋获得鼠标左键点的坐标(代码片段)

点坐标的取自:fromtkinterimport*root=Tk()#创建一个框架,在这个框架中响应事件frame=Frame(root,width=200,height=200)defcallBackLeft(event):print("相对于应用程序左上角的位置,左键点击的位置是",event.x,event.y)print("相对于屏幕左上角的位置,左键点... 查看详情

使用pygame实现一个简单的五子棋游戏(代码片段)

前言写程序已经丢掉很长一段时间了,最近觉得完全把技术丢掉可能是个死路,还是应该捡起来,所以打算借CSDN来记录学习过程,由于以前没事的时候断断续续学习过python和用flask框架写过点web,所以第一步想捡起python,但是,... 查看详情

欢乐五子棋辅助(代码片段)

...助才能维持的生活这样子。简述最近玩微信小程序-欢乐五子棋,结果老是被虐,好气啊。偶然想到了前段时间网上很火爆的跳一跳辅助。简单想了一想辅助实现的思路,发现目前所需的工具已经足够。需要的工具主要分为以下... 查看详情

python小游戏五子棋小游戏设计与实现(代码片段)

...个今年(2022)最新完成的毕业设计项目作品python小游戏毕设五子棋小游戏设计与实现(源码)🥇学长根据实现的难度和等级对项目进行评分(最低0分,满分5分)难度系数:3分工作量:3分创新点:4分1游戏介绍基于pyt... 查看详情

实现一个java五子棋(代码片段)

五子棋手把手教你写:写在前面的话:回想起从前初学代码的五子棋简直写的不像样子。今天闲来无事就写了个五子棋的小程序。一来呢回忆一下很久以前写代码时的感觉。二来呢顺便帮下诸位有需求的学生,顺利的Ctrl+C。五子... 查看详情

python实现简易五子棋小游戏(三种方式)(代码片段)

...xt='helloworld!').pack()root.mainloop()弹窗结果:  五子棋小游戏实现(一): fromtkinterimport*importtkinter.messagebox#弹窗库importnumpyasnproot=Tk()#创建窗口root.title("五子棋游戏")#窗口名字w1=Canvas(root,width=... 查看详情

五子棋2pygame代码(代码片段)

看看呐,点一点也好啊🤣#!python3#-*-coding:utf-8-*-importpygameimportgameROWS=17SIDE=30SCREEN_WIDTH=ROWS*SIDESCREEN_HEIGHT=ROWS*SIDEEMPTY=-1BLACK=(0,0,0)WHITE=(255,255,2 查看详情

ai人机对战五子棋游戏python(pygame)+ai并实现软件输出(代码片段)

...是很清楚的可以参考文章点击这里目录1.系统架构分析1.1五子棋的基本棋型1.2功能模块2.具体实现2.1设置基础参数2.2绘制棋盘2.3编写函数intoNextTurn()2.4编写函数getLocate()2.5编写函数getIdex()2.6编写函数isInside()2.7编写函数isEmpty()2.8编写... 查看详情

1000行python代码实现俄罗斯方块/扫雷/五子棋/贪吃蛇(代码片段)

...有又双叒叕来了...一、效果展示1、俄罗斯方块2、扫雷3、五子棋4、贪吃蛇二、代码展示1、俄罗斯方块2、扫雷3、五子棋4、贪吃蛇Python开发小游戏,它有又双叒叕来了…一、效果展示1、俄罗斯方块这个应该是玩起来最最简单... 查看详情

五子棋程序设计实现技术文档(代码片段)

五子棋程序设计实现文档文章目录五子棋程序设计实现文档前言一、运行截图二、基本思路1.实现过程2.落子3.悔棋4.人机对战的实现1.机器人落子逻辑**2.改进胜负判断方法3.计算目标点的权值(白棋ai使用)4.计算目标点的权值(黑棋a... 查看详情

五子棋程序设计实现技术文档(代码片段)

五子棋程序设计实现文档文章目录五子棋程序设计实现文档前言一、运行截图二、基本思路1.实现过程2.落子3.悔棋4.人机对战的实现1.机器人落子逻辑**2.改进胜负判断方法3.计算目标点的权值(白棋ai使用)4.计算目标点的权值(黑棋a... 查看详情

基于easyx的五子棋小游戏。(代码片段)

EasyX下载地址EasyX下载地址//五子棋.cpp:定义控制台应用程序的入口点。//#include"stdafx.h"#include<graphics.h>#include<conio.h>#include<stdio.h>#include<windows.h>#include<time.h>#include< 查看详情

c语言项目:一天时间写出《五子棋项目》,包含源码分享(代码片段)

一天时间开发出老师说需要一星期的C语言游戏:五子棋项目!给大家分享一下~为了进一步了解C语言编程,熟悉优秀的编码风格,提升编码能力,丰富项目经验。所以在编程初期选择了控制台小游戏《单机五... 查看详情

简单五子棋实现(代码片段)

一、定义一个对手Rival类packagecom.itwang.gonbang;publicclassRivalprivateStringcolor;//颜色privateStringnickName;//昵称publicStringgetNickName()returnnickName;publicvoidsetNickName(StringnickName)this.nickName= 查看详情

java项目开发----五子棋(代码片段)

java项目开发(一)----五子棋项目(一)------五子棋开发思路五子棋的要素两个用户黑白棋子棋盘游戏的几个界面---登录、模式选择、胜负弹窗、游戏界面游戏规则游戏窗口的创建创建窗口对象窗口创建思路代码... 查看详情

pygame练习五子棋(代码片段)

1importpygame2frompygame.localsimport*3pygame.init()#导入,初始化4#-------------------------------------一些初始化的东西5ScreenSize=(800,800)6font=pygame.font.SysFont(‘ubuntumono‘,30)#这个字体建议改成自己有的例如下面:7#font=pygame 查看详情

java五子棋(人机版),昨天买的棋子今天就用不上了(代码片段)

Java五子棋,老程序员也花了3天作者简介作者名:编程界明世隐简介:CSDN博客专家,从事软件开发多年,精通Java、JavaScript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广... 查看详情