Advertisement
Guest User

connect 4

a guest
Sep 6th, 2013
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.82 KB | None | 0 0
  1. import random
  2.  
  3. game = 0
  4.  
  5. board = [" "] * 43
  6.  
  7. def show():
  8.     #row1 starts at the bottom and works its way up
  9.     print "  1    2    3    4    5    6    7"
  10.     print "----------------------------"
  11.     print "| %s | %s | %s | %s | %s | %s | %s |" % (board[36], board[37], board[38], board[39], board[40], board[41], board[42])
  12.     print "----------------------------"
  13.     print "| %s | %s | %s | %s | %s | %s | %s |" % (board[29], board[30], board[31], board[32], board[33], board[34], board[35])
  14.     print "----------------------------"
  15.     print "| %s | %s | %s | %s | %s | %s | %s |" % (board[22], board[23], board[24], board[25], board[26], board[27], board[28])
  16.     print "----------------------------"
  17.     print "| %s | %s | %s | %s | %s | %s | %s |" % (board[15], board[16], board[17], board[18], board[19], board[20], board[21])
  18.     print "----------------------------"
  19.     print "| %s | %s | %s | %s | %s | %s | %s |" % (board[8], board[9], board[10], board[11], board[12], board[13], board[14])
  20.     print "----------------------------"
  21.     print "| %s | %s | %s | %s | %s | %s | %s |" % (board[1], board[2], board[3], board[4], board[5], board[6], board[7])
  22.     print "----------------------------"
  23.    
  24. def checkLine(char, spot1, spot2, spot3, spot4):
  25.     if board(spot1) == char and board(spot2) == char and board(spot3) == char and board(spot4) == char:
  26.         return True
  27.        
  28. def checkAll(char):
  29.     if checkLine(char, 1, 2, 3, 4):
  30.         return True
  31.     if checkLine(char, 2, 3, 4, 5):
  32.         return True
  33.     if checkLine(char, 3, 4, 5, 6):
  34.         return True
  35.     if checkLine(char, 4, 5, 6, 7):
  36.         return True
  37.     if checkLine(char, 8, 9, 10, 11):
  38.         return True
  39.     if checkLine(char, 9, 10, 11, 12):
  40.         return True
  41.     if checkLine(char, 10, 11, 12, 13):
  42.         return True
  43.     if checkLine(char, 11, 12, 13, 14):
  44.         return True
  45.     if checkLine(char, 15, 16, 17, 18):
  46.         return True
  47.     if checkLine(char, 16, 17, 18, 19):
  48.         return True
  49.     if checkLine(char, 17, 18, 19, 20):
  50.         return True
  51.     if checkLine(char, 18, 19, 20, 21):
  52.         return True
  53.     if checkLine(char, 22, 23, 24, 25):
  54.         return True
  55.     if checkLine(char, 23, 24, 25, 26):
  56.         return True
  57.     if checkLine(char, 24, 25, 26, 27):
  58.         return True
  59.     if checkLine(char, 24, 25, 26, 27):
  60.         return True
  61.     if checkLine(char, 25, 26, 27, 28):
  62.         return True
  63.     if checkLine(char, 29, 30, 31, 32):
  64.         return True
  65.     if checkLine(char, 30, 31, 32, 33):
  66.         return True
  67.     if checkLine(char, 31, 32, 33, 34):
  68.         return True
  69.     if checkLine(char, 32, 33, 34, 35):
  70.         return True
  71.     if checkLine(char, 36, 37, 38, 39):
  72.         return True
  73.     if checkLine(char, 37, 38, 39, 40):
  74.         return True
  75.     if checkLine(char, 38, 39, 40, 41):
  76.         return True
  77.     if checkLine(char, 39, 40, 41, 42):
  78.         return True
  79.     if checkLine(char, 36, 29, 22, 15):
  80.         return True
  81.     if checkLine(char, 29, 22, 15, 8):
  82.         return True
  83.     if checkLine(char, 22, 15, 8, 1):
  84.         return True
  85.     if checkLine(char, 37, 30, 23, 16):
  86.         return True
  87.     if checkLine(char, 30, 23, 16, 9):
  88.         return True
  89.     if checkLine(char, 23, 16, 9, 2):
  90.         return True
  91.     if checkLine(char, 39, 32, 25, 18):
  92.         return True
  93.     if checkLine(char, 32, 25, 18, 11):
  94.         return True
  95.     if checkLine(char, 25, 18, 11, 4):
  96.         return True
  97.     if checkLine(char, 40, 33, 26, 19):
  98.         return True
  99.     if checkLine(char, 33, 26, 19, 12):
  100.         return True
  101.     if checkLine(char, 26, 19, 12, 5):
  102.         return True
  103.     if checkLine(char, 41, 34, 27, 20):
  104.         return True
  105.     if checkLine(char, 34, 27, 20, 13):
  106.         return True
  107.     if checkLine(char, 27, 20, 13, 6):
  108.         return True
  109.     if checkLine(char, 42, 35, 28, 21):
  110.         return True
  111.     if checkLine(char, 35, 28, 21, 14):
  112.         return True
  113.     if checkLine(char, 28, 21, 14, 7):
  114.         return True
  115.     if checkLine(char, 39, 31, 23, 15):
  116.         return True
  117.     if checkLine(char, 40, 32, 24, 16):
  118.         return True
  119.     if checkLine(char, 32, 24, 16, 8):
  120.         return True
  121.     if checkLine(char, 41, 33, 25, 17):
  122.         return True
  123.     if checkLine(char, 33, 25, 17, 9):
  124.         return True
  125.     if checkLine(char, 25, 17, 9, 1):
  126.         return True
  127.     if checkLine(char, 42, 34, 26, 18):
  128.         return True
  129.     if checkLine(char, 34, 26, 18, 10):
  130.         return True
  131.     if checkLine(char, 26, 18, 10, 2):
  132.         return True
  133.     if checkLine(char, 35, 27, 19, 11):
  134.         return True
  135.     if checkLine(char, 27, 19, 11, 3):
  136.         return True
  137.     if checkLine(char, 28, 20, 12, 4):
  138.         return True
  139.     if checkLine(char, 22, 16, 10, 4):
  140.         return True
  141.     if checkLine(char, 29, 23, 17, 11):
  142.         return True
  143.     if checkLine(char, 23, 17, 11, 5):
  144.         return True
  145.     if checkLine(char, 36, 30, 24, 18):
  146.         return True
  147.     if checkLine(char, 30, 24, 18, 12):
  148.         return True
  149.     if checkLine(char, 24, 18, 12, 6):
  150.         return True
  151.     if checkLine(char, 37, 31, 25, 19):
  152.         return True
  153.     if checkLine(char, 31, 25, 19, 13):
  154.         return True
  155.     if checkLine(char, 25, 19, 13, 7):
  156.         return True
  157.     if checkLine(char, 38, 32, 26, 20):
  158.         return True
  159.     if checkLine(char, 32, 26, 20, 14):
  160.         return True
  161.     if checkLine(char, 39, 33, 27, 21):
  162.         return True
  163.        
  164. def full(move):
  165.     while move < 43 and board[move] == "x" or board[move] == "o":
  166.         return move == move + 7
  167.         return True
  168.     else:
  169.         return False
  170.                        
  171. show()
  172.  
  173. while game == 0:
  174.    
  175.     input = raw_input("Select a column to place your chip")
  176.     input = int(input)
  177.     choice = input
  178.    
  179.     if input < 1 or input > 7:
  180.         print "That is an invalid move, try again."
  181.    
  182.     else:
  183.         if full(choice) == False:
  184.             print "That column is full, try again."
  185.             break;
  186.         elif full(choice) == True:
  187.             if board[choice] != "x" or board[choice] != "o":
  188.                 board[choice] = "x"
  189.        
  190.                 if checkAll("x") == True:
  191.                     show()
  192.                     print "You win the game!"
  193.                     game = 1
  194.                     break;
  195.        
  196.                 while True:
  197.                     random.seed()
  198.                     opponent = random.int(1, 8)
  199.                     if full(choice) == False:
  200.                         break;
  201.                     elif full(choice) == True:
  202.                         if board[opponent] != "x" and board[opponent] != "o":
  203.                             board[opponent] = "o"
  204.                
  205.                             if checkAll("o") == True:
  206.                                 show()
  207.                                 print "The computer beat you!"
  208.                                 game = 1
  209.                                 break;
  210.                             break;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement