python基础入门游戏之井字棋

python基础入门游戏之“#”字棋

作者的第一次创作,有不好、不理解的地方尽管提

博主新建的Python学习QQ群分享一些实用的学习工具和疑问解答以及源码分享欢迎加入:431615454
先把源码放这,讲解有时间下期再做

#要用的函数,可以在主程序用到时再看
def panduan1(a,b):
	x=0
	if x==0:
		for i in range(3):
			q=0;p=0
			for j in range(3):
				if a[i][j]==b:
					q+=1
				if q==3:
					return 1
				if a[j][i]==b:
					p+=1
				if p==3:
					return 1
		q=0;w=0
		for i in range(3):
			if a[i][i]==b:
				q+=1
			if a[i][2-i]==b:
				w+=1
			if q==3 or w==3:
				return 1
		return 0
def xiaqi(all,qi,a):
	all[int(qi[1])-1][int(qi[0])-1]=a
def shuru1():
	x=input()
	suoyou='123456789'
	if suoyou.find(x)==-1:
		print('输入不符合要求:')
		return 'no'
	y=0
	sum=''
	for j in range(1,4):
		for z in range(1,4):
			y+=1
			sum=str(z)+','+str(j)
			if y==int(x):
				return(sum.split(','))
				break
def panduan2(all,x):
        hang=int(x[1])
        lie=int(x[0])
        if all[hang-1][lie-1]!='-':
                return 1
        else:
                return 0
def dayin(all):
	for i in range(3):
		print(' '.join(all[i]))
#主程序开始
all=[['-','-','-'],['-','-','-'],['-','-','-']]
t=0;w=0
print('游戏开始!\n黑棋先:')
while t==0 and w==0:
	dayin(all)
	print('轮到黑棋了:')
	hei=shuru1()
	while hei=='no' or panduan2(all,hei)==1:
		dayin(all)
		print('请重新输入:')
		hei=shuru1()
	xiaqi(all,hei,'1')
	t=panduan1(all,'1')
	dayin(all)
	if t==1:
		print('黑棋赢!')
		break
	all1=all[0]+all[1]+all[2]
	if all1.count('-')==0:
		dayin(all)
		print('平局!')
		break
	print('轮到白棋了:')
	bai=shuru1()
	while bai=='no' or panduan2(all,bai)==1:
		dayin(all)
		print('请重新输入:')
		bai=shuru1()
	xiaqi(all,bai,'0')
	w=panduan1(all,'0')
	if w==1:
		print('白棋赢!')
		dayin(all)
	all1=all[0]+all[1]+all[2]
	if all1.count('-')==0:
		dayin(all)
		print('平局!')
		break
print('游戏结束!')

输入格式为数字1-9(对应手机的拨号键位置):在这里插入图片描述
不要忘记收藏关注哦,你的支持是作者最大的动力!

博主新建的Python学习QQ群分享一些实用的学习工具和疑问解答以及源码分享欢迎加入:431615454

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闫海南

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值