mirror of
				https://github.com/solero/houdini.git
				synced 2025-11-04 06:31:54 +00:00 
			
		
		
		
	Add try except for mancala movement
This commit is contained in:
		@@ -26,30 +26,35 @@ async def handle_join_game(p):
 | 
			
		||||
@handlers.handler(XTPacket('zm', ext='z'))
 | 
			
		||||
@table_handler(MancalaLogic)
 | 
			
		||||
async def handle_send_move(p, move: int):
 | 
			
		||||
    seat_id = p.table.get_seat_id(p)
 | 
			
		||||
    is_player = seat_id < 2
 | 
			
		||||
    game_ready = len(p.table.penguins) > 1
 | 
			
		||||
    try:
 | 
			
		||||
        seat_id = p.table.get_seat_id(p)
 | 
			
		||||
        is_player = seat_id < 2
 | 
			
		||||
        game_ready = len(p.table.penguins) > 1
 | 
			
		||||
 | 
			
		||||
    if is_player and game_ready:
 | 
			
		||||
        hollow, = map(int, move)
 | 
			
		||||
        current_player = p.table.penguins[p.table.logic.current_player - 1]
 | 
			
		||||
        if is_player and game_ready:
 | 
			
		||||
            hollow, = map(int, move)
 | 
			
		||||
            current_player = p.table.penguins[p.table.logic.current_player - 1]
 | 
			
		||||
 | 
			
		||||
        if current_player != p: return
 | 
			
		||||
        if not p.table.logic.is_valid_move(hollow): return
 | 
			
		||||
            if current_player != p:
 | 
			
		||||
                return
 | 
			
		||||
            if not p.table.logic.is_valid_move(hollow):
 | 
			
		||||
                return
 | 
			
		||||
 | 
			
		||||
        move_result = p.table.logic.place_stone(hollow)
 | 
			
		||||
        await p.table.send_xt('zm', seat_id, hollow, move_result)
 | 
			
		||||
        opponent = p.table.penguins[1 if p.table.logic.current_player == 1 else 0]
 | 
			
		||||
            move_result = p.table.logic.place_stone(hollow)
 | 
			
		||||
            await p.table.send_xt('zm', seat_id, hollow, move_result)
 | 
			
		||||
            opponent = p.table.penguins[1 if p.table.logic.current_player == 1 else 0]
 | 
			
		||||
 | 
			
		||||
        if p.table.logic.is_position_win():
 | 
			
		||||
            await p.add_coins(10)
 | 
			
		||||
            await opponent.add_coins(5)
 | 
			
		||||
            await p.table.reset()
 | 
			
		||||
            return
 | 
			
		||||
        elif p.table.logic.is_position_tie():
 | 
			
		||||
            await p.add_coins(5)
 | 
			
		||||
            await opponent.add_coins(5)
 | 
			
		||||
            await p.table.reset()
 | 
			
		||||
            return
 | 
			
		||||
            if p.table.logic.is_position_win():
 | 
			
		||||
                await p.add_coins(10)
 | 
			
		||||
                await opponent.add_coins(5)
 | 
			
		||||
                await p.table.reset()
 | 
			
		||||
                return
 | 
			
		||||
            elif p.table.logic.is_position_tie():
 | 
			
		||||
                await p.add_coins(5)
 | 
			
		||||
                await opponent.add_coins(5)
 | 
			
		||||
                await p.table.reset()
 | 
			
		||||
                return
 | 
			
		||||
 | 
			
		||||
        p.table.logic.current_player = 2 if p.table.logic.current_player == 1 else 1
 | 
			
		||||
            p.table.logic.current_player = 2 if p.table.logic.current_player == 1 else 1
 | 
			
		||||
    except (KeyError, ValueError):
 | 
			
		||||
        p.logger.warn(f'Invalid mancala move made by {p}')
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user