Exemple #1
0
    def test_complex_nested_blocks(self):
        b = self._build_Model([("if a", FragmentType.IfStatement),
                               ("a body", FragmentType.Body),
                               ("elif b", FragmentType.ElIfStatement),
                               ("b body", FragmentType.Body),
                               ("if aa", FragmentType.IfStatement),
                               ("if aaa", FragmentType.IfStatement),
                               ("aaa body", FragmentType.Body),
                               ("endif aaa", FragmentType.EndIfStatement),
                               ("else", FragmentType.ElseStatement),
                               ("else aa body", FragmentType.Body),
                               ("endif aa", FragmentType.EndIfStatement),
                               ("b body2", FragmentType.Body),
                               ("endif b", FragmentType.EndIfStatement)])

        self._check_Model(b, [
            Block([
                Branch(Fragment(FragmentType.IfStatement, "if a"), ["a body"]),
                Branch(Fragment(FragmentType.ElIfStatement, "elif b"), [
                    "b body",
                    Block([
                        Branch(Fragment(FragmentType.IfStatement, "if aa"), [
                            Block([
                                Branch(
                                    Fragment(FragmentType.IfStatement,
                                             "if aaa"), ["aaa body"])
                            ], "endif aaa"),
                        ]),
                        Branch(Fragment(FragmentType.ElseStatement, "else"),
                               ["else aa body"])
                    ], "endif aa"), "b body2"
                ])
            ], "endif b")
        ])
Exemple #2
0
    def test_nested_single_if_block(self):
        b = self._build_Model([("#if a", FragmentType.IfStatement),
                               ("#if b", FragmentType.IfStatement),
                               ("b body", FragmentType.Body),
                               ("#endif", FragmentType.EndIfStatement),
                               ("#endif", FragmentType.EndIfStatement)])

        self._check_Model(b, [
            Block([
                Branch(Fragment(FragmentType.IfStatement, "#if a"), [
                    Block([
                        Branch(Fragment(FragmentType.IfStatement, "#if b"),
                               ["b body"])
                    ], "#endif")
                ])
            ], "#endif")
        ])
Exemple #3
0
    def test_single_empty_if_block(self):
        b = self._build_Model([("#if a", FragmentType.IfStatement),
                               ("#endif", FragmentType.EndIfStatement)])

        self._check_Model(b, [
            Block([Branch(Fragment(FragmentType.IfStatement, "#if a"), [])],
                  "#endif")
        ])
Exemple #4
0
 def __init__(self, id, lastblockAddress, genre, size):
     self.id = id
     self.blockChain = BlockChain(lastblockAddress)
     self.previous_hash = ""
     self.genre = genre
     self.size = ""
     self.newsfiles = []
     self.peerIp = []
     self.clientIp = []
     self.unverifiednews = []
     self.vote = {}
     self.creatorList = {}
     self.castvote = {}
     self.BlockStatus = True
     self.lastblockAddress = lastblockAddress
     #download last block in blockchain
     self.userContent = self.blockChain.getUserContent()
     self.previousHash = self.blockChain.getBlockHash()
     self.block = Block(id, self.previousHash, self.lastblockAddress, genre,
                        size, self.userContent)
Exemple #5
0
 def handle_get_blocks_status(self, request_data):
     response = {"profiles": []}
     try:
         profile = Profile.get(Profile.id == request_data["profileid"])
         blocks = Block.select().where((Block.from_profile == profile))
         for block in blocks:
             status_data = self.get_gp_status(block.to_profile.id)
             status_data['profileid'] = block.to_profile.id
             response["profiles"].append(status_data)
     except (Block.DoesNotExist, Profile.DoesNotExist) as e:
         pass
     return response
Exemple #6
0
def _build_block(it, if_f):
    start_cond = if_f
    start_body = list(_build(it))
    f = it.current
    next_branches = []
    while f is not None and f.type != FragmentType.EndIfStatement:
        if f.type == FragmentType.Body:
            raise SyntaxException()
        cond = f
        body = list(_build(it))
        f = it.current
        next_branches.append(Branch(cond, body))
    if f is None or f.type != FragmentType.EndIfStatement:
        raise SyntaxException()
    return Block([Branch(start_cond, start_body)] + next_branches, f.text)
