Esempio n. 1
0
    def test(self):
        b = Board()
        a = Ai(b)
        g = Game(b, a)

        g.makeMove(0, 0, "o")
        g.makeMove(0, 1, "o")
        g.makeMove(0, 2, "o")
        g.makeMove(0, 3, "o")
        g.makeMove(0, 4, "o")

        self.assertEqual(g.gg(), True)

        b = Board()
        a = Ai(b)
        g = Game(b, a)

        g.makeMove(0, 0, "o")
        g.makeMove(1, 0, "o")
        g.makeMove(2, 0, "o")
        g.makeMove(3, 0, "o")
        g.makeMove(4, 0, "o")

        self.assertEqual(g.gg(), True)

        b = Board()
        a = Ai(b)
        g = Game(b, a)

        g.makeMove(0, 0, "o")
        g.makeMove(1, 1, "o")
        g.makeMove(2, 2, "o")
        g.makeMove(3, 3, "o")
        g.makeMove(4, 4, "o")

        self.assertEqual(g.gg(), True)

        b = Board()
        a = Ai(b)
        g = Game(b, a)

        g.makeMove(0, 5, "o")
        g.makeMove(1, 4, "o")
        g.makeMove(2, 3, "o")
        g.makeMove(3, 2, "o")
        g.makeMove(4, 1, "o")

        self.assertEqual(g.gg(), True)

        b = Board()
        a = Ai(b)
        g = Game(b, a)

        g.makeMove(0, 5, "o")
        g.makeMove(1, 4, "o")
        g.makeMove(5, 3, "o")
        g.makeMove(3, 2, "o")
        g.makeMove(4, 1, "o")

        self.assertEqual(g.gg(), False)
Esempio n. 2
0
    def _play(self):
        self.frame_2 = Frame(self.main_window)
        self.frame_2.pack()
        try:
            self._rows = int(self.row_entr.get())
            self._columns = int(self.col_entr.get())

            if self._rows < 2 or self._rows > 20 or self._columns < 2 or self._columns > 20:
                raise GameException("This size of the board is not allowed!")

            self.frame_1.pack_forget()
            self.frame_play.pack_forget()

            self._game = Game([self._rows, self._columns])

            self.buttons = []
            count = 0

            for row in range(self._rows):
                for col in range(self._columns):

                    self.buttons.append(Button(self.frame_2,text = " ",\
                                                width = 3, height = 1, bg = "thistle2",\
                                                 command = lambda col = col,row = row : self._move(row,col) ))
                    self.buttons[count].grid(column=col, row=row)
                    count += 1

        except Exception as e:
            messagebox.showerror("Error!", str(e))
Esempio n. 3
0
    def testGame(self):
        b1 = Board()
        g = Game(b1)

        p1 = Point(0, 1)
        p2 = Point(0, 2)
        p3 = Point(0, 3)

        g.adS((p1, p2, p3))

        p1 = Point(1, 1)
        p2 = Point(1, 2)
        p3 = Point(1, 3)

        g.adS((p1, p2, p3))
        p1 = Point(3, 1)
        p2 = Point(3, 2)
        p3 = Point(3, 3)

        g.adS((p1, p2, p3))

        with self.assertRaises(Exception):
            g.adS((p1, p2, p3))

        g.chooseAi()
        while g.isWon() == False:
            g.makeMA()

        self.assertEqual(g.isWon(), True)
Esempio n. 4
0
 def __init__(self, numberOfPlayers, names):
     """ Initialize the Game Controller """
     self.game = Game(numberOfPlayers, names)
     screen = GameScreen(self.game)
     ConsoleController.__init__(self,
                                screen,
                                commands={ENDL: self.nextMessage})
Esempio n. 5
0
 def buildGame(self, lobby):
     """ Build the Game """
     players = self.getGamePlayers(lobby)
     return Game(players,
                 mainDeck=self.mainDeck,
                 kickDeck=self.kickDeck,
                 weaknessDeck=self.weaknessDeck,
                 superVillainDeck=self.loadSupervillainDeck(
                     number=self.numberOfVillains))
