예제 #1
0
	def spawn_star(self):
		coin = Coin(parent=self)
		coin.position = (random.uniform(20, self.size.w-20), self.size.h + 30)
		d = random.uniform(2.0, 4.0)
		actions = [A.move_by(0, -(self.size.h + 60), d), A.remove()]
		coin.run_action(A.sequence(actions))
		self.items.append(coin)
예제 #2
0
    def update(self):
        time = pg.time.get_ticks()

        if time - self.creationTimer > 1000:
            pass

            if len(self.evil_sprites) < 10:
                i = Player.PacManEvil(random.randrange(0, 30),
                                      random.randrange(0, 30), self,
                                      random.choice(COLORS))

                self.evil_sprites.add(i)
                self.all_sprites.add(i)
                print("Creado")

                self.creationTimer = time
        if time - self.creationTimer > 10:
            if len(self.coin_sprites) < 10:
                i = Coin.Coin(random.randrange(0, 30), random.randrange(0, 30),
                              self, YELLOW)
                self.coin_sprites.add(i)
                self.all_sprites.add(i)
                print("COINER")
                self.creationTimer = time

        for i in self.evil_sprites:
            i.mov()
            i.update()
        self.player.update()
예제 #3
0
    def run(self):
        #Loop del juego
        self.playing = True

        while self.playing:
            #Mantains the speed
            self.clock.tick(FPS)
            self.events()
            self.update()
            self.draw()
            for i in self.evil_sprites:
                if self.player.updateX() == i.updateX(
                ) and self.player.updateY() == i.updateY():
                    print("Choque")
                    pg.quit()
            for i in self.coin_sprites:
                if self.player.updateX() == i.updateX(
                ) and self.player.updateY() == i.updateY():
                    print("Coin up")
                    i.kill()
                    self.coins += 1
                    q = Coin.Coin(random.randrange(0, 30),
                                  random.randrange(0, 30), self, YELLOW)
                    self.coin_sprites.add(q)
                    self.all_sprites.add(q)
                    print("COINER")
                    print(self.coins)
            if self.coins == 20:
                i = Coin.Coin(random.randrange(0, 30), random.randrange(0, 30),
                              self, PURPLE)
                self.pill_sprites.add(i)
                self.all_sprites.add(i)
                self.coins = 0
                q = Player.Chaser(random.randrange(0, 30),
                                  random.randrange(0, 30), self,
                                  random.choice(COLORS))
                self.evil_sprites.add(q)
                self.all_sprites.add(q)

            for i in self.pill_sprites:
                if self.player.updateX() == i.updateX(
                ) and self.player.updateY() == i.updateY():
                    print("Pill up")
                    i.kill()

        pg.quit()
예제 #4
0
    def __init__(self):
        self._width = 480
        self._height = 320
        self._frame_thickness = 3
        self._inventory_rect = pygame.Rect(
            Constants.GAME_WINDOW_WIDTH // 2 - self._width // 2,
            Constants.GAME_WINDOW_HEIGHT // 2 - self._height // 2, self._width,
            self._height)

        self._resources = {
            'gold_coin': [
                Coin.Coin(
                    Constants.GAME_WINDOW_WIDTH // 2 - self._width // 2 + 30,
                    Constants.GAME_WINDOW_HEIGHT // 2 + self._height // 2,
                    'resources/images/coins/gold_coin.png',
                    GameEnums.CoinTypes.GOLD), 0, None
            ],
            'silver_coin': [
                Coin.Coin(
                    Constants.GAME_WINDOW_WIDTH // 2 - 20,
                    Constants.GAME_WINDOW_HEIGHT // 2 + self._height // 2,
                    'resources/images/coins/silver_coin.png',
                    GameEnums.CoinTypes.SILVER), 0, None
            ],
            'bronze_coin': [
                Coin.Coin(
                    Constants.GAME_WINDOW_WIDTH // 2 + self._width // 2 - 60,
                    Constants.GAME_WINDOW_HEIGHT // 2 + self._height // 2,
                    'resources/images/coins/bronze_coin.png',
                    GameEnums.CoinTypes.BRONZE), 0, None
            ]
        }
        self._cells = list()
        self._index_cell_to_add_new_resource = 0

        self._start_cell_to_move_item = 0
        self._end_cell_to_move_item = 0

        self._create_inventory_cells()
예제 #5
0
 def __init__(self, game_elements=None, output_file=None):
     if game_elements is None or len(game_elements) == 0:
         game_elements = [
             Dice([6], 6),
             Coin('Heads'),
             Deck(['J', 'Spades', 'A', 'Diamonds'])
         ]
     if output_file is None:
         output_file = open('GameResults.txt', 'w+')
     self.game_elements = game_elements
     self.output_file = output_file
     self.attempts = 0
     self.win_flag = False
예제 #6
0
 def trade(self):
     if Utils.playerInventory:
         gold = Coin.Coin()
         counter = 0
         for item in Utils.playerInventory:
             if self.gold >= 0:
                 self.store.append(item)
                 Utils.playerInventory.remove(item)
                 gold.value += random.randint(1, 3)
                 self.gold -= 1
                 counter += 1
         Utils.playerCoins.append(gold)
         print("Traded %s items for %s gold" % (counter, gold.value))
예제 #7
0
파일: main.py 프로젝트: Acruxx/ARS
    def startGame(self):
        self.currentOffset = random.random() * math.pi * 2
        self.currentTrack = GhostTrack()

        self.player.resetCar();
        self.player.setAng(self.currentOffset);

        self.currentFrame = 0

        self.state = STATE_COUNTDOWN
        self.startTime = time.time()
        
        self.waves += 1

        self.coin = Coin()
예제 #8
0
    def setCoinList(self, coin_list):
        # set tradable coin list
        result = []

        for i in coin_list :
            try :
                withdrawalFee = GlobalVariable.marketWithdrawFee[self.marketName][i]
            except :
                print("    Currency(" + str(sys._getframe().f_lineno) + ") : "+self.name,"_",i + "_withdrawal fee error")
                continue

            try :
                result.append(Coin(i, self.API.GetOrderBook(self.name, i), withdrawalFee))
            except :
                print("    Currency(" + str(sys._getframe().f_lineno) + ") : " + self.name ,"_", i + "_ set Coin error")
                continue

        return result
예제 #9
0
  def parseStage(stagename, gameWindow):
    file = open('stages/'+stagename+'.mmstg', 'r')
    data = file.read()
    rows = [s.strip() for s in data.splitlines()]
    firstRow = rows[0]
    rows.remove(firstRow)
    playerCommands = firstRow.split(' ')
    players = []
    for playerCommand in playerCommands:
      [playerType, argString] = playerCommand.split('/')
      args = argString.split(',')
      players.append([playerType, args])

    rowCount = len(rows)
    colCount = len(rows[0])
    
    stage = Stage(State(rowCount, colCount))
    for rowNumber in range(0, rowCount):
      for colNumber in range(0, colCount):
        position = {'row':rowNumber, 'col':colNumber}

        if rows[rowNumber][colNumber] == '1':
          player = StageParser.createNewPlayer(players[0], stage, gameWindow)
          stage.state.placeObject(player, position)
        if rows[rowNumber][colNumber] == '2':
          player = StageParser.createNewPlayer(players[1], stage, gameWindow)
          stage.state.placeObject(player, position)
        if rows[rowNumber][colNumber] == '3':
          player = StageParser.createNewPlayer(players[2], stage, gameWindow)
          stage.state.placeObject(player, position)
        if rows[rowNumber][colNumber] == '4':
          player = StageParser.createNewPlayer(players[3], stage, gameWindow)
          stage.state.placeObject(player, position)
        if rows[rowNumber][colNumber] == '5':
          player = StageParser.createNewPlayer(players[4], stage, gameWindow)
          stage.state.placeObject(player, position)
        if rows[rowNumber][colNumber] == 'C':
          coin = Coin(stage)
          stage.state.placeObject(coin, position) 
        if rows[rowNumber][colNumber] == 'W':
          wall = Wall(stage)
          stage.state.placeObject(wall, position)
    return stage
예제 #10
0
파일: Main.py 프로젝트: TimerBond/game
    back = pygame.sprite.Group()
    clouds_sprites = pygame.sprite.Group()
    coin_sprites = pygame.sprite.Group()
    monsters = pygame.sprite.Group()
    bullets = pygame.sprite.Group()
    hero_bullets = pygame.sprite.Group()
    finish_group = pygame.sprite.Group()
    heart = pygame.sprite.Group()
    Heart.Heart(heart)

    player_group = pygame.sprite.Group()
    type_monster = {
        "1_1": "sprites/monster1_1.png",
        "1_2": "sprites/monster1_2.png"
    }
    coin.Coin(coin_sprites)
    player_x = 0
    player_y = 0

    background = bg.Background(back)
    for _ in range(5):
        cl = cloud.Cloud(clouds_sprites, all_sprites)
    running = True

    mapName = ""
    if dead:
        start_screen('sprites/gameover.png')
    elif finish:
        start_screen('sprites/win.png')
    else:
        start_screen('sprites/fon.png')
예제 #11
0
def run_program(my_account):
    from matplotlib.figure import Figure
    from log_label import LLabel
    import data_button as db
    import tkinter as tk
    from tkinter import Canvas, Label, Menu, Pack, StringVar, Toplevel, ttk
    import menu

    import Coin as c
    import GraphPlot as gp

    import trade

    bitcoin = c.Coin('BTC')
    ethereum = c.Coin('ETH')
    ethereumC = c.Coin('ETC')
    dogecoin = c.Coin('DOGE')
    cardano = c.Coin('ADA')
    eos = c.Coin('EOS')
    ripple = c.Coin('XRP')
    chainlink = c.Coin('LINK')
    litecoin = c.Coin('LTC')
    bitcoinCash = c.Coin('BCH')

    root = tk.Tk()
    root.resizable(False, False)  # 창 크기조절 비활성화
    root.title("crypto")

    root.option_add('*tearOff', False)  # Menu버튼을 만들기 위해서 넣어줘야 하는 코드

    s = ttk.Style()
    s.configure('button.TFrame', background='red')

    # 그래프가 들어갈 프레임

    graph_frame = tk.Frame(root, width=900, height=600)
    graph_frame.grid(row=1, column=0)

    graph_graph_frame = tk.Frame(graph_frame, width=900, height=570, bg='red')
    graph_graph_frame.grid(row=0, column=0)

    navigation_frame = tk.Frame(graph_frame, width=900, height=30)
    navigation_frame.grid(row=1, column=0)

    graph = gp.graph(bitcoin, graph_graph_frame, navigation_frame)

    # 로그가 들어갈 프레임

    log_frame = tk.Frame(root, width=900, height=200, bg='yellow')
    log_frame.grid(row=2, column=0)

    index_label = tk.Label(log_frame,
                           text='\tTIME\t\tPRICE(KRW)\t\tVOLUME(BTC)',
                           bd=5,
                           font='TIMES 17',
                           bg='#4A4A4A',
                           fg='white')
    index_label.place(x=0, y=0, width=900, height=40)

    log_label = LLabel(log_frame)
    log_label.place_label(0, 40)

    # 판매,구매 버튼이 들어갈 프레임
    interact_frame = tk.Frame(root, width=300, height=200, bg='pink')
    interact_frame.grid(row=2, column=1)
    coin_entry = trade.TradeEntry(interact_frame, x=0, y=110)
    coin_label = trade.TradeLabel(interact_frame, bitcoin, x=240, y=110)
    coin_to_cash_label = trade.Coin2CashLabel(interact_frame, coin_label)
    # cash_label = trade.TradeLabel(interact_frame, x=240, y=155, text='KRW')
    refresh_button = trade.RefreshButton(interact_frame, coin_entry,
                                         coin_label, coin_to_cash_label)
    text_widget = trade.TextWidget(interact_frame, my_account)
    buy_button = trade.BuyButton(interact_frame, my_account,
                                 coin_to_cash_label, coin_entry, text_widget)
    sell_button = trade.SellButton(interact_frame, my_account,
                                   coin_to_cash_label, coin_entry, text_widget)

    # 10가지 코인의 가격 정보가 들어갈 프레임
    s.configure('data.TFrame', background="green")
    data_frame = ttk.Frame(root)
    data_frame.configure(width=300, height=600, style='data.TFrame')
    data_frame.grid(row=1, column=1)

    s.configure("Bold.TLabel", size=40, weight="bold")
    index_label = tk.Label(data_frame,
                           text='Name\tPrice\tChange',
                           font='TIMES 15',
                           bg='#4A4A4A',
                           fg='white')

    # 절대 위치를 설정하여 label 표시, data_frame내의 (0,0)위치
    index_label.place(x=0, y=0, width=300, height=50)

    # 데이터 버튼 삽입
    btc_button = db.data_button(data_frame, bitcoin, log_label, graph,
                                coin_label, text_widget, my_account)
    btc_button.place_button(0, 50)
    btc_button.updater()

    eth_button = db.data_button(data_frame, ethereum, log_label, graph,
                                coin_label, text_widget, my_account)
    eth_button.place_button(0, 105)
    eth_button.updater()

    etc_button = db.data_button(data_frame, ethereumC, log_label, graph,
                                coin_label, text_widget, my_account)
    etc_button.place_button(0, 160)
    etc_button.updater()

    doge_button = db.data_button(data_frame, dogecoin, log_label, graph,
                                 coin_label, text_widget, my_account)
    doge_button.place_button(0, 215)
    doge_button.updater()

    ada_button = db.data_button(data_frame, cardano, log_label, graph,
                                coin_label, text_widget, my_account)
    ada_button.place_button(0, 270)
    ada_button.updater()

    eos_button = db.data_button(data_frame, eos, log_label, graph, coin_label,
                                text_widget, my_account)
    eos_button.place_button(0, 325)
    eos_button.updater()

    ripple_button = db.data_button(data_frame, ripple, log_label, graph,
                                   coin_label, text_widget, my_account)
    ripple_button.place_button(0, 380)
    ripple_button.updater()

    chainlink_button = db.data_button(data_frame, chainlink, log_label, graph,
                                      coin_label, text_widget, my_account)
    chainlink_button.place_button(0, 435)
    chainlink_button.updater()

    litecoin_button = db.data_button(data_frame, litecoin, log_label, graph,
                                     coin_label, text_widget, my_account)
    litecoin_button.place_button(0, 490)
    litecoin_button.updater()

    bch_button = db.data_button(data_frame, bitcoinCash, log_label, graph,
                                coin_label, text_widget, my_account)
    bch_button.place_button(0, 545)
    bch_button.updater()

    # 메뉴가 들어갈 프레임

    menu_frame = ttk.Frame(root)
    menu_frame.configure(relief='raised', style='button.TFrame')
    menu_frame.grid(row=0, column=0, sticky=tk.NSEW, columnspan=2)

    # 메뉴 객체 생성
    menu = menu.Menu_class(menu_frame, graph, my_account, text_widget)

    root.config(menu=menu.menubar)
    root.mainloop()
예제 #12
0
import Coin
import random

heads = 0
tails = 0

for i in range(20):
    HorT = random.randint(0,1)
    myCoin = Coin.Coin(HorT)
    HorT = int(HorT)
    if HorT == 0:
        myCoin.headsUp()
        heads += 1
    if HorT == 1:
        myCoin.tailsUp()
        tails += 1
print("Total Heads:", heads)
print("Total Tails:", tails) 
예제 #13
0
 def __init__(self,
              playerObj,
              locationx,
              locationy,
              adjective=random.randint(0,
                                       len(nameGenerator.adjectives) - 1),
              noun=random.randint(0,
                                  len(nameGenerator.nouns) - 1),
              verb=random.randint(0,
                                  len(nameGenerator.verbs) - 1)):
     VariableEnemy.enemyList.append(self)
     VariableEnemy.numberOfEnemies += 1
     self.adjective = adjective
     self.noun = noun
     self.verb = verb
     self.name = nameGenerator.adjectives[self.
                                          adjective] + " " + nameGenerator.verbs[self.
                                                                                 verb] + " " + nameGenerator.nouns[self.
                                                                                                                   noun]
     self.x = locationx
     self.y = locationy
     self.collisionx = self.x
     self.collisiony = self.y
     self.size = SIZE
     self.rect = pygame.Rect(self.x, self.y, self.size, self.size)
     self.range = RANGE
     self.speed = SPEED
     self.health = HEALTH
     self.damage = DAMAGE
     self.rangeDamage = 1
     self.attack = ATTACK
     self.color = COLOR
     self.drawDifferent = False
     self.isDead = False
     self.chase = True
     self.shouldFlank = False
     self.knocksBack = True
     self.dot = False
     self.dotCount = 3
     self.weaponx = 0
     self.weapony = 0
     self.dropRate = DROPRATE  #number out of 100 for how often cool stuff drops
     self.coin = Coin.Coin()
     self.font = pygame.font.SysFont("monospace", 12)
     self.text = self.font.render(self.name, 1, (0, 0, 0))
     self.spriteList = [self.outline_sprite]
     self.spriteObj = SpriteAnimation.SpriteAnimation(
         [self.outline_sprite, self.outline_sprite], 10)
     self.verbAnimSpriteObj = None
     self.playerObj = playerObj
     self.items = []
     self.inventory = 0
     #Functions To update self before spawning
     self.getAdjectiveTraits()
     self.getNounTraits()
     self.getVerbTraits()
     self.currentWeapon = Weapon.MeleeWeapon()
     self.rangedWeapon = RangedWeapon.RangedWeapon(self)
     self.arrows = 3
     self.reload = 1
     self.updateStatsToCurrentWeapon()
     self.updateInventory()
예제 #14
0
                pb, mobs, False)  #, pygame.sprite.collide_mask)
            for mob in playerHitMobs:
                pb.collide(mob)
                mob.collide(pb)
                if pb.collide(mob):
                    playerLives = pb.lives

            ###~BULLET KILL ENEMIES~###
            bulletsHitMobs = pygame.sprite.groupcollide(
                bullets, mobs, True, False)  #, pygame.sprite.collide_mask)
            for bullet in bulletsHitMobs:
                for mob in bulletsHitMobs[bullet]:
                    if mob.collide(bullet):
                        if mob.lives == 0:
                            if random.randint(0, mob.dropRate) == 0:
                                Coin(mob.rect.center)

            ###~POWER UP COLLECTION~###
            playerHitPowerUps = pygame.sprite.spritecollide(
                pb, powerUps, True)  #, pygame.sprite.collide_mask)
            for power in playerHitPowerUps:
                if pb.collide(power):
                    hasPowers += [power.kind]
                    print hasPowers

            ###~COIN COLLECTION~###
            playerHitCoins = pygame.sprite.spritecollide(
                pb, coins, True)  #, pygame.sprite.collide_mask)
            for coin in playerHitCoins:
                if pb.collide(coin):
                    PlayerCoins += 1
예제 #15
0
    def __init__(self):
        
        #create coin object
        self.__coin = Coin()

        #create instance of Tk()
        self.__root = Tk()

        #change title of window
        self.__root.title("FlipACoin")

        #change Tk background color
        #self.__root.configure(background = "red")

        #create flip button
        self.__flipButton = Button(self.__root, text = "Flip", command =\
                                   self.flipCoin)
        self.__flipButton.grid(row = 3, column = 2)

        #change flip button color
        #self.__flipButton.configure(background = "red")

        #create header for flip label
        self.__flipHeader = Label(self.__root, text = "Outcome", width = 10)
        self.__flipHeader.grid(row = 1, column = 1)

        #change header for flip label color
        #self.__flipHeader.configure(background = "red")

        #create label to display heads or tails
        self.__flipLabelText = self.__coin.getStatus()
        self.__flipLabelVar = StringVar()
        self.__flipLabelVar.set(self.__flipLabelText)
        self.__flipLabel = Label(self.__root, textvariable = self.__flipLabelVar,\
                          width = 20)
        self.__flipLabel.grid(row = 1, column = 3)

        #change label color
        #self.__flipLabel.configure(background = "red")

    #create label to display randomly generated number

        #create header for random number display
        self.__ranNumHeader = Label(self.__root, text = "Random Num Used", width = 20)
        self.__ranNumHeader.grid(row = 2, column = 1)

        #change header for random number display color
        #self.__ranNumHeader.configure(background = "red")

        #create label to display random number
        self.__ranNumText = self.__coin.getNumber()
        self.__ranNumVar = StringVar()
        self.__ranNumVar.set(self.__ranNumText)
        self.__ranNumLabel = Label(self.__root, textvariable = self.__ranNumVar, \
                                   width = 20)
        self.__ranNumLabel.grid(row = 2, column = 3)

        #change label to display random number color
        #self.__ranNumLabel.configure(background = "red")
        
        #initialize GUI
        mainloop()
예제 #16
0
파일: Main.py 프로젝트: Olin44/OOP-Python
import Coin

coin1 = Coin.Coin1()
coin1.throw()
print(coin1.side)

coin2 = Coin.Coin1()
coin1.throw()
print(coin1.side)

coin1 = Coin.Coin2()
coin1.throw()
print(coin1.side)

coin = Coin.Coin1()
for i in range(15):
    coin.throw()
    print(f"Rzut nr {i+1} dał wynik: {coin.side}")
예제 #17
0

if __name__ == '__main__':

    parser = argparse.ArgumentParser(description='Gambling')
    parser.add_argument('-c',
                        '--capital',
                        help='set the starting capital amount',
                        default=75,
                        type=int)
    parser.add_argument('-p',
                        '--head_prob',
                        help='set the head probability of a coin',
                        default=0.4,
                        type=float)
    args = parser.parse_args()

    capital = args.capital
    p = args.head_prob

    coin = Coin(p)
    gamblers = [Gambler(p), Gambler()]

    ## TODO test random gambler

    ## TODO print how much the random gamler has lost

    ## TODO test informed gambler

    ## TODO print how much informed gambler has lost
예제 #18
0
 def setUpClass(cls):
     cls.values = ['heads', 'tails']
     cls.coin = CoinClass.Coin()
예제 #19
0
    def run(self, game_mode, gameNumber=1000000):
        # Main loop in the game

        if game_mode !='Options':
            self.initialize_game_variables(game_mode)
            while (gameNumber > 0):
                self.game_board = Board.Board(cfg.BOARD_SIZE[0], cfg.BOARD_SIZE[1],game_mode)
                (self.board_rows, self.board_cols) = self.game_board.get_dimensions()
                self.game_logic = gl.GameLogic(self.game_board, self.connect_mode)
                self.background.fill(cfg.BLACK)
                self.game_board.draw(self.background, game_mode)
                self.game.set_game_over(False)
                turn_ended = False
                uninitialized = True
                current_type = 1

                if game_mode == "TeachAgents" or game_mode == "Singleplayer":
                    human_turn = (self.p1.get_coin_type() == current_type)

                elif game_mode == "Multiplayer":
                    human_turn = True

                elif game_mode == "Options":
                    pass

                elif game_mode == "AgentsLearn":
                    human_turn = False

                p1_turn = (self.p1.get_coin_type() == current_type)

                (first_slot_X, first_slot_Y) = self.game_board.get_slot(0,0).get_position()
                coin = Coin.Coin(current_type)
                self.game.set_game_over_screen(False)
                while not self.game.get_game_over():

                    if uninitialized:
                        coin = Coin.Coin(current_type)
                        coin.set_position(first_slot_X, first_slot_Y - Slot.Slot.SIZE)
                        coin.set_column(0)
                        uninitialized = False
                        coin_inserted = False

                    coin.draw(self.background, False)

                    current_player = self.p1 if p1_turn else self.p2

                    if not human_turn:
                        temp = current_player.complete_move(coin, self.game_board, self.game_logic, self.background)
                        self.game.set_game_over(temp)
                        coin_inserted = True
                        uninitialized = True

                    # handle the keyboard events
                    for event in pygame.event.get():
                        if event.type == pygame.MOUSEBUTTONDOWN:
                            position = pygame.mouse.get_pos()
                            clicked = self.game_board.onClick(position, self.menu, self.game)
                            if game_mode == "AgentsLearn" or game_mode == "TeachAgents":
                                #execfile( "main.py", {'GAMES_NUMBER':5000})
                                #os.system('python main.py 50000')
                                #os.execl(sys.executable, os.path.abspath(__file__), *sys.argv) #return
                                if clicked:
                                    os.execv(sys.executable, ['python'] + sys.argv)
                        if event.type == pygame.QUIT:
                            self.game.set_game_over(True)
                            return
                        elif event.type == pygame.KEYDOWN:
                            if event.key == pygame.K_ESCAPE:
                                exit()
                            if event.key == pygame.K_RIGHT and human_turn:
                                if (coin.get_column() + 1 < self.board_cols):
                                    coin.move_right(self.background)

                            elif event.key == pygame.K_LEFT and human_turn:
                                if (coin.get_column() - 1 >= 0):
                                    coin.move_left(self.background)

                            elif event.key == pygame.K_RETURN and human_turn and not coin_inserted:
                                try:
                                    temp = self.game_board.insert_coin(coin, self.background, self.game_logic)
                                    self.game.set_game_over(temp)
                                    last_action_human = coin.col
                                    if not game_mode == "Multiplayer":
                                        current_player.complete_move(self.game_board, last_action_human, self.game_logic)
                                    uninitialized = True
                                    coin_inserted = True

                                except exception.ColumnFullException as e:
                                    pass

                    if self.game.get_game_over():
                        winner = self.game_logic.determine_winner_name()

                        if winner!="STOP":
                            winner_value = self.game_logic.get_winner()
                            if (game_mode == "AgentsLearn" or game_mode=="TeachAgents"):
                                self.win_list[winner_value]+=1
                            self.game.set_game_over_screen(True)
                        pygame.display.set_caption(str("Connect 4 : yellow {}, tie {}, red {}").format(self.win_list[1], self.win_list[0], self.win_list[2]))



                    if coin_inserted:
                        if game_mode == "TeachAgents" or game_mode=="Singleplayer":
                            human_turn = not human_turn
                        current_type = 1 if current_type == 2 else 2
                        p1_turn = not p1_turn



                    pygame.display.flip()
                    self.screen.blit(self.background, (0, 0))

                gameNumber -= 1

            if game_mode == "AgentsLearn" :
                self.main_menu()

            else:
                if winner!="STOP":
                    self.game.game_over(winner, self.menu, self.screen)
                self.main_menu()

        else:
             # Display the game over screen
            self.options.set_options_mode(True)
            self.menu.set_menu_mode(False)
            self.background.fill(cfg.LIGHT_BLUE)
            self.options.draw_options(self.games_number, self.speed_train, self.music, self.epsilon)


            self.games_number, self.speed_train, self.music, self.epsilon = self.options.running_options(self.games_number, self.speed_train, self.music, self.epsilon, self.screen, self.menu)
            self.main_menu()
                    player.fly("fly straight")
                    arrowKeyPressed = True

        now = time.time() - start
        #print "Event handling: ", now
        start = time.time()

        if player.virtPos[0] % 50 == 0:
            for y in range(75, 254 * 50, 50):
                y += -2000
                gamePiece = random.randint(0, 1000)
                if gamePiece in range(0, coinDensity + 1):
                    Coin([
                        "Pictures/Game pieces/GoldCoinSprite/GoldCoinSprite/Coin1.png",
                        "Pictures/Game pieces/GoldCoinSprite/GoldCoinSprite/Coin2.png",
                        "Pictures/Game pieces/GoldCoinSprite/GoldCoinSprite/Coin3.png",
                        "Pictures/Game pieces/GoldCoinSprite/GoldCoinSprite/Coin4.png",
                        "Pictures/Game pieces/GoldCoinSprite/GoldCoinSprite/Coin5.png",
                        "Pictures/Game pieces/GoldCoinSprite/GoldCoinSprite/Coin6.png"
                    ], "0", [1100, y])
                    #print y, gamePieces.sprites()[-1].kind
                elif gamePiece == 100:
                    Cloud("Pictures/Blocks, and background/BadCloud.png",
                          [1500, y])
                elif gamePiece in range(31, boosterDensity + 31):
                    Booster([
                        "Pictures/Game pieces/Booster1.png",
                        "Pictures/Game pieces/Booster2.png",
                        "Pictures/Game pieces/Booster3.png",
                        "Pictures/Game pieces/Booster2.png"
                    ], "^", [1100, y])
                elif gamePiece in range(0, spikeDensity):