Exemple #7
0
    def test_single_if_else_block(self):
        b = self._build_Model([("#if a", FragmentType.IfStatement),
                               ("a body", FragmentType.Body),
                               ("#else", FragmentType.ElseStatement),
                               ("else body", FragmentType.Body),
                               ("#endif", FragmentType.EndIfStatement)])

        self._check_Model(b, [
            Block([
                Branch(Fragment(FragmentType.IfStatement, "#if a"),
                       ["a body"]),
                Branch(Fragment(FragmentType.ElseStatement, "#else"),
                       ["else body"])
            ], "#endif")
        ])
Exemple #8
0
    def __init__(self):
        '''
        Constructor
        '''
        self.__block_count = 100

        self.__hot_space_count = 10

        self.__blocks = []  #Blocks
        self.__LFiles = []  #Local Files
        self.__TFiles = []  #Transparent Filess

        #init blocks
        for i in range(100):
            self.__blocks.append(Block())
Exemple #9
0
    def test_single_if_block_with_context(self):
        b = self._build_Model([
            ("before", FragmentType.Body),
            ("#if a", FragmentType.IfStatement),
            ("a body", FragmentType.Body),
            ("#endif", FragmentType.EndIfStatement),
            ("after", FragmentType.Body),
        ])

        self._check_Model(b, [
            "before",
            Block([
                Branch(Fragment(FragmentType.IfStatement, "#if a"), ["a body"])
            ], "#endif"), "after"
        ])
Exemple #10
0
    def handle_blocks_search(self, request_data):
        response = {"profiles": [], "success": False}
        profile_data = request_data["profile"]
        if "id" not in profile_data:
            return False

        profile = Profile.get(Profile.id == profile_data["id"])

        buddies = Block.select().where((Block.from_profile == profile))
        try:
            for buddy in buddies:
                model = model_to_dict(buddy)
                to_profile = model['to_profile']
                del to_profile['user']['password']
                response["profiles"].append(to_profile)
                response["success"] = True
        except (Buddy.DoesNotExist, Profile.DoesNotExist) as e:
            pass
        return response
Exemple #11
0
 def handle_del_block_buddy(self, request_data):
     response = {"success": False}
     try:
         to_profile_model = Profile.get(
             (Profile.id == request_data["to_profileid"]))
         from_profile_model = Profile.get(
             (Profile.id == request_data["from_profileid"]))
         count = Block.delete().where(
             (Block.from_profile == from_profile_model)
             & (Block.to_profile == to_profile_model)).execute()
         if count > 0:
             publish_data = "\\type\\del_block_buddy\\from_profileid\\{}\\to_profileid\\{}\\".format(
                 from_profile_model.id, to_profile_model.id)
             self.redis_presence_ctx.publish(self.redis_presence_channel,
                                             publish_data)
         response["success"] = True
     except Profile.DoesNotExist:
         pass
     return response
Exemple #12
0
def _process_block(b, res, keys):
    branches = b.branches
    count = len(branches)
    last_cond = True
    for i in range(0, count):
        branch = branches[i]
        cond = _patch_cond(branch.condition, keys, last_cond)
        if type(cond) is bool:
            if i == 0:
                if cond:
                    _process_body(branch.body, res, keys)
                else:
                    res.code_lines += LineCounter.count_body(branch.body)
                if count > 1:
                    next_f = branches[i + 1].condition
                    next_cond = _patch_cond(next_f, keys, cond)
                    next_f.type = FragmentType.IfStatement
                    ConditionAccessor.set_condition(next_f, next_cond)
                    _process_block(Block(branches[i + 1:], b.end), res, keys)
                    return
            else:
                if cond:
                    res.code_lines += sum([
                        LineCounter.count_body(b.body)
                        for b in branches[i + 1:]
                    ])
                    if branch.condition.type == FragmentType.ElseStatement:
                        res.text += "#endif\n"
                        _process_body(branch.body, res, keys)
                        return
                    res.text += "#else\n"
                    _process_body(branch.body, res, keys)
                    break
                else:
                    res.code_lines = LineCounter.count_body(branch.body)

        else:
            res.text += branch.condition.text
            _process_body(branch.body, res, keys)
        last_cond = cond
    if type(last_cond) is not bool or count > 1:
        res.text += b.end
Exemple #13
0
    def handle_block_buddy(self, request_data):
        response = {"success": False}
        try:
            to_profile_model = Profile.get(
                (Profile.id == request_data["to_profileid"]))
            from_profile_model = Profile.get(
                (Profile.id == request_data["from_profileid"]))

            success = Block.insert(
                to_profile=to_profile_model,
                from_profile=from_profile_model).execute() != 0
            if success:
                publish_data = "\\type\\block_buddy\\from_profileid\\{}\\to_profileid\\{}\\".format(
                    from_profile_model.id, to_profile_model.id)
                self.redis_presence_ctx.publish(self.redis_presence_channel,
                                                publish_data)
            response["success"] = True
        except Profile.DoesNotExist:
            pass
        return response