Esempio n. 6
0
 def __init__(self, gen_size=100, threshold=10):
     self.games = [
         Game(fps=100, caption='Game ' + str(x)) for x in range(gen_size)
     ]
     self.curr_gen = [
         AIPlayer(x, [10, 10], random=True) for x in self.games
     ]
     self.gen_size = gen_size
     self.threshold = threshold
Esempio n. 7
0
    def setUp(self):
        unittest.TestCase.setUp(self)

        self.__rows = 4
        self.__columns = 5
        self.__10board = Board(10, 10)
        self.__board = Board(self.__rows, self.__columns)

        self.__game = Game([self.__rows, self.__columns])

        self.__sq1 = Square(1, 1)
        self.__sq2 = Square(2, 2)
        self.__sq34 = Square(3, 4)
        self.__sq45 = Square(4, 5)
Esempio n. 8
0
 def testGame(self):
     b = Board()
     a = Ai()
     g = Game(b, a)
     self.assertEquals(g.getAiPlaneCount(), 0)
     g.addPlane(0, 2, 'S')
     g.addPlane(0, 7, 'S')
     g.addPlane(4, 6, 'S')
     self.assertEquals(g.getFromPosition(0, 2), 2)
     g.chooseAiPlanes()
     self.assertEquals(g.getAiPlaneCount(), 3)
     while g.isGameWon() == False:
         g.makeAiMove()
     self.assertEquals(g.wonPlayer(), False)
Esempio n. 9
0
def game_main(version, generation, num_iter=1000):
    from Game.game import Game

    version_path = "Game/Version%d" % version
    generation_path = version_path + "/Generation%d" % generation

    try:
        if not os.path.exists(version_path):
            os.makedirs(version_path)

        if not os.path.exists(generation_path):
            os.makedirs(generation_path)

    except OSError:
        print("Failed to create directory")
        exit(-1)

    game = Game(False, version, generation, filepath=generation_path)
    game.run_with_encode(num_iter)
Esempio n. 10
0
    def start(self):

        player_move = True
        while True:

            try:

                rows = int(input("Number of rows for the board: "))
                columns = int(input("Number of columns for the board: "))
                if rows < 2 or rows > 20 or columns < 2 or columns > 20:
                    raise GameException(
                        "The number of rows and columns must be between 2 and 20!"
                    )
                self.__game = Game([rows, columns])
                break
            except Exception as e:
                print(str(e))

        b = self.__game.board

        while b.won() == False:
            try:

                if player_move:
                    print(b)
                    move = self._get_move()
                    self.__game.human_move(move)
                else:
                    self.__game.computer_move()
                player_move = not player_move
            except Exception as e:
                print(str(e))

        print("Game over!")
        print(b)
        if player_move == True:
            print("Computer wins!")
        else:
            print("Player wins!")
    async def _start_game(self, player_one, player_two):
        game = Game(player_one, player_two)

        player_one.state = PlayerState.IN_GAME
        player_two.state = PlayerState.IN_GAME

        player_one.game = game
        player_two.game = game

        if game.players_turn is player_one:

            player_one_msg = Messages.game_start(player_two.name, True)
            await self._send(player_one.socket, player_one_msg)

            player_two_msg = Messages.game_start(player_one.name, False)
            await self._send(player_two.socket, player_two_msg)
        else:
            player_one_msg = Messages.game_start(player_two.name, False)
            await self._send(player_one.socket, player_one_msg)

            player_two_msg = Messages.game_start(player_one.name, True)
            await self._send(player_two.socket, player_two_msg)
