123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376 |
- def mprint(data,w=4,h=4):
- for i,v in enumerate(data):
- if i % w ==0:
- print()
- print(v,end=",")
- print()
- print("----")
- sleep = 0
- if __name__ == "__main__":
- sleep = 0.01321
- print("y--")
- class DIR():
- def __init__(self,w=4,h=4,w_min=0,h_min=0):
- self.d = 0
- self.w= w
- self.h= h
- self.x_max= w
- self.y_max= h
- self.x_min= w_min
- self.y_min= h_min
- self.x = 0 #//2
- self.y = 0 #//2
- self.i = 0
- self.i_max = self.x_max*self.y_max
- def get(self):
- if self.i >= self.i_max:
- return None # end
- out = self.x,self.y*self.w
- self.i += 1
- return out
- def right_reset(self):
- self.x = self.x_min
- def left_reset(self):
- self.x = self.x_max -1
- def down_reset(self):
- self.y = self.y_min
- def up_reset(self):
- self.y = self.y_max -1
- def right(self):
- if self.x < self.x_max-1:
- self.x+=1
- return 1
- def down(self):
- if self.y < self.y_max-1:
- self.y+=1
- return 1
- def up(self):
- if self.y > self.y_min:
- self.y-=1
- return 1
- def left(self):
- if self.x > self.x_min:
- self.x-=1
- return 1
- def x(self):
- return self.out
-
- data = [ "1A","1B" ,"1C","1D","2A","2B","2C","2D","3A","3B","3B","3D"]
- def right(w,h):
- out = ["----"] *(w*h) #*w*h
- d = DIR(w=w,h=h)
- r = d.get()
- i = 0
- import time
- while type(r) is not type(None):
- x,y = r
- #print("r",r,x,y, d.i)
- #out[x+y] = i
- out[x+y] = "{:-4}".format(i)
- if sleep:
- mprint(out,w,h)
- r=d.right()
- #print(r)
- if not r:
- d.right_reset()
- d.down()
- r = d.get()
- i += 1
- time.sleep(sleep)
- return out
- if __name__ == "__main__":
- w = 40
- h = 30
- #out = right(w,h)
- #mprint(out,w,h)
- def left(w,h):
- #mprint(data,w,h)
- out = ["----"] *(w*h) #a+2
- d = DIR(w=w,h=h)
- #d.up_reset()
- d.left_reset()
- r = d.get()
- i = 0
- import time
- while type(r) is not type(None):
- x,y = r
- #print("r",r,x,y, d.i)
- #out[x+y] = i
- out[x+y] = "{:-4}".format(i)
- #mprint(out,w,h)
- if sleep:
- mprint(out,w,h)
- r=d.left()
- #print(r)
- if not r:
- d.left_reset()
- #d.up()
- d.down()
- r = d.get()
- i += 1
- #time.sleep(.0151)
- time.sleep(sleep)
- return out
- if __name__ == "__main__":
- w = 40
- h = 30
- #out = left(w,h)
- #mprint(out,w,h)
- def up(w,h):
- #mprint(data,w,h)
- out = ["----"] *(w*h) #a+2
- d = DIR(w=w,h=h)
- #d.up_reset()
- d.up_reset()
- r = d.get()
- i = 0
- import time
- while type(r) is not type(None):
- x,y = r
- #print("r",r,x,y, d.i)
- #out[x+y] = i
- out[x+y] = "{:-4}".format(i)
- #mprint(out,w,h
- if sleep:
- mprint(out,w,h)
- r=d.up()
- #print(r)
- if not r:
- d.up_reset()
- #d.up()
- d.right()
- r = d.get()
- i += 1
- #time.sleep(.0151)
- time.sleep(sleep)
- return out
- if __name__ == "__main__":
- w = 40
- h = 30
- #out = up(w,h)
- #mprint(out,w,h)
- def down(w,h):
- #mprint(data,w,h)
- out = ["----"] *(w*h) #a+2
- d = DIR(w=w,h=h)
- #d.up_reset()
- d.down_reset()
- r = d.get()
- i = 0
- import time
- while type(r) is not type(None):
- x,y = r
- #print("r",r,x,y, d.i)
- #out[x+y] = i
- out[x+y] = "{:-4}".format(i)
- #mprint(out,w,h)
- if sleep:
- mprint(out,w,h)
- r=d.down()
- #print(r)
- if not r:
- d.down_reset()
- #d.up()
- d.right() #left()
- r = d.get()
- i += 1
- #time.sleep(.0151)
- time.sleep(sleep)
- return out
- if __name__ == "__main__":
- w = 40
- h = 30
- #out = down(w,h)
- #mprint(out,w,h)
- def spiral(w=10,h=4):
- mprint(data,w,h)
- out = ["----"] *(w*h) #*30 #*w*h+2
- d = DIR(w=w,h=h)
- d.up_reset()
- d.left_reset()
- r = d.get()
- i = 0
- import time
- q = 0
- while type(r) is not type(None):
- x,y = r
- #print("r",r,x,y, d.i)
- out[x+y] = "{:-4}".format(i)
- #mprint(out,w,h)
- if sleep:
- mprint(out,w,h)
- if q == 0:
- m=d.left()
- #print(m)
- if not m:
- q+=1
- d.x_min += 1
- if q == 1:
- m=d.up()
- if not m:
- q+=1
- d.y_min += 1
- if q == 2:
- m=d.right()
- if not m:
- q+=1
- d.y_max -= 1
- if q == 3:
- m=d.down()
- if not m:
- d.left()
- q=0
- d.x_max -= 1
-
- r = d.get()
- i += 1
- #time.sleep(.01)
- return out
- if __name__ == "__main__":
- w = 10
- h = 40
- #out = spiral(w,h)
- #mprint(out,w,h)
- def left_right(w=10,h=4):
- mprint(data,w,h)
- out = ["----"] *(w*h) #*30 #*w*h+2
- d = DIR(w=w,h=h)
- d.down_reset()
- d.left_reset()
- r = d.get()
- i = 0
- import time
- q = 0
- while type(r) is not type(None):
- x,y = r
- #print("r",r,x,y, d.i)
- out[x+y] = "{:-4}".format(i)
- if sleep:
- mprint(out,w,h)
- if q == 0:
- m=d.left()
- #print(m)
- if not m:
- q+=1
- d.down()
- elif q == 1:
- m=d.right()
- if not m:
- q=0
- d.down()
-
- r = d.get()
- i += 1
- time.sleep(sleep)
- return out
- if __name__ == "__main__":
- w = 10
- h = 40
- out = left_right(w,h)
- mprint(out,w,h)
- #def dubble_spiral():
- # pass
- #dubble_spiral()
- def up_down(w=10,h=4):
- mprint(data,w,h)
- out = ["----"] *(w*h) #*30 #*w*h+2
- d = DIR(w=w,h=h)
- d.up_reset()
- d.left_reset()
- r = d.get()
- i = 0
- import time
- q = 0
- while type(r) is not type(None):
- x,y = r
- #print("r",r,x,y, d.i)
- out[x+y] = "{:-4}".format(i)
- if sleep:
- mprint(out,w,h)
- if q == 0:
- m=d.up()
- #print(m)
- if not m:
- q+=1
- d.left()
- elif q == 1:
- m=d.down()
- if not m:
- q=0
- d.left()
-
- r = d.get()
- i += 1
- time.sleep(sleep)
- return out
- if __name__ == "__main__":
- w = 40
- h = 20
- out = up_down(w,h)
- mprint(out,w,h)
|