Exemple #14
0
    def parseToCFG(self, inputJson):
        cfg = CFG()
        for block_ in inputJson:
            block = Block(block_['blockId'])
            for parent in block_['parentBlock']:
                block.addParent(parent)
            # parse every node individually
            for node_ in block_['blocks']:
                if self.sandbox:
                    node_['file'] = "**SandBoxed**"
                node = self.parseOp(node_)
                if node != None:
                    block.addNode(node)
                    if isinstance(node, ParamNode):
                        cfg.addArgument(node.output)
                else:
                    print "New unseen node: %s" % node_
            cfg.addBlock(block)

        return cfg
Exemple #15
0
def createNextBlock(preBlock, data):
    return Block(preBlock.index + 1, datetime.now(), data, preBlock.hash)
Exemple #16
0
    def CreateBlockForPublishing(self):
        #Write code for creating a block
        if not self.BlockStatus:
            return
        self.block = Block(self.id, self.previous_hash, self.lastblockAddress,
                           self.genre, self.size, self.userContent)
        newsFileHash = []
        fileToHash = {}
        self.creatorList = {
            self.newsfiles[0]: "QmegEEH5FivGUEUpYMT1kwUqvgGa8dh1ML5NfrtuCbV9QG"
        }

        for news in self.newsfiles:
            print(self.creatorList[news])
            newsHash = Ipfs.sendFile(news)
            newsFileHash.append(newsHash)
            creatorId = self.creatorList[news]
            fileToHash[news] = newsHash

        self.block.addNews(newsFileHash)
        self.block.createNewsMerkleTree(newsFileHash)

        #update ContentCreator Rating
        UserId = []
        UserFileHash = []
        for content, creator in self.creatorList.items():
            body = self.block.getBody()
            data = {}
            if creator in body["UserContent"].keys():
                userFileHash = body["UserContent"][creator]
                # userFileHash=self.block["Body"]["UserContent"][creator]
                res = Ipfs.DownloadFile(userFileHash, "user.json")
                if res == 1:
                    f = open("/home/gaurav/NAV-Chain/Miner/userFile.json", "r")
                    data = json.load(f)
                    f.close()
                else:
                    data = {
                        "UserId": creator,
                        "VotingRating": 0,
                        "ContentRating": 0,
                        "ContentList": [content],
                        "MiningRating": 0,
                        "UpiId": "",
                        "BlockList": [],
                        "NavBirth": ""
                    }
            else:
                data = {
                    "UserId": creator,
                    "VotingRating": 0,
                    "ContentRating": 0,
                    "ContentList": [content],
                    "MiningRating": 0,
                    "UpiId": "",
                    "BlockList": [],
                    "NavBirth": ""
                }
            user = User(data["UserId"], data["VotingRating"],
                        data["ContentRating"], data["ContentList"],
                        data["MiningRating"], data["UpiId"], data["BlockList"],
                        data["NavBirth"])
            #Calculate contentRating
            contentRating = self.block.calculateContentRating(creator)
            user.updateContentRating(contentRating)
            user.updateContentList(fileToHash[content])
            userFile = json.dumps(user.getUser(), indent=4)
            f = open("/home/gaurav/NAV-Chain/Miner/userFile.json", "w")
            f.write(userFile)
            f.close()
            UserId.append(creator)
            UserFileHash.append(
                Ipfs.sendFile("/home/gaurav/NAV-Chain/Miner/userFile.json"))

        #Update block list
        lastMiner = self.blockChain.getLastMiner()
        if lastMiner in body["UserContent"].keys():
            lastMinerFileHash = body["UserContent"][lastMiner]
            res = Ipfs.DownloadFile(lastMinerFileHash, "LastMiner.json")
            if res == 1:
                f = open("LastMiner.json", "r")
                data = json.load(f)
                f.close()
            else:
                data = {
                    "UserId": lastMiner,
                    "VotingRating": 0,
                    "ContentRating": 0,
                    "ContentList": [content],
                    "MiningRating": 0,
                    "UpiId": "",
                    "BlockList": [],
                    "NavBirth": ""
                }
            user = User(data["UserId"], data["VotingRating"],
                        data["ContentRating"], data["ContentList"],
                        data["MiningRating"], data["UpiId"], data["BlockList"],
                        data["NavBirth"])
            user.updateBlockList(self.lastblockAddress)
            userFile = json.dumps(user.getUser(), indent=4)
            f = open("user.json", "w")
            f.write(userFile)
            f.close()
            UserId.append(creator)
            UserFileHash.append(Ipfs.sendFile("user.json"))

        # minerFileHash=self.block["Body"]["UserContent"][self.id]
        miningRating = 0
        if self.id in body["UserContent"].keys():
            minerFileHash = body["UserContent"][self.id]
            miningRating = self.block.calculateMinerRating()
            res = Ipfs.DownloadFile(minerFileHash, "miner.json")
            if res == 1:
                f = open("miner.json", "r")
                data = json.load(f)
                f.close()
            else:
                data = {
                    "UserId": self.id,
                    "VotingRating": 0,
                    "ContentRating": 0,
                    "ContentList": [],
                    "MiningRating": 0,
                    "UpiId": "",
                    "BlockList": [],
                    "NavBirth": ""
                }
        else:
            data = {
                "UserId": self.id,
                "VotingRating": 0,
                "ContentRating": 0,
                "ContentList": [],
                "MiningRating": 0,
                "UpiId": "",
                "BlockList": [],
                "NavBirth": ""
            }
        user = User(data["UserId"], data["VotingRating"],
                    data["ContentRating"], data["ContentList"],
                    data["MiningRating"], data["UpiId"], data["BlockList"],
                    data["NavBirth"])
        user.updateMiningRating(miningRating)
        userFile = json.dumps(user.getUser(), indent=4)
        f = open("userFile.json", "w")
        f.write(userFile)
        f.close()
        UserId.append(creator)
        UserFileHash.append(Ipfs.sendFile("user.json"))

        self.block.updateUsers(UserId, UserFileHash)
