#python #anaconda #jupyter-notebook #visual-code #html #css #javascript #http

제목csv module 관련...2019-07-11 18:53
작성자

listValue = [ 0, 1, 2 ] # 0 is rock, 1 is paper, 2 is scissor

listDescription = [ "rock", "paper", "scissor" ]

# ANSWER : START

import random

import csv


class Player:

    def __init__(self,ID= 'noname'):

        self.id = ID

        self.list = []

    def getId(self):

        return self.id

    def setValue(self, which = random.randrange(0,3)):

        self.list.append(which)

    def getValue(self):

        return self.list[0]

    

class Game:

    

    sequence = 1

    resultHead = [['sequence','player1','player1-turn','player2','player2-turn','winner']]

    

    def __init__(self,player1,player2,gameName):

        self.p1 = player1

        self.p2 = player2

        self.gN = gameName

        

    def runGame(self,value1=random.randrange(0,3),value2=random.randrange(0,3)):

        self.v1 = value1

        self.v2 = value2

        self.Tuple = (self.v1,self.v2)

        return self.Tuple

    

    def decideWinner(self):

        a = self.Tuple

        if a == (0,0) or a==(1,1) or a==(2,2):

            return 0

        elif a == (0,2) or a==(1,0) or a==(2,1):

            return 1

        elif a == (2,0) or a==(0,1)or a==(1,2):

            return 2

        

    def logGame(self):

        a=''

        if self.decideWinner()==0:

            a = 'tie'

        elif self.decideWinner() == 1:

            a = self.p1.getId()

        elif self.decideWinner() == 2:

            a = self.p2.getId()

            

        self.result = []

        self.result.append(Game.sequence)

        self.result.append(self.p1.getId())

        self.result.append(self.v1)

        self.result.append(self.p2.getId())

        self.result.append(self.v2)

        self.result.append(a)

        Game.resultHead.append(self.result)

        Game.sequence += 1

        return True

        

    def closeSession(self):

        with open('Game_Resultes.csv', 'w') as fileWrite:

            myWriter = csv.writer(fileWrite)

            for i in range(len(Game.resultHead)): 

                myWriter.writerow(Game.resultHead[i]) 

        

        


# ANSWER : END


def displayGameResult(player1, givenGamer1, player2, givenGamer2, givenWinner):

    if (givenGamer1 != -1) and (givenGamer2 != -1) and (givenWinner != -1):

        msg = "[" + player1.getId() + ":" + listDescription[givenGamer1] + "] vs [" + player2.getId() + ":" + listDescription[givenGamer2] + "]"

        if winner == 1:

            msg += " -> winner is " + player1.getId()

        elif winner == 2:

            msg += " -> winner is " + player2.getId()

        else:

            msg += " -> tie game" 

        print(msg)

    else:

        print("Game session not ready")


player1 = Player("20190001")

player2 = Player("20190002")


game = Game(player1, player2, "myGame")


gamer1, gamer2 = game.runGame()

winner = game.decideWinner()

game.logGame()

displayGameResult(player1, gamer1, player2, gamer2, winner)


gamer1, gamer2 = game.runGame(listValue[0], listValue[1])

winner = game.decideWinner()

game.logGame()

displayGameResult(player1, gamer1, player2, gamer2, winner)



game.closeSession()







이거 01번꺼 제 코드인데요 아직 예외사항은 처리 안하긴 했지만... 그 마지막에 closefile() 함수에서 엑셀파일 만들어지면 한줄씩 띄어서 쓰여지던데... 그거 붙일 수 있는 방법 없나요ㅜㅜ



댓글