sh1t灬 发表于 2018-1-27 19:35:48

.

JAY饭 发表于 2018-1-28 08:18:14

jerryxjr1220 发表于 2018-1-27 17:35
大部分人都不会仔细去看的,觉得好玩直接拿来用用,用完就扔了,对自己的编程水平是没任何提高的。
你 ...

谈不上自己写,还是按你的思路,自己写了一遍,获益匪浅,稍微简化了下布局
import numpy as np
import os
import random
class game2048:
    def __init__(self):
      self.t1 = np.array([*4 for i in range(4)])
      self.list1 = [*4 for i in range(4)]
    def show(self):
      
      for i in range(4):
            for j in range(4):
                if self.t1 == 0:
                  self.list1 = ' '*6
                else:
                  self.list1 = self.t1

      count = 0
      for i in range(21):
            if i%5 == 0:
                print('-'*32)
            elif i%5 == 2:
                for j in range(4):
                  print('| '+str(self.list1)+' '*(6-len(str(self.list1))),end='')
                print('|')
                count += 1
                     
            else:
                print('|','      | '*4)

    def bottom_up(self):
      self.t1 = self.t1.transpose()

    def reverse(self):
      for i in range(4):
            self.t1 = self.t1[::-1]
    def right(self):
      for i in range(4):
            for k in range(4):
                for j in range(3):
                  if self.t1 == self.t1:
                        self.t1 += self.t1
                        self.t1 = 0
                  if self.t1 == 0:
                        self.t1 = self.t1
                        self.t1 = 0
    def left(self):
      self.reverse()
      self.right()
      self.reverse()

    def down(self):
      self.bottom_up()
      self.right()
      self.bottom_up()

    def up(self):
      self.bottom_up()
      self.reverse()
      self.right()
      self.reverse()
      self.bottom_up()

    def creat(self):
      kongbai = []
      for i in range(4):
            for j in range(4):
                if self.t1 ==0:
                  kongbai.append((i,j))
      if len(kongbai):
            (a,b) = random.choice(kongbai)
            self.t1 = random.choice()
      else:
            self.gameover()

    def gameover(self):
      self.show()
      print('你输咯')
      input()

    def win(self):
      self.show()
      print('你赢了,呵呵,呵呵')
      input()

    def check(self):
      for i in range(4):
            for j in range(4):
                if self.t1 ==2048:
                  self.win()

    def move(self):
      print('w 上移,a左移,s下移,d右移,')
      step = input('。◕ᴗ◕。◞✺')
      if step == ('w' or 'W'):
            self.up()
      elif step == ('a' or 'A'):
            self.left()
      elif step == ('s' or 'S'):
            self.down()
      elif step == ('d' or 'D'):
            self.right()
      else:
            print('输入错误')
            move()

if __name__ == '__main__':
    game = game2048()
    game.creat()
    game.creat()
    game.show()
    while True:
      game.move()
      game.check()
      game.creat()
      game.show()
      

薛定谔的翠花 发表于 2018-2-19 17:44:29

Hyperion77 发表于 2018-2-20 19:28:14

学习学学习

九九八十一 发表于 2018-2-22 16:50:00

{:10_279:}

zpw118 发表于 2018-2-22 17:00:52

houchaoyuan123 发表于 2018-3-12 10:53:57

谢谢

阿bang 发表于 2018-3-13 18:42:50

学习!

Chase_Kas 发表于 2018-3-13 19:52:28

思路很重要,看看框架怎么样

Mr.Gu 发表于 2018-3-18 16:09:52

学习下

weiming-xc 发表于 2018-3-23 21:25:08

666

xuanzhen 发表于 2018-3-26 11:18:25

谢谢,学习看看代码~

lvjie 发表于 2018-3-26 19:06:42

看看j

塔利班 发表于 2018-3-26 21:28:56

1

晨鱼one 发表于 2018-4-16 22:10:05

kankan

zrovsion 发表于 2018-4-19 14:43:32

666

mislay~ 发表于 2018-4-21 22:07:44

滋瓷

ABC23 发表于 2018-4-22 01:05:25

回复

晓屁屁 发表于 2018-4-22 09:14:11

想看

c调小白 发表于 2018-4-22 11:14:48

{:10_315:}
页: 1 2 3 4 [5] 6 7 8
查看完整版本: python小练习(024):用python编写小游戏2048