Advertisement
Guest User

Terminal RPG for Windows

a guest
Sep 25th, 2016
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.66 KB | None | 0 0
  1. import curses, os, random
  2. os.system("@echo off")
  3. os.system("echo PRESS F11 BEFORE PLAYING")
  4. os.system('echo DUNGEON CRAWLER BETA 1.3')
  5. os.system("pause>nul|set/p=PRESS ANY KEY TO PLAY")
  6. os.system("cls")
  7. screen = curses.initscr()
  8. curses.noecho()
  9. curses.start_color()
  10. curses.cbreak()
  11. screen.keypad(1)
  12. curses.init_pair(1, curses.COLOR_RED, curses.COLOR_BLACK)
  13. curses.init_pair(2, curses.COLOR_BLUE, curses.COLOR_BLACK)
  14. map = 'HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\nH                         H                      H\nH                         H                      H\nH                         H                      H\nH                         H                      H\nH                         H                      H\nH                         H                      H\nH                         H                      H\nH                         H                      H\nH                         HHHHHHHHHHHHHH         H\nH                                                H\nH                                                H\nH                                                H\nH                                                H\nH                                                H\nHHHHHHHHHHHHH                                    H\nH                                                H\nH                                                H\nH                                                H\nH                                                H\nH                                                H\nH                                                H\nH                                                H\nH                                                H\nHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH'
  15. screen.addstr(0,0,map,curses.color_pair(1))
  16. screen.addstr(23,48,"C")
  17. class Char:
  18.     def __init__(self):
  19.         pass
  20.     x,y,oldx,oldy=1,1,0,0
  21.     def scoot(self):
  22.         if screen.inch(self.y,self.x) == ord("H"):
  23.             self.y,self.x = self.oldy,self.oldx
  24.         if screen.inch(self.y,self.x) == ord("X"):
  25.             curses.nocbreak(); screen.keypad(0); curses.echo()
  26.             curses.endwin()
  27.             exit()
  28.         if screen.inch(self.y,self.x) == ord("C"):
  29.             screen.keypad(0)
  30.             os.system("cls")
  31.             os.system("echo You win")
  32.             os.system("pause")
  33.             curses.nocbreak(); screen.keypad(0); curses.echo()
  34.             curses.endwin()
  35.             exit()
  36.     def left(self):
  37.         self.oldx,self.oldy = self.x,self.y
  38.         screen.addstr(self.y,self.x,' ')
  39.         self.x -= 1
  40.         self.scoot()
  41.         screen.addstr(self.y,self.x,"@",curses.color_pair(1))
  42.     def right(self):
  43.         self.oldx,self.oldy = self.x,self.y
  44.         screen.addstr(self.y,self.x,' ')
  45.         self.x += 1
  46.         self.scoot()
  47.         screen.addstr(self.y,self.x,"@",curses.color_pair(1))
  48.     def up(self):
  49.         self.oldx,self.oldy = self.x,self.y
  50.         screen.addstr(self.y,self.x,' ')
  51.         self.y -= 1
  52.         self.scoot()
  53.         screen.addstr(self.y,self.x,"@",curses.color_pair(1))
  54.     def down(self):
  55.         self.oldx,self.oldy = self.x,self.y
  56.         screen.addstr(self.y,self.x,' ')
  57.         self.y += 1
  58.         self.scoot()
  59.         screen.addstr(self.y,self.x,"@",curses.color_pair(1))
  60.     def __call__(self):
  61.         self.c = screen.getch()
  62.         if self.c == ord("a"):
  63.             self.left()
  64.         if self.c == ord("d"):
  65.             self.right()
  66.         if self.c == ord("w"):
  67.             self.up()
  68.         if self.c == ord("s"):
  69.             self.down()
  70.         if self.c == ord("q"):
  71.             curses.nocbreak(); X.keypad(0); curses.echo()
  72.             curses.endwin()
  73.             exit()
  74.         self.scoot()
  75.         screen.addstr(self.y,self.x,"@",curses.color_pair(1))
  76. class Enemy:
  77.     y,x,oldx,oldy = 0,0,0,0
  78.     def __init__(self,PLAYER,argy,argx):
  79.         self.y,self.oldy = argy,argy
  80.         self.x,self.oldx = argx,argx
  81.     def scoot(self):
  82.         if screen.inch(self.y,self.x) == ord("H"):
  83.             self.y,self.x = self.oldy,self.oldx
  84.         if screen.inch(self.y+1,self.x+1) == ord("X"):
  85.             self.y,self.x = self.oldy,self.oldx
  86.         if screen.inch(self.playery,self.playerx) == ord("X"):
  87.             curses.nocbreak(); screen.keypad(0); curses.echo()
  88.             curses.endwin()
  89.             exit()
  90.     def move(self):
  91.         self.oldx,self.oldy = self.x,self.y
  92.         screen.addstr(self.y,self.x,' ')
  93.         self.random = random.randint(0,3)
  94.         if self.playerx > self.x and self.random == 0:
  95.             self.x += 1
  96.         if self.playery > self.y and self.random == 1:
  97.             self.y += 1
  98.         if self.playerx < self.x and self.random == 2:
  99.             self.x -= 1
  100.         if self.playery < self.y and self.random == 3:
  101.             self.y -= 1
  102.         self.scoot()
  103.         screen.addstr(self.y,self.x,"X",curses.color_pair(1))
  104.     def __call__(self,PLAYER):
  105.         screen.addstr(self.y,self.x,"X",curses.color_pair(1))
  106.         self.playerx,self.playery = PLAYER.x,PLAYER.y
  107.         self.move()
  108.         self.scoot()
  109. player = Char()
  110. enemy = Enemy(player,10,10)
  111. enemy2 = Enemy(player,10,20)
  112. enemy3 = Enemy(player,16,30)
  113. while True:
  114.     player()
  115.     enemy(player)
  116.     enemy2(player)
  117.     enemy3(player)
  118.     screen.refresh()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement