|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 JAY饭 于 2018-2-28 19:35 编辑
很简陋 ,代码没什么值得学的,写的很乱,我花了时间最多的是布置界面
- import numpy as np
- def juzhen(n):
- nine = [i for i in range(1,n**2)]
- nine.append(' ')
- return nine
- class Nine():
- def __init__(self,nine,num):
- self.nine = nine
- self.num = num
- self.sign = False
- self.start = []
- self.right = []
- self.step = [[0,1],[1,0],[-1,0],[0,-1]]
- def begin(self):
- self.start = [[] for i in range(self.num)]
- self.right = [[] for i in range(self.num)]
- for i in range(self.num**2):
- t = i//self.num
- self.right[t].append(self.nine[i])
-
- np.random.shuffle(self.nine)
- for k in range(self.num**2):
- t = k//self.num
- self.start[t].append(self.nine[k])
- def rightway(self,i,j,x):
- for k in self.step:
- i1 = i+k[0]
- j1 = j+k[1]
- if 0<=i1<self.num and 0<=j1<self.num and self.start[i1][j1] == ' ':
- self.sign = True
- self.start[i1][j1] = x
- self.start[i][j] = ' '
- break
- def move(self):
- while True:
- x = input('Move:')
- while not x.isdigit():
- x = input('Move:')
- x = int(x)
- print()
- if x == 0:
- break
- self.sign = False
- for i in range(self.num):
- for j in range(self.num):
- if self.start[i][j] == x:
- self.rightway(i,j,x)
- break
- if self.sign:
- break
- if self.start == self.right:
- print('Win!')
- break
- if not self.sign:
- print('w')
- print()
- else:
- self.show()
- def show(self):
- print(' ┌'+' ─┬'*(self.num-1)+'─ ┐')
- for i in range(self.num):
- print(' ♈│',end='')
- for j in self.start[i]:
- if len(str(j)) == 1:
- print(j,' │',end='' )
- else:
- print(j,'│',end= '')
- if i < (self.num-1):
- print()
- print(' ├'+' ─┬'*(self.num-1)+'─ ┤')
- else:
- print()
- print(' └'+' ─┴'*(self.num-1)+'─ ┘')
- print()
- def play(n):
- nine = juzhen(n)
- X = Nine(nine,n)
- e = ''
- while True:
- X.begin()
- print('移动:输入对应数字\n'
- '退出:输入0')
- print()
- X.show()
- X.move()
- while e not in ['y','Y','n','N']:
- e = input('是否离开游戏?是:Y或y, 否:N或者n :')
- if e == 'Y' or e =='y':
- break
- else:
- continue
- dict_m = {1:3, 2:4, 3:5}
- print(' 数字-模式\n'
- '简单:1 一般:2 困难:3\n')
- print()
- m = int(input(' 。◕ᴗ◕。 - biu :'))
- print('')
- n = dict_m[m]
- play(n)
复制代码
|
|