예제 #21
0
파일: main.py 프로젝트: Acruxx/ARS
class Game:
    def __init__(self):
        self.BOARD_SIZE = 720
        
        self.size = width, height = self.BOARD_SIZE, self.BOARD_SIZE
        self.speed = [0.2, 0.2]
        self.black = 0, 0, 0
        
        self.screen = pygame.display.set_mode(self.size)
        self.roundaboutImage = pygame.image.load("media/roundaboutNew.png")
        #roundabout = pygame.image.load("ball.gif")
        self.readyImg = pygame.image.load("media/readyScreen.png")
        
        self.roundaboutImage = pygame.transform.scale(self.roundaboutImage, self.size);
        self.readyImg = pygame.transform.scale(self.readyImg, self.size);

        self.roundaboutRect = self.roundaboutImage.get_rect()
        self.readyBox = self.readyImg.get_rect()
        
        self.inputManager = InputManager()
        
        self.player = Player(0, 200);
        
        self.currentTrack = GhostTrack();
        self.currentOffset = 0
        
        self.oldCars = []
        self.oldTracks = []
        self.oldOffsets = []
        
        self.doneLaps = 0

        self.framesToRun = 1000

        self.waves = 0

        self.state = STATE_MENU

        self.explosionSound = pygame.mixer.Sound("media/Explosion.wav")

    
    def restartGame(self):
        self.oldTracks.append(self.currentTrack)
        self.oldOffsets.append(self.currentOffset)
    
        #Restart the game and spawn some stuff
        self.oldCars.append(GhostCar())
    
        for track in self.oldTracks:
            track.reset_count()
    
        self.startGame()

        
    
    def startGame(self):
        self.currentOffset = random.random() * math.pi * 2
        self.currentTrack = GhostTrack()

        self.player.resetCar();
        self.player.setAng(self.currentOffset);

        self.currentFrame = 0

        self.state = STATE_COUNTDOWN
        self.startTime = time.time()
        
        self.waves += 1

        self.coin = Coin()
    
    
    def main(self):
        while 1:
            self.screen.fill(self.black)

            for event in pygame.event.get():
                if event.type == pygame.QUIT: sys.exit()
                
                self.inputManager.onEvent(event);
        
            if self.state == STATE_GAME:
                self.player.update(self.inputManager);
        
                self.currentTrack.add_pos(self.player.getAng(), self.player.getRad())

                self.currentFrame += 1
        
                if self.currentFrame >= self.framesToRun:
                    self.restartGame()
        
                for i in range(0, len(self.oldCars)):
                    oldPos = self.oldTracks[i].get_next_pos()

                    self.oldCars[i].setAng(oldPos[0])
                    self.oldCars[i].setRad(oldPos[1] + self.oldOffsets[i])
                    self.oldCars[i].update()
                    self.oldCars[i].setFuture(self.oldTracks[i].get_future_pos(60))

                    if self.oldCars[i].checkCollision(self.player):
                        self.player.shakeSound.stop()

                        score = self.player.score
                        
                        self.explosionSound.play()

                        print "You died, final score: {}".format(score)

                        pygame.display.quit()

                        if(score >= highScore.getLowest()):
                            name = raw_input("New high score, what's your name?\n")

                            highScore.addScore(name, score)

                        highScore.save()
                        return


                self.coin.update(self.player)

            elif self.state == STATE_COUNTDOWN:
                if(time.time() > self.startTime + 1): 
                    self.state = STATE_GAME

                for car in self.oldCars:
                    car.updateGraphics()

                self.player.updateGraphics()
                self.coin.updateGraphics()

        
            #self.screen.blit(self.roundaboutImage, screenshaker.offset.getTuple(), self.roundaboutRect)
            self.screen.blit(self.roundaboutImage, screenshaker.offset.getTuple(), self.roundaboutRect)
            self.player.draw(self.screen);

            for car in self.oldCars:
                car.draw(self.screen)

            self.coin.draw(self.screen)

            if self.state == STATE_COUNTDOWN:
                self.screen.blit(self.readyImg, self.readyBox)

            pygame.display.flip()
