python学习之井字棋游戏

如何用python制作 我们这段代码是Python中的Tkinter模块中的Button组件的代码。Button组件是Tkinter中的一个小部件,用于创建按钮,可以响应用户的单击事件。我们这里定义了9个Button组件,并为每个Button组件设置了一些属性和方法。每个Button组件的代码片段都与之前的Button组件略有不同,因为这段代码是一个完整的Tkinter应用程序,包括了窗口、标签、按钮等小部件。 阅读详情

井字棋,英文名叫Tic-Tac-Toe,是一种在3*3格子上进行的连珠游戏,和五子棋类似,由于棋盘一般不画边框,格线排成井字故得名。游戏需要的工具仅为纸和笔,然后由分别代表O和X的两个游戏者轮流在格子里留下标记(一般来说先手者为X),任意三个标记形成一条直线,则为获胜。~

游戏的难点在于,如何判断连接成了一条线;横、竖、斜三个方向;

游戏的代码:

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
u'''
Created on 2019年4月13日

@author: wuluo
'''
__author__ = 'wuluo'
__version__ = '1.0.0'
__company__ = u'重庆交大'
__updated__ = '2019-04-13'


# 创建井字棋的程序
def initBoard():
      global board  # 调用全局的board
      board = [None] * 3
      print("井字棋:")
      for i in range(len(board)):
            board[i] = ["+ "] * 3


# 打印井字棋的程序
def printBoard():
      global board
      for i in range(len(board)):
            for j in range(len(board[i])):
                  print(board[i][j], end=" ")
            print("")


# 开始下棋的程序
def startGame():
      global board
      player = 0
      while isGameContinue():
            if player <= 8:
                  if player % 2 == 0:
                        # 甲方下棋
                        print("==>黑方下棋")
                        if not playChess("x"):
                              continue
                  else:
                        # 乙方下棋
                        print("==>白方下棋")
                        if not playChess("○"):
                              continue
                  player += 1
            else:
                  print("平局")
                  break

def playChess(chess):
      # 获取位置
      x = int(input("==> X=")) - 1
      y = int(input("==> Y=")) - 1
      if board[x][y] == "+ ":
            board[x][y] = chess
            printBoard()
            return True  # 落子成功
      else:
            print("==> 已有棋子 请重新落子\a")
            printBoard()
            return False  # 落子失败


def isGameContinue():
      for i in range(len(board)):
            for j in range(len(board[i])):
                  if board[i][j] != "+ ":
                        # 横向
                        if j == 0:
                              if board[i][j] == board[i][j + 1] == board[i][j + 2]:
                                    whoWin(i, j)
                                    return False
                        # 竖向
                        if i == 0:
                              if board[i][j] == board[i + 1][j] == board[i + 2][j]:
                                    whoWin(i, j)
                                    return False
                        # 正斜
                        if i == 0 and j == 0:
                              if board[i][j] == board[i + 1][j + 1] == board[i + 2][j + 2]:
                                    whoWin(i, j)
                                    return False
                        # 反斜
                        if i == 2 and j == 0:
                              if board[i][j] == board[i - 1][j + 1] == board[i - 2][j + 2]:
                                    whoWin(i, j)
                                    return False
      return True


def whoWin(i, j):
      if board[i][j] == "x":
            print("黑方胜!")
      else:
            print("白方胜!")
      for i in range(3):
            print("win")


class main():
      board = []
      initBoard()
      printBoard()
      startGame()


if __name__ == "__main__":
      main()

游戏结果:
在这里插入图片描述
在这里插入图片描述
还有一种结果是平局:
在这里插入图片描述

python编写一个游戏游戏界面) 声明step变量为全局变量,这样函数内部就可以修改全局变量step的值x0和y0分别表示落子位置的左上角的x和y坐标。通过 index%3和 index // 3来计算出落子位置在盘上的行列坐标,并将其乘以117(每个格子的大小)来得到实际的像系坐标。x1和y1 则表示落子位置的右下角的x和y坐标,分别是 x0+117 和 y 0+ 117。说明在函数内部会对它进行修改或者读取。定义全局变量,设置一个列表写出所有赢的可能方式。 阅读详情

相关推荐

Python

python游戏

Mr.Sun的博客 3万+

Python开发“迷你”小游戏

通过这个“迷你”小游戏的开发,我们不仅掌握了pygame库的基本使用,还练习了事件处理、绘图逻辑和基本的游戏胜负判定逻辑。代码简单直观,非常适合初学者学习

X2829352498的博客 812

python游戏(人机对战)

游戏简介:在九宫格内进行,如果一方抢先于另一方向(横、竖、斜)连成3子,则获得胜利。游戏中输入方格位置代号的形式如下: 设计前的思路: 游戏中,board盘存储玩家、计算机的落子信息,未落子处未EMPTY。由于人机对战,需要实现计算机智能性,下面是为这个计算机机器人设计的简单策略: 如果有一步可以让计算机机器人在本轮获胜,那就选那一步走。 否则,如果有一步可以让玩家在本轮获胜,那就选那一步...

IT老实人的博客 6785

python实现游戏,简单易学

大家好,今天跟大家分享一个人机对弈小游戏,方便易学,通过使用人工智能启发式搜索策略实现人机对弈,来学习一下吧。

m0_64397715的博客 6367

python——游戏——代码(全)

文章下面有全部代码和如何与上一篇登入界面进行连接。

2301_76794217的博客 7830

--课后程序(Python程序开发案例教程-黑马程序员编著-第7章-课后作业)

是一种在3 * 3格子上进行的连珠游戏,又称游戏游戏有两名玩家,其中一个玩家画圈,另一个玩家画叉,轮流在3 * 3格子上画上自己的符号,最先在横向、纵向、或斜线方向连成一条线的人为胜利方。如图1所示为画圈的一方为胜利者。

芝麻的博客 5529

AI对弈版可输参数

由ai辅助编程完成

weixin_44581236的博客 124

强化学习tic-tac-toe游戏python实现3*3、4*4)

3*3 设计: import numpy as np import pickle BOARD_ROWS = 3 BOARD_COLS = 3 BOARD_SIZE = BOARD_ROWS * BOARD_COLS class State: def __init__(self): # the board is represented by an n * n array, # 1 represents a chessman of the player wh

今天写代码了吗 2271

python 典制作的简单游戏代码

theBoard = {'top-L': ' ', 'top-M': ' ', 'top-R': ' ', 'mid-L': ' ', 'mid-M': ' ', 'mid-R': ' ', 'low-L': ' ', 'low-M': ' ', 'low-R': ' '} def printBoard(board): print(boa...

Morgan Wang 的博客 2448

2024年5月20日最全摸鱼游戏导航,实战讲述Flutter跨平台框架应用

不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~给大家准备的学习资料包括但不限于:Python 环境、pycharm编辑器/永久激活/翻译插件python 零基础视频教程Python 界面开发实战教程Python 爬虫实战教程Python 数据分析实战教程python 游戏开发实战教程Python 电子书100本。

m0_62261166的博客 909

python游戏开发——

可爱聪明善良的你关注有惊喜哦 案例介绍 本案例采用 python 实现了一个简单的游戏。该游戏在控制台界面中进行,有游戏提示。游戏盘为 3 X 3 的九宫格样式,每个格与数键盘上的 1 - 9 数键一一对应,可通过输入数来选择落位置和落子。游戏的规则是两个玩家轮流下,首先实现横线、竖线、斜线连续三个格子一样的获胜。 学习目标 本案例主要是对 python 基础知识的运用,包...

springhammer的博客 1万+

python游戏——

python游戏实战——,pygame实现

KissMoon_的博客 7141

Python 开发游戏——Python游戏

Tic Tac Toe 是玩得最多的游戏之一,也是最好的消磨时间的游戏,您可以在任何地方用笔和纸玩。如果您不知道如何玩这个游戏,请不要担心,让我们先了解一下。

sikh_0529的博客 3238

Python实战:用 Python 制作游戏

制作游戏是一个有趣的编程练习,它结合了基本的游戏规则、用户界面设计和状态管理。这个示例提供了一个简单的游戏框架,可以在此基础上进一步扩展和改进,添加更多功能和改进用户体验。游戏学习 Python 编程的好方法,它涵盖了很多编程概念,包括条件语句、循环、函数和数据结构。希望本文能够帮助你开始制作自己的游戏

涛哥聊Python 1471

Python实现游戏

(人与AI对战)死都下不赢AI,只能打个平手...

Zhangguohao666的博客 1万+

使用 Tkinter 在 Python 中构建游戏

做你还记得小时候玩游戏吗?这是一个简单的游戏,只需一支笔或铅笔就可以在一张纸上玩。但是你知道你也可以使用Python的Tkinter库创建一个游戏吗?在本文中,我们将介绍使用 Tkinter 创建游戏的过程。在本文结束时,您将对如何使用 GUI 框架创建简单游戏有一个基本的了解,并且您将与您的朋友和家人一起玩一个有趣的游戏

gongdiwudu的专栏 3621

python游戏开发(人人对战,人机对战,包含源码,逻辑思维流程图)

需求分析 是比较便捷休闲娱乐的一种迷你,玩法比较简单,只需要一个九宫格盘就可以实现两人对战,规则为谁先连成三个子的一条线即可获胜。本游戏,需要满足两个主要功能:1.能实现玩家对战;2.能实现玩家和电脑对战。而玩家和电脑对战又需要有两个模式:1.对战高级电脑;2.对战低级电脑。设定高级电脑模式不会输给玩家(玩家只会输给电脑,或者和电脑平局),低级电脑模式电脑随机落子。游戏的主界面用于根据用户选择,而决定游戏进入什么模式,如果玩家不想玩了,即可通过主界面退出游戏。程序需要即时对每一次对战的每一步做出

qq_47120989的博客 6846

Python游戏Python实现游戏

TicTacToe的构造函数__init__()初始化盘board和当前玩家current_player。

qq_39451322的博客 1758
上一篇: Android开发之各种好看的背景颜色
下一篇: Linux学习之ROS的uvc camera(笔记本的摄像头)
无落
博客等级 码龄8年 290粉丝 92原创
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值