2015. 2. 8. 20:57
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

#! -*- coding: utf-8 -*-

from random import choice
from time import sleep

class Game:
  def __init__(self):
    self.map=[]
    self.p1=0
    self.p2=0
    self.game=False

  def set_up(self):
    a=0
    self.game=True
    self.map=[[],[],[],[],[],[]]
    while a<len(self.map):
      while len(self.map[a])<6:
        self.map[a].append(' ')
      a+=1
    user=raw_input('What piece do you want to be represented by: R or Y ? ').lower()
    if user=='r':
      self.p1='R'
      self.p2='Y'
    elif user=='y':
      self.p1='Y'
      self.p2='R'
    else:
      self.p1='R'
      self.p2='Y'

  def display(self,n):
    a=str(n).replace("[",'')
    b=a.replace(',','|')
    c=b.replace("'","")
    d=c.replace(']','')
    print('|',d,'|')

  def display2(self):
    print('  0  1 2  3  4  5')
    print('-'*20)
    for i in self.map:
      self.display(i)
      print('-'*20)

  def play1(self):
    self.display2()
    col=0
    try:
      col=eval(raw_input('Pick a column: '))
    except:
      NameError
      TypeError
      ValueError
      SyntaxError
      print('Try Again')
      self.play1()
    if col not in range(0,6):
      print ('Out of range')
      self.play1()
    else:
      if self.game==True:
        self.insert(col,self.p1)

  def check_full(self):
    c=0
    a=0
    r=0
    while a<6:
      while r<6:
        if self.map[a][r] in ['R','Y']:
          c+=1
        r+=1
      r=0
      a+=1
    if c>=36:
      print('FULL')
      self.game=False
      self.set_up()
  def check_map(self,n):
    a=0 #row
    b=0 #space
    c=0 #counting
    while a<6:
      while b<6:
        if self.map[a][b]==n:
          c+=1
        else:
          c=0
        if c>=4:
          self.game=False
        b+=1
      b=0
      a+=1
    a=0 #row
    b=0 #space
    while b<6:
      while a <6:
        if self.map[a][b]==n:
          c+=1
        else:
          c=0
        if c>=4:
          self.game=False
        a+=1
      b+=1
    a=0
    b=0

  def insert(self,n,u):
    a=5
    p=False
    while a!=-1:
      if self.map[a][n] not in ['R','Y']:
        if p==False:
          self.map[a][n]=u
          p=True
      a-=1
    self.check_full()
    if self.game==True:
      self.check_map(u)

  def play1_com(self):
    n=choice([0,1,2,3,4,5])
    print(n)
    sleep(1)
    if self.game==True:
      self.display2()
      self.insert(n,self.p1)

  def play2(self):
    n=choice([0,1,2,3,4,5])
    print(n)
    sleep(1)
    if self.game==True:
      self.display2()
      self.insert(n,self.p2)

  def cycle(self):
    self.set_up()
    mode=input('1.YOU vs COM\n2.COM vs COM: ')
    if mode=='2':
      while self.game==True:
        self.play1_com()
        self.play2()
    else:
      while self.game==True:
        self.play1()
        self.play2()
    print('GAME OVER')


game=Game()
game.cycle()
 




'Python' 카테고리의 다른 글

sinebeep.py  (0) 2015.02.09
rockPaperScissors.py  (0) 2015.02.09
oscylator.py  (0) 2015.02.08
textToImage.py  (0) 2015.02.08
scriptinfo.py / scriptinfoUsage.py  (0) 2015.02.08
Posted by af334