Advertisement
Guest User

tactic RPG

a guest
Oct 19th, 2016
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 9.59 KB | None | 0 0
  1.  
  2. board = []
  3. for row_num in range(20):
  4.     row = []
  5.     for col_num in range(17):
  6.         row.append("( )")
  7.     board.append(row)
  8.  
  9. N = 20
  10. for i in range(0,11):
  11.     board[i].insert(15, str(N - i))
  12.     board[i].insert(0, str(N - i))
  13.  
  14. for i in range(11,20):
  15.     board[i].insert(15, str(N - i)+ " ")
  16.     board[i].insert(0, str(N - i) + " ")
  17.  
  18.  
  19.                    
  20. def print_board():
  21.     print("-----A----B----C----D----E----F----G----H----I----J----K----L----M----N----O-----")
  22.     for row in range(20):
  23.         for col in range(17):
  24.             token = board[row][col]
  25.             if not token:
  26.                 token = " "
  27.             print(token,end="  ")
  28.         print()
  29.     print("-----A----B----C----D----E----F----G----H----I----J----K----L----M----N----O-----")
  30.     #           0    1    2    3    4    5    6    7    8    9   10    11  12    13   14
  31.  
  32.  
  33.  
  34.  
  35. alpha_to_index = {'a':1, 'b':2, 'c':3,'d':4, 'e':5,
  36.                   'f':6,'g':7, 'h':8, 'i':9,'j':10,
  37.                   'k':11, 'l':12, 'm':13, 'n':14, 'o':15
  38.                   }
  39.  
  40. numeric_to_index = {'1':19, '2':18, '3':17, '4':16, '5':15,
  41.                  '6':14, '7':13, '8':12, '9':11, '10':10,
  42.                  '11':9, '12':8, '13':7, '14':6, '15':5,
  43.                  '16':4, '17':3, '18':2, '19':1, '20':0
  44.                     }
  45.                    
  46. def char_move(token,old_let, old_num, move_dist):
  47.     print_board()
  48.     testing = True
  49.     while testing:
  50.         imp = input("Enter a Square")
  51.         cols,leng = (imp[-1]),(len(imp)-1)
  52.         rows = (imp[0:leng])
  53.         col, row = alpha_to_index.get(cols), numeric_to_index.get(rows)
  54.         print(old_let,old_num)
  55.         print(col,row)
  56.         num_diff = abs(old_num-row)
  57.         let_diff = abs(old_let-col)
  58.         print("let diff", let_diff)
  59.         if board[row][col] != "( )" or let_diff > move_dist or num_diff > move_dist:
  60.             print("You Cannot Move There")
  61.             continue
  62.         else:
  63.             board[old_num].pop(old_let) and board[old_num].insert(old_let,"( )")
  64.             board[row].pop(col) and board[row].insert(col,token)
  65.             old_let,old_num = col, row
  66.             return old_let,old_num
  67.        
  68.  
  69.  
  70. def sp(row, col ,token,old_let, old_num):
  71.     col, row = alpha_to_index.get(col), numeric_to_index.get(row)
  72.     if board[row][col] == "( )":
  73.             board[old_num].pop(old_let) and board[old_num].insert(old_let,"( )")
  74.             board[row].pop(col) and board[row].insert(col,token)
  75.             old_let,old_num = col, row
  76.             return old_let,old_num
  77.  
  78.  
  79.  
  80. def char_fight():
  81.     print_board()
  82.     imp = input("Enter a Square")
  83.     cols,leng = (imp[-1]),(len(imp)-1)    
  84.     rows = (imp[0:leng])
  85.     col,row = alpha_to_index.get(cols), numeric_to_index.get(rows)
  86.     if board[row][col] == "( )":
  87.         print("You Swing Your Weapon Through The Air")
  88.     else:
  89.         print("Your Attack Hits")
  90.  
  91. def choose_menu():
  92.  
  93.     print("""
  94.    _________________________
  95.    | CHOOSE                |
  96.    |_______________________|
  97.    |  1) Fighter  2)Wizard |
  98.    |  3) Priest   4)Archer |
  99.    |  5) End Turn          |
  100.    |_______________________|
  101.    """
  102.     )      
  103. def fighter_menu():
  104.     print("""
  105.    _______________________
  106.    | FIGHTER ATTACK       |
  107.    |______________________|
  108.    | 1) Fight  3) EndTurn |
  109.    | 2) Move              |
  110.    |______________________|
  111.    """)
  112. def archer_menu():
  113.     print("""
  114.    _______________________
  115.    |  ARCHER ATTACK       |
  116.    |______________________|
  117.    | 1) Fight  3) EndTurn |
  118.    | 2) Move              |
  119.    |______________________|
  120.    """)
  121.  
  122. def wizard_menu():
  123.     print("""
  124.    _______________________
  125.    |  WIZARD ATTACK       |
  126.    |______________________|
  127.    | 1) Fight  3) Move    |
  128.    | 2) Spell  4) Endturn |          
  129.    |______________________|
  130.    """)
  131.  
  132. def priest_menu():
  133.     print("""
  134.    _______________________
  135.    |  PRIEST ATTACK       |
  136.    |______________________|
  137.    | 1) Fight  3) Move    |
  138.    | 2) Spell  4) Endturn |          
  139.    |______________________|
  140.    """)
  141.  
  142. archer,priest,fighter,wizard = ' @➹',' ۩†',' Φ╅',' Ψ!'
  143. skeleton,mutant,comrade = '\☠/','๑☢๑','☭☺☭'
  144. al,pl,fl,wl,sl,ml,cl= 1,2,2,3,14,14,15
  145. an,pn,fn,wn,sn,mn,cn= 19,19,18,19,0,0,1
  146.  
  147. #move distance
  148. ad,pd,fd,wd,sd,md,cd, = 2,2,3,2,2,2,4
  149.  
  150.  
  151. #starting positions
  152. al,an = sp("1","a",archer,al,an)
  153. pl,pn = sp("1","b",priest,pl,pn)
  154. wl,wn = sp("1","c",wizard,wl,wn)
  155. fl,fn = sp("2","b",fighter,fl,fn)
  156. sl,sn = sp("20","o",skeleton,sl,sn)
  157. ml,mn = sp("20","m",mutant,ml,mn)
  158. cl,cn = sp("19","n",comrade,cl,cn)
  159. print_board()
  160.  
  161. playing = True
  162. turn = 0
  163.  
  164. while playing:
  165.     Turn = True
  166.     while Turn:
  167.         turn = turn + 1
  168.         dis_lis = []
  169.         print("Turn", turn)
  170.         choosing = True
  171.         while choosing:
  172.             choose_menu()
  173.             A = input(">")
  174.  
  175.             if A == "1":
  176.                 if "f_e_t" in dis_lis:
  177.                     print("You Cannot Use Your Fighter")
  178.                 elif "f_e_t" not in dis_lis:
  179.                     fighter_turn = True
  180.                     while fighter_turn:
  181.                         print_board()
  182.                         fighter_menu()
  183.                         B = input(">")
  184.                         if B == "1":
  185.                             if "f_f" not in dis_lis:
  186.                                 dis_lis.append("f_f")
  187.                                 char_fight()
  188.                             elif "f_f" in dis_lis:
  189.                                 print("You Cannot Fight")
  190.                         elif B == "2":                      
  191.                             if "f_m" not in dis_lis:
  192.                                 dis_lis.append("f_m")
  193.                                 fl,fn = char_move(fighter,fl,fn,fd)
  194.                             elif "f_m" in dis_lis:
  195.                                 print("You Cannot Move")
  196.                         elif B == "3":
  197.                             dis_lis.append("f_e_t")
  198.                             break
  199.             elif A == "2":
  200.                 if "w_e_t" in dis_lis:
  201.                     print("You Cannot Use Your Wizard")
  202.                 elif "w_e_t" not in dis_lis:
  203.                     wizard_turn = True
  204.                     while wizard_turn:
  205.                         print_board()
  206.                         wizard_menu()
  207.                         B = input(">")
  208.                         if B == "1":
  209.                             if "w_f" not in dis_lis or "w_s" not in dis_lis:
  210.                                 dis_lis.append("w_f") and dis_lis.append("w_s")
  211.                                 char_fight()
  212.                             elif "w_f" in dis_lis or "w_s" in dis_list:
  213.                                 print("You Cannot Fight")
  214.                         elif B == "3":                      
  215.                             if "w_m" not in dis_lis:
  216.                                 dis_lis.append("w_m")
  217.                                 wl,wn = char_move(wizard,wl,wn,wd)
  218.                             elif "w_m" in dis_lis:
  219.                                 print("You Cannot Move")
  220.                         elif B == "4":
  221.                             dis_lis.append("w_e_t")
  222.                             break
  223.             elif A == "3":
  224.                 if "p_e_t" in dis_lis:
  225.                     print("You Cannot Use Your Priest")
  226.                 elif "p_e_t" not in dis_lis:
  227.                     priest_turn = True
  228.                     while priest_turn:
  229.                         print_board()
  230.                         priest_menu()
  231.                         B = input(">")
  232.                         if B == "1":
  233.                             if "p_f" not in dis_lis or "p_s" not in dis_lis:
  234.                                 dis_lis.append("p_f") and dis_lis.append("p_s")
  235.                                 char_fight()
  236.                             elif "p_f" in dis_lis or "p_s" in dis_list:
  237.                                 print("You Cannot Fight")
  238.                         elif B == "3":                      
  239.                             if "p_m" not in dis_lis:
  240.                                 dis_lis.append("p_m")
  241.                                 pl,pn = char_move(priest,pl,pn,pd)
  242.                             elif "p_m" in dis_lis:
  243.                                 print("You Cannot Move")
  244.                         elif B == "4":
  245.                             dis_lis.append("p_e_t")
  246.                             break
  247.             elif A == "4":
  248.                 if "a_e_t" in dis_lis:
  249.                     print("You Cannot Use Your Archer")
  250.                 elif "a_e_t" not in dis_lis:
  251.                     archer_turn = True
  252.                     while archer_turn:
  253.                         print_board()
  254.                         archer_menu()
  255.                         B = input(">")
  256.                         if B == "1":
  257.                             if "a_f" not in dis_lis:
  258.                                 dis_lis.append("a_f")
  259.                                 char_fight()
  260.                             elif "a_f" in dis_lis:
  261.                                 print("You Cannot Fight")
  262.                         elif B == "2":                      
  263.                             if "a_m" not in dis_lis:
  264.                                 dis_lis.append("a_m")
  265.                                 al,an = char_move(archer,al,an,ad)
  266.                             elif "a_m" in dis_lis:
  267.                                 print("You Cannot Move")
  268.                         elif B == "3":
  269.                             dis_lis.append("a_e_t")
  270.                             break
  271.                      
  272.             elif A == "5":
  273.                 choosing = False
  274.                 break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement