首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python学习笔记1——三子棋(1)

a为了熟悉Python的语法,我准备用Python写一个三子棋的程序。

首先分析一下三子棋所需的功能:

棋盘的显示

落子程序

胜负判断

计算机落子计算

棋盘我使用二维数组来表示,0代表空,1代表X,-1代表O。

棋盘显示的函数就可以很简单地实现了,代码如下:

1defprintTable(tablelist):

2for xin range(0,3):

3for yin range(0,3):

4if tablelist[x][y]==0:

5print"",

6elif tablelist[x][y]==1:

7print"X",

8elif tablelist[x][y]==-1:

9print"O",

10if y!=2:

11print"",

12if x!=2:

13print"\n-- -- --\n",

在未完成游戏前,需要不断让玩家落子,所以在程序主体部分设置变量来标志游戏进行的状态。

写了很长一段,直接上代码:

1#coding=utf-8

2

3#Initiate the table

4table =[[0, 0, 0], [0, 0, 0], [0, 0, 0]]

5#the state of the game

6state = 1

7#the position

8px =

9py =

10#the state of setting piece

11flag =

12

13defprintTable(tablelist):

14print"\n",

15forxinrange(0, 3):16foryinrange(0, 3):

17iftablelist[x][y]==0:

18print"",19eliftablelist[x][y]==1:

20print"X",21eliftablelist[x][y]==-1:

22print"O",23ify!=2:24print"",25ifx!=2:26print"\n-- -- --\n",27print"\n"

28

29defsetPiece(x, y, tablelist, who):

30ifx>2orx

32ify>2orx

33return-2

34iftablelist[x][y]!=0:35return-1

36else:37ifwho==-1:38tablelist[x][y] = -1

39elifwho==1:

40tablelist[x][y] = 1

41return1

42

43whilestate:44#print the table

45printTable(table)

46#player act

47whileflag!=1:

48px = input("x=")

49py = input("y=")

50flag = setPiece(px-1, py-1, table, 1)

51ifflag==-1:52print"The position has been occupied."

53ifflag==-2:54print"Wrong number!"

55flag =

56#computer act

并没有什么难理解的地方,有些地方我还写了注释,应该是比较好理解的。附上调试效果图:

第一部分就是这样,预计三子棋的程序能写三篇,因为我每天时间比较有限,只能写这么点了,而且最近要期末考试了,挂科的话可就完蛋了。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171228G00JVY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券