예제 #22
0
    def parseRoomXML(self, xml):
        self.w, self.h = map(int, [xml.get('width'), xml.get('height')])
        for obj in xml:  # Iterate through room objects
            attr = obj.attrib
            x, y = int(attr["x"]), int(attr["y"])

            if obj.tag == "spawn":

                typ = int(obj[0].get('type'))
                var = int(obj[0].get('variant'))
                subtype = int(obj[0].get('subtype'))

                # Spawn the correct item for the type
                if typ in [1500, -1, -1, 1496, -1]:
                    self.poops.append(
                        Poop([1500, -1, -1, 1496, -1].index(typ), (x, y),
                             self.textures["poops"], self.sounds["pop"]))
                elif typ == 1000:
                    self.rocks.append(
                        Rock(randint(0, 2), (x, y), False,
                             self.sounds["rockBreak"], self.textures["rocks"]))
                elif typ == 33:
                    self.fires.append(
                        Fire(0, (x, y),
                             [self.sounds["fireBurn"], self.sounds["steam"]],
                             self.textures["fires"]))
                elif typ == 5 and var == 10:
                    self.other.append(
                        Heart(
                            [1, 3, 6].index(subtype), (x, y),
                            [self.sounds["heartIntake"], self.sounds["holy"]],
                            self.textures["pickupHearts"]))
                elif typ == 5 and var == 20:
                    self.other.append(
                        Coin(subtype - 1, (x, y), [
                            self.sounds["coinDrop"], self.sounds["coinPickup"]
                        ], self.textures["coins"]))
                elif typ == 5 and var == 30:
                    self.other.append(
                        Key(0, (x, y),
                            [self.sounds["keyDrop"], self.sounds["keyPickup"]],
                            self.textures["keys"]))
                elif typ == 5 and var == 40:
                    self.other.append(
                        Bomb(self,
                             0, (x, y), [self.sounds["explosion"]],
                             self.textures["bombs"],
                             explode=False))
                elif typ == 13:
                    self.enemies.append(
                        Fly((x, y), [self.sounds["deathBurst"]],
                            self.textures["enemies"]["fly"]))
                elif typ == 14:
                    self.enemies.append(
                        Pooter((x, y), [self.sounds["deathBurst"]],
                               self.textures["enemies"]["pooter"]))
                elif typ == 26:
                    self.enemies.append(
                        Maw((x, y), [self.sounds["deathBurst"]],
                            self.textures["enemies"]["maw"]))
                elif typ == 27:
                    self.enemies.append(
                        Host((x, y), self.sounds, self.textures))
                elif typ == 30:
                    self.enemies.append(
                        Boil((x, y), self.sounds, self.textures))
예제 #23
0
    def _create_random_content(self):
        def create_random_health_potion():
            volume = random.randint(0, 6)
            if volume == 0:
                return HealthPotion(random_x, random_y,
                                    'resources/images/potions/health/small_health_potion.png',
                                    GameEnums.PotionVolume.SMALL.value)
            elif volume == 1:
                return HealthPotion(random_x, random_y,
                                    'resources/images/potions/health/lesser_health_potion.png',
                                    GameEnums.PotionVolume.LESSER.value)
            elif volume == 2:
                return HealthPotion(random_x, random_y,
                                    'resources/images/potions/health/medium_health_potion.png',
                                    GameEnums.PotionVolume.MEDIUM.value)
            elif volume == 3:
                return HealthPotion(random_x, random_y,
                                    'resources/images/potions/health/greater_health_potion.png',
                                    GameEnums.PotionVolume.GREATER.value)
            elif volume == 4:
                return HealthPotion(random_x, random_y,
                                    'resources/images/potions/health/huge_health_potion.png',
                                    GameEnums.PotionVolume.HUGE.value)

        def create_random_mana_potion():
            volume = random.randint(0, 6)
            if volume == 0:
                return ManaPotion(random_x, random_y,
                                  'resources/images/potions/mana/small_mana_potion.png',
                                  GameEnums.PotionVolume.SMALL.value)
            elif volume == 1:
                return ManaPotion(random_x, random_y,
                                  'resources/images/potions/mana/lesser_mana_potion.png',
                                  GameEnums.PotionVolume.LESSER.value)
            elif volume == 2:
                return ManaPotion(random_x, random_y,
                                  'resources/images/potions/mana/medium_mana_potion.png',
                                  GameEnums.PotionVolume.MEDIUM.value)
            elif volume == 3:
                return ManaPotion(random_x, random_y,
                                  'resources/images/potions/mana/greater_mana_potion.png',
                                  GameEnums.PotionVolume.GREATER.value)
            elif volume == 4:
                return ManaPotion(random_x, random_y,
                                  'resources/images/potions/mana/huge_mana_potion.png',
                                  GameEnums.PotionVolume.HUGE.value)

        content_local = []
        for _ in range(self._amount_things_in_chest):
            random_thing = random.randint(0, 7)
            random_x = random.randint(self._rect.centerx - 20, self._rect.centerx + 20)
            random_y = random.randint(self._rect.centery + 10, self._rect.centery + 30)
            thing = 0
            if random_thing == 0:
                thing = create_random_health_potion()
            if random_thing == 1:
                thing = create_random_mana_potion()
            if random_thing == 3:
                thing = Coin.Coin(random_x, random_y,
                                  'resources/images/coins/gold_coin.png',
                                  GameEnums.CoinTypes.GOLD)
            if random_thing == 4:
                thing = Coin.Coin(random_x, random_y,
                                  'resources/images/coins/silver_coin.png',
                                  GameEnums.CoinTypes.SILVER)
            if random_thing == 5:
                thing = Coin.Coin(random_x, random_y,
                                  'resources/images/coins/bronze_coin.png',
                                  GameEnums.CoinTypes.BRONZE)
            if random_thing == 6:
                thing = Key(random_x, random_y, basic_image='resources/images/chests/key.png')
            content_local.append(thing)
        return content_local