Exemple #17
0
class Miner:
    def __init__(self, id, lastblockAddress, genre, size):
        self.id = id
        self.blockChain = BlockChain(lastblockAddress)
        self.previous_hash = ""
        self.genre = genre
        self.size = ""
        self.newsfiles = []
        self.peerIp = []
        self.clientIp = []
        self.unverifiednews = []
        self.vote = {}
        self.creatorList = {}
        self.castvote = {}
        self.BlockStatus = True
        self.lastblockAddress = lastblockAddress
        #download last block in blockchain
        self.userContent = self.blockChain.getUserContent()
        self.previousHash = self.blockChain.getBlockHash()
        self.block = Block(id, self.previousHash, self.lastblockAddress, genre,
                           size, self.userContent)

    def ReceiveContent(self, miner_id, id, text, genre):
        #Code for recieving file from content creator
        # if not os.path.exists("NAV/NewsContent"):
        # 	os.mkdir("NAV/NewsContent")
        temp = {"miner_id": miner_id, "id": id, "text": text, "genre": genre}
        self.unverifiednews.append({
            "miner_id": miner_id,
            "id": id,
            "text": text,
            "genre": genre
        })
        for x in self.peerIp:
            if (id == self.id):
                #should be done in async fashion
                requests.post("{}:80005/getNewsfromPeer".format(x), data=temp)
        #Get file from creators and store in this directory
        # self.creatorList[fileName]=creatorId
        return ""

    def ShowContent(self):
        return ""
        # if os.path.exists("NAV/NewsContent")
        # 	return os.listdir("NAV/NewsContent")

    def SelectNews(self, fileName):
        #Write code for selecting  news
        if fileName not in self.newsfiles:
            self.newsfiles.append(fileName)

    def DeSelectNews(self, fileName):
        if fileName in self.newsfiles:
            self.newsfiles.remove(fileName)

    def sendBlockForVoting(self):
        block = {"Miner": self.id, "Files": self.newsfiles}
        jsonBlockData = json.dumps(block)
        #Send this json file to all miners

    def recieveBlockForVoting(self):
        if not os.path.exists("NAV/NewsVotingContent"):
            os.mkdir("NAV/NewsVotingContent")
        #Store file in this directory in json format
        pass

    def doVoting(self):
        fileArray = os.listdir("NAV/NewsVotingContent")
        for file in fileArray:
            f = open(file, "r")
            data = json.load(f)
            miner = data["Miner"]
            newsfiles = data["Files"]
            self.block.updateVote(miner, newsfiles)
        self.block.calculateVotingScore()

    def requestConsensus(self):
        #Generate a random number between 1 and 100000
        minerFileHash = self.block["Body"]["UserContent"][self.id]
        minerRating = self.blockChain.getMiningRating(minerFileHash)
        age == self.blockChain.getMinerAge(minerFileHash)
        randomNumber = random.randrange(100000)
        data = {
            "Miner": self.id,
            "MinerRating": minerRating,
            "BlockScore": self.block["Header"]["BlockScore"],
            "Age": age,
            "RandomNumber": randomNumber
        }
        #Send this data to all random number
    def RecieveConsensus(self):
        #Recieve json file and store it in a directory ConsensunDirectory
        directory = "NAV/ConsensusDirectory"
        if not os.path.exists(directory):
            os.mkdir(directory)
        pass

    def consensusAlgorithm(self):
        #recieve the data and store in a directory in json form
        directory = "NAV/ConsensusDirectory"
        fileArray = os.listdir(directory)
        totalRequest = 0
        scorelist = []
        randomNumber = []
        for file in fileArray:
            totalRequest = totalRequest + 1
            f = open(file, "r")
            data = json.load(f)
            miner = data["Miner"]
            score = data["MinerRating"] * (1 -
                                           math.pow(math.e, -1 * data["Age"]))
            minerList.append[miner]
            scorelist.append[score]
            randomNumber.append[data["RandomNumber"]]
        mean = randomNumber.mean()
        minerList = [x for _, x in sorted(zip(scoreList, minerList))]
        randomNumber = [x for _, x in sorted(zip(scoreList, randomNumber))]
        score.sort()
        start = int(totalRequest * 0.75)
        end = totalRequest
        minDifference = float('inf')
        for i in range(start, end):
            diff = math.abs(randomNumber[i] - mean)
            if (diff < minDifference):
                finalMiner = minerList[i]
        if finalMiner.equals(self.id):
            self.BlockStatus = True
        else:
            self.BlockStatus = False

    def CreateBlockForPublishing(self):
        #Write code for creating a block
        if not self.BlockStatus:
            return
        self.block = Block(self.id, self.previous_hash, self.lastblockAddress,
                           self.genre, self.size, self.userContent)
        newsFileHash = []
        fileToHash = {}
        self.creatorList = {
            self.newsfiles[0]: "QmegEEH5FivGUEUpYMT1kwUqvgGa8dh1ML5NfrtuCbV9QG"
        }

        for news in self.newsfiles:
            print(self.creatorList[news])
            newsHash = Ipfs.sendFile(news)
            newsFileHash.append(newsHash)
            creatorId = self.creatorList[news]
            fileToHash[news] = newsHash

        self.block.addNews(newsFileHash)
        self.block.createNewsMerkleTree(newsFileHash)

        #update ContentCreator Rating
        UserId = []
        UserFileHash = []
        for content, creator in self.creatorList.items():
            body = self.block.getBody()
            data = {}
            if creator in body["UserContent"].keys():
                userFileHash = body["UserContent"][creator]
                # userFileHash=self.block["Body"]["UserContent"][creator]
                res = Ipfs.DownloadFile(userFileHash, "user.json")
                if res == 1:
                    f = open("/home/gaurav/NAV-Chain/Miner/userFile.json", "r")
                    data = json.load(f)
                    f.close()
                else:
                    data = {
                        "UserId": creator,
                        "VotingRating": 0,
                        "ContentRating": 0,
                        "ContentList": [content],
                        "MiningRating": 0,
                        "UpiId": "",
                        "BlockList": [],
                        "NavBirth": ""
                    }
            else:
                data = {
                    "UserId": creator,
                    "VotingRating": 0,
                    "ContentRating": 0,
                    "ContentList": [content],
                    "MiningRating": 0,
                    "UpiId": "",
                    "BlockList": [],
                    "NavBirth": ""
                }
            user = User(data["UserId"], data["VotingRating"],
                        data["ContentRating"], data["ContentList"],
                        data["MiningRating"], data["UpiId"], data["BlockList"],
                        data["NavBirth"])
            #Calculate contentRating
            contentRating = self.block.calculateContentRating(creator)
            user.updateContentRating(contentRating)
            user.updateContentList(fileToHash[content])
            userFile = json.dumps(user.getUser(), indent=4)
            f = open("/home/gaurav/NAV-Chain/Miner/userFile.json", "w")
            f.write(userFile)
            f.close()
            UserId.append(creator)
            UserFileHash.append(
                Ipfs.sendFile("/home/gaurav/NAV-Chain/Miner/userFile.json"))

        #Update block list
        lastMiner = self.blockChain.getLastMiner()
        if lastMiner in body["UserContent"].keys():
            lastMinerFileHash = body["UserContent"][lastMiner]
            res = Ipfs.DownloadFile(lastMinerFileHash, "LastMiner.json")
            if res == 1:
                f = open("LastMiner.json", "r")
                data = json.load(f)
                f.close()
            else:
                data = {
                    "UserId": lastMiner,
                    "VotingRating": 0,
                    "ContentRating": 0,
                    "ContentList": [content],
                    "MiningRating": 0,
                    "UpiId": "",
                    "BlockList": [],
                    "NavBirth": ""
                }
            user = User(data["UserId"], data["VotingRating"],
                        data["ContentRating"], data["ContentList"],
                        data["MiningRating"], data["UpiId"], data["BlockList"],
                        data["NavBirth"])
            user.updateBlockList(self.lastblockAddress)
            userFile = json.dumps(user.getUser(), indent=4)
            f = open("user.json", "w")
            f.write(userFile)
            f.close()
            UserId.append(creator)
            UserFileHash.append(Ipfs.sendFile("user.json"))

        # minerFileHash=self.block["Body"]["UserContent"][self.id]
        miningRating = 0
        if self.id in body["UserContent"].keys():
            minerFileHash = body["UserContent"][self.id]
            miningRating = self.block.calculateMinerRating()
            res = Ipfs.DownloadFile(minerFileHash, "miner.json")
            if res == 1:
                f = open("miner.json", "r")
                data = json.load(f)
                f.close()
            else:
                data = {
                    "UserId": self.id,
                    "VotingRating": 0,
                    "ContentRating": 0,
                    "ContentList": [],
                    "MiningRating": 0,
                    "UpiId": "",
                    "BlockList": [],
                    "NavBirth": ""
                }
        else:
            data = {
                "UserId": self.id,
                "VotingRating": 0,
                "ContentRating": 0,
                "ContentList": [],
                "MiningRating": 0,
                "UpiId": "",
                "BlockList": [],
                "NavBirth": ""
            }
        user = User(data["UserId"], data["VotingRating"],
                    data["ContentRating"], data["ContentList"],
                    data["MiningRating"], data["UpiId"], data["BlockList"],
                    data["NavBirth"])
        user.updateMiningRating(miningRating)
        userFile = json.dumps(user.getUser(), indent=4)
        f = open("userFile.json", "w")
        f.write(userFile)
        f.close()
        UserId.append(creator)
        UserFileHash.append(Ipfs.sendFile("user.json"))

        self.block.updateUsers(UserId, UserFileHash)

    def publishBlock(self):
        blockFile = json.dumps(self.block.getBlock(), indent=4)
        blockFileName = "block_next_to_" + self.lastblockAddress + ".json"
        f = open(blockFileName, "w")
        f.write(blockFile)
        f.close()
        blockAddress = Ipfs.sendFile(blockFileName)

        #Send this blockaddress to all peers
        return blockAddress

    def resetMiningProcess(self):
        self.previous_hash = ""
        self.genre = ""
        self.size = ""
        self.newsfiles = []
        self.block = Block.Block(id, "", "", "", 0, {})
Exemple #18
0
 def resetMiningProcess(self):
     self.previous_hash = ""
     self.genre = ""
     self.size = ""
     self.newsfiles = []
     self.block = Block.Block(id, "", "", "", 0, {})
Exemple #19
0
import pygame
from Model.Block import Block
from Model.Ball import Ball
from Model.Computer import Computer
from constants import SCREEN_WIDTH

Player1 = Block(20, 200, "Player1")
Player2 = Block(SCREEN_WIDTH - 30, 200, "Player2")
Ball = Ball(390, 290, 20)
Computer = Computer(Player1, Player2, Ball)

block_list = pygame.sprite.Group()
ball_list = pygame.sprite.Group()

block_list.add(Player1)
block_list.add(Player2)
ball_list.add(Ball)

play = False
game_mode = ""
is_running = True


def set_default():
    Player1.reset()
    Player2.reset()
    Ball.reload()
Exemple #20
0
def createGenesisBlock():
    data = BlockData(1, [{'fromMiner': '', 'toMiner': '', 'amount': '0'}])
    return Block(0, datetime.now(), data, '0')