Esempio n. 12
0
    def view_update(self, data):

        if "full" == data:  # 방 조인 가능성
            print("풀방입니다")
            self.room = False

        elif "pos" == data:
            self.room = True

        elif "room_Info" in data:
            for num in range(3):
                if not len(data["room_Info"][str(num)]):  # 방이 비어 있을 경우
                    self.view.room_listWidget.item(num).setText("빈방")
                elif len(data["room_Info"][str(num)]) == 2:  # 2명
                    self.view.room_listWidget.item(num).setText(
                        data["room_Info"][str(num)][0] + " vs " + data["room_Info"][str(num)][1])
                else:  # 1명
                    self.view.room_listWidget.item(num).setText(data["room_Info"][str(num)][0])

        elif "white_black" in data:
            whit_black = data["white_black"]  # 방접속 유저
            self.view.id_left.setText(whit_black["white"])
            self.view.id_right.setText(whit_black["black"])

        elif "ready" in data:
            print(data["ready"])

        elif "gamestart" in data:
            print("겜시작")
            a = data["gamestart"]
            print(a, "print a")
            print(self.view.user_id)
            a = data["gamestart"]
            color = a[self.view.user_id + str("님")]
            print(color)
            self.game = Game(color, 836, 836)
            # self.game.mouse_loop_init()
            self.game.mouse_loop(self.view.flask_connect, self.que)
Esempio n. 13
0
def play_test(tester_player, trained, num_games):
    AI = AIPlayer(2, 3, trained.model_network)
    AI.otherPlayer = tester_player
    test_players = [tester_player, AI]
    test_match = Game(test_players, boardsize)
    wins = 0

    start = time()
    matches = num_games
    invalid = 0

    for i in range(matches):
        result = test_match.play()
        if result == 1:
            invalid += 1
        else:
            wins += int(AI.score >= tester_player.score)
        test_match.reset()
    if matches == 500:
        print("invalids: ", invalid)
        print("win rate: ", wins / matches)
        print("playing time: ", time() - start)

    return wins, invalid
Esempio n. 14
0
from Game.game import Game

if __name__ == "__main__":
    game_instance = Game()
    game_instance.run()
Esempio n. 15
0
def load_current_game():
    print()
    print("---- Loading Save File ----")
    game = Game()
    game.load_game()
Esempio n. 16
0
def play_new_game():
    print()
    print("---- Starting New Game ----")
    game = Game()
    game.start_game()
Esempio n. 17
0
from Game.game import Game

if __name__ == "__main__":
    game1 = Game()
Esempio n. 18
0
#################
'''

'''
#######################
import pygame as PY
from Engine.ace_engine import AceEngine
from Game.game import Game

PY.init()
clock = PY.time.Clock()
FPS = 30

G = Game(PY)

AE = AceEngine.new(PY, G)


def start():

    while True:

        AE.get_input()

        AE.update()

        AE.render()

        clock.tick(FPS)

Esempio n. 19
0
from Players.randomPlayer import RandomPlayer
from Players.greedyPlayer import GreedyPlayer
from Players.humanPlayer import HumanPlayer
from Players.AIPlayer import AIPlayer
from Game.game import Game

HIDDEN = 100

boardsize = 3
#players = [RandomPlayer(1, boardsize), AIPlayer(3, 3, HIDDEN)]
players = [RandomPlayer(1, boardsize), GreedyPlayer(3, boardsize)]
g = Game(players, boardsize)
g.play()
Esempio n. 20
0
import curses, time, sys
from Game.game import Game

if len(sys.argv) <= 1:
    print('Host address is required as an argument [ip:port]')
    sys.exit()
else:
    ip, port = sys.argv[1].split(":")

s = curses.initscr()
curses.curs_set(0)
curses.noecho()

game = Game(ip, int(port))
game.connect()

while game.game == {}:
    time.sleep(0.2)

game.draw()

while True:
    try:
        key = game.window.getch()

        if key == 27:  # Quit if esc
            break

        if key == 87 or key == 119:  # w/W, Move
            game.move(0)
        elif key == 68 or key == 100:  # d/D
Esempio n. 21
0
from Server.server import Server
from Ui.ui import Ui

s = curses.initscr()

uiState = -1
uiError = ''

while True:
    ui = Ui(uiState, uiError)
    uiState = ui.state
    uiError = ''

    if ui.ip:  # If connectin to a game
        try:
            game = Game(ui.ip[0], int(ui.ip[1]))
            game.connect()

            windowSize = s.getmaxyx()

            if windowSize[0] < game.size[0] or windowSize[1] < game.size[1]:
                uiError = f' Sorry, your terminal window has to be at least {game.size[1]}x{game.size[0]}. '
                uiState = -1

            else:
                game.start()
                break

        except:
            uiError = ' Error: Connection refused '
            uiState = -1
Esempio n. 22
0
from Model.ship import Ship
from Model.board import Board
from Model.ship import Point
from Game.game import Game
from ui.ui import UI

if __name__ == '__main__':
    b = Board()
    g = Game(b)
    u = UI(g)
    u.start()
Esempio n. 23
0
def BuildGame(mainDeck=[]):
    """ Build a Card for testing purposes """
    return Game([BuildPlayer()],
                mainDeck=Deck(items=mainDeck),
                superVillainDeck=BuildSuperVillainDeck())
Esempio n. 24
0
from Game.game import Game

PRISONER_DILEMMA = {
    "players": (("A", "testify", "refuse"), ("B", "testify", "refuse")),
    "matrix": (((-5, -5), (-10, 0)), ((0, -10), (-1, -1)))
}
g = Game(PRISONER_DILEMMA)
print "Dominant strategy for A: %s" % g.dominant_strategy("A")
print "Dominant strategy for B: %s" % g.dominant_strategy("B")
print "Equilibrium Points: %s" % str(g.equilibrium())

CONSOLE_GAME = {
    "players": (("A", "blu", "dvd"), ("B", "blu", "dvd")),
    "matrix": (((9, 9), (-4, -1)), ((-3, -1), (5, 5)))
}
g = Game(CONSOLE_GAME)
print "Dominant strategy for A: %s" % g.dominant_strategy("A")
print "Dominant strategy for B: %s" % g.dominant_strategy("B")
print "Equilibrium Points: %s" % str(g.equilibrium())
Esempio n. 25
0
from Model.board import Board
from Model.ai import Ai
from Game.game import Game
from ui.ui import UI

if __name__ == '__main__':
    b = Board()
    a = Ai(b)
    g = Game(b, a)
    u = UI(g)
    u.start()
Esempio n. 26
0
from Game.game import Game

# if __name__ == "__main__": 의 조건문 뒤의 코드는, 해당 조건문이 있는 파일에서만 실행되고, 다른 파일에 import 했을 시 실행되지 않는다.

if __name__ == "__main__":

    # ##### Man Vs AI ##### #
    color = "White"  # 항상 White 가 선공!!
    game = Game(color, "AI", 836, 836)
    game.ai_loop()
Esempio n. 27
0
 def ai_vs(self):
     # ##### Man Vs AI ##### #
     color = "White"  # 항상 White 가 선공!!
     game = Game(color, "AI", 836, 836)
     game.ai_loop()
     return
t = TransProb(OBSERVATIONS)
t.report()

print "\n=== Homework 6.2 ==="
CHAIN = ("A", 1.0, {True: 0.9, False: 0.5})
c = MarkovChain(CHAIN)
print "stationary distribution: P(A) = %.4f" % c.stationary_distribution(True)
print "stationary distribution: P(B) = %.4f" % c.stationary_distribution(False)

print "\n=== Homework 6.3 ==="
MODEL = ("A", 0.5, {True: 0.5, False: 0.5}, "X", {True: 0.1, False: 0.8})
m = MarkovModel(MODEL)
m.p({"A0": True}, {"X0": True})
m.p({"A1": True}, {"X0": True})
m.p({"A1": True}, {"X0": True, "X1": True})

print "\n=== Homework 6.11 ==="
from Game.game import Game
HW6_11 = {
    "players": (("B", "d", "e", "f"), ("A", "a", "b", "c")),
    "matrix": (
        ((3, 3), (5, 0), (2, 1)),
        ((2, 4), (7, 8), (4, 6)),
        ((7, 5), (8, 5), (5, 3)),
    )
}
g = Game(HW6_11)
print "Dominant strategy for A: %s" % g.dominant_strategy("A")
print "Dominant strategy for B: %s" % g.dominant_strategy("B")
print "Equilibrium Points: %s" % str(g.equilibrium())