예제 #24
0
    def render(self, surface, character, currTime):

        if len(self.enemies) > 0:
            for door in self.doors:
                door.close()

        else:
            for door in self.doors:
                door.open()

            if self.hadEnemies and len(self.other) == 0 and randint(
                    0, 5) == 0 and not self.spawnedItem:
                typ = randint(0, 2)
                self.spawnedItem = True

                # Random spawn
                if typ == 0:
                    self.other.append(
                        Coin(0, (6, 2), [
                            self.sounds["coinDrop"], self.sounds["coinPickup"]
                        ], self.textures["coins"]))
                elif typ == 1:
                    self.other.append(
                        Bomb(self,
                             1, (6, 2), [self.sounds["explosion"]],
                             self.textures["bombs"],
                             explode=False))
                elif typ == 2:
                    self.other.append(
                        Key(0, (6, 2),
                            [self.sounds["keyDrop"], self.sounds["keyPickup"]],
                            self.textures["keys"]))

            # Create trapdoor in empty boss room
            if self.variant == 2 and self.floor < 6 and not Trapdoor in list(
                    map(type, self.other)):
                self.other.append(Trapdoor(self.textures["trapdoor"]))

        if not self.animating:
            # Render stationary room

            surface.blit(self.backdrop, (38, -16))

            for door in self.doors:
                door.render(surface)

            for rock in self.rocks:
                rock.render(surface)

            for poop in self.poops:
                poop.render(surface)

            for fire in self.fires:
                fire.render(surface, currTime)

            objects = self.rocks + self.poops + self.fires

            for other in self.other[::-1]:
                if not other.render(surface, currTime, objects + self.enemies):
                    self.other.remove(other)

            everything = objects + self.other

            # Character x and y
            cx, cy = int((character.x - GRIDX) / GRATIO), int(
                (character.y - GRIDY) / GRATIO)

            if cx != self.lcx or cy != self.lcy:
                self.lcx, self.lcy = cx, cy
                for enemy in self.enemies:
                    enemy.pathFind((cx, cy), self.nodes, self.paths)

            for enemy in self.enemies[:]:
                if not enemy.render(surface, currTime, character, self.nodes,
                                    self.paths, self.levelBounds, objects):
                    self.enemies.remove(enemy)

            move = character.render(surface, currTime, self.levelBounds,
                                    everything, self.doors)

            return move
        else:
            # Render moving room

            moveDistance = 40  # How far the canvas should move
            self.ax += [0, 1, 0, -1][self.aDirection] * moveDistance
            self.ay += [-1, 0, 1, 0][self.aDirection] * moveDistance

            if abs(self.sx - self.ax) >= WIDTH or abs(self.sy -
                                                      self.ay) >= HEIGHT:
                self.animating = False
                self.ax, self.ay = 0, 0
                self.sx, self.sy = 0, 0
            else:
                surface.blit(self.backdrop, (38 + self.ax, -16 + self.ay))

                for door in self.doors:
                    door.render(surface, ox=self.ax, oy=self.ay)

                for rock in self.rocks:
                    rock.render(surface, ox=self.ax, oy=self.ay)

                for poop in self.poops:
                    poop.render(surface, ox=self.ax, oy=self.ay)

                for fire in self.fires:
                    fire.render(surface, currTime, ox=self.ax, oy=self.ay)

                objects = self.rocks + self.poops + self.fires

                for other in self.other[::-1]:
                    if not other.render(
                            surface, currTime, objects, ox=self.ax,
                            oy=self.ay):
                        self.other.remove(other)

            return [0, 0]
예제 #25
0
import Coin
import Commit

#Bob picks
a = Coin.flip_coin()

#Alice flips
b = Coin.flip_coin()

#Bob runs the commit algorithm and give alice the public commitment
r_bob = Commit.nonce()
c_bob = Commit.commit(a, r_bob)

#Alice does too
r_alice = Commit.nonce()
c_alice = Commit.commit(b, r_alice)

#Both runs the reveal
if (c_bob != Commit.commit(a, r_bob)):
    print("Bob lied!")
elif (c_alice != Commit.commit(b, r_alice)):
    print("Alice lied!")
else:
    shared_coin = a ^ b
    if (shared_coin == 1):
        print("Bob wins")
    else:
        print("Alice wins")
예제 #26
0
import random
import Coin
from Crypto.Hash import SHA256


def nonce():
	return random.getrandbits(128)

def commit(m, r):
	return ( SHA256.new(str.encode(str(m)) + str.encode(str(r))).hexdigest() )

m = Coin.flip_coin()
r = nonce()
c = commit(m, r)