Exemple #1
0
 def test_platziere_schiffe(self):
     spielfeld: Spielfeld = Spielfeld()
     self.master.platziere_schiff(spielfeld, Schiff("Schlachtschiff", 5),
                                  Koordinate("A", 1, Richtung.SUEDEN))
     with patch('sys.stdout', new=StringIO()) as fake_out:
         self.master.print_spielfeld(spielfeld)
         count_schiffe = fake_out.getvalue().count('#')
         self.assertEqual(count_schiffe, 5)
Exemple #2
0
    def test_koordinaten(self):
        x_A = "A"
        x_1 = 1

        y_A = "A"
        y_1 = 1

        koordinate_x_string = Koordinate(x_A, y_1)
        koordinate_x_int = Koordinate(x_1, y_1)
        koordinate_y_string = Koordinate(x_1, y_A)
        koordinate_x_y_string = Koordinate(x_A, y_A)

        self.assertEqual(koordinate_x_string.x_position, 0)
        self.assertEqual(koordinate_x_string.y_position, 0)

        self.assertEqual(koordinate_x_int.x_position, 0)
        self.assertEqual(koordinate_x_int.y_position, 0)

        self.assertEqual(koordinate_y_string.x_position, 0)
        self.assertEqual(koordinate_y_string.y_position, 0)

        self.assertEqual(koordinate_x_y_string.x_position, 0)
        self.assertEqual(koordinate_x_y_string.y_position, 0)

        koordinate_mit_richtung = Koordinate(x_1, y_1, Richtung.NORDEN)
        self.assertEqual(koordinate_mit_richtung.richtung, Richtung.NORDEN)

        koordinate_mit_richtung.richtung = Richtung.SUEDEN
        self.assertEqual(koordinate_mit_richtung.richtung, Richtung.SUEDEN)
    def test_is_tot(self):
        test_spieler = Spieler("TestName", Spielfeld(), Spielfeld(), 0)

        #Spielfeld von vorne rein Leer - somit kein Schiff mehr vorhanden -> tot
        self.assertEqual(test_spieler.is_tot(), True)

        test_spieler.update_spielfeld(Koordinate(1, 1), Status.SCHIFF)

        self.assertEqual(test_spieler.is_tot(), False)
Exemple #4
0
    def test_set_feld(self):
        spielfeld_obj = Spielfeld()
        statusse = list(Status)

        for y in range(1, 11):
            for x in range(1, 11):
                status = random.choice(statusse)
                position = Koordinate(x, y)
                spielfeld_obj.set_feld(status, position)
                self.assertEqual(spielfeld_obj.spielfeld[x - 1][y - 1], status)
Exemple #5
0
    def test_get_status_bei(self):
        spielfeld_obj = Spielfeld()
        statusse = list(Status)

        for y in range(1, 11):
            for x in range(1, 11):
                koordinate = Koordinate(x, y)

                status = random.choice(statusse)

                spielfeld_obj.spielfeld[x - 1][y - 1] = status
                spielfeld_status = spielfeld_obj.get_status_bei(koordinate)

                self.assertEqual(status, spielfeld_status)
    def test_update_spielfeld(self):
        statusse = list(Status)
        test_spieler = Spieler("TestName", Spielfeld(), Spielfeld(), 0)

        for y in range(1, 11):
            for x in range(1, 11):
                koordinate = Koordinate(x, y)
                status = random.choice(statusse)

                test_spieler.update_spielfeld(koordinate, status)
                status_spielfeld = test_spieler.spielfeld.get_status_bei(
                    koordinate)

                self.assertEqual(status, status_spielfeld)
    def test_wird_abgeschossen(self):
        statusse = list(Status)
        test_spieler = Spieler("TestName", Spielfeld(), Spielfeld(), 0)

        for y in range(1, 11):
            for x in range(1, 11):
                koordinate = Koordinate(x, y)
                status = random.choice(statusse)

                test_spieler.update_spielfeld(koordinate, status)

                if status == Status.SCHIFF:
                    return_schuss = test_spieler.wird_abgeschossen(koordinate)

                    self.assertEqual(return_schuss, Status.TREFFER)

                else:
                    return_schuss = test_spieler.wird_abgeschossen(koordinate)

                    self.assertEqual(return_schuss, status)
Exemple #8
0
    def test_plaziere_schiff(self):

        spielfeld_obj = Spielfeld()
        schiff = Schiff("U-Boot", 2)

        spielfeld_mit_plaziertem_schiff_sueden = [
            [
                Status.SCHIFF, Status.SCHIFF, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ]
        ]

        spielfeld_mit_plaziertem_schiff_osten = [
            [
                Status.SCHIFF, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.SCHIFF, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ]
        ]

        koordinate = Koordinate(1, 1, Richtung.SUEDEN)  # index [0][0] sueden
        spielfeld_obj.plaziere_schiff(koordinate, schiff)
        self.assertEqual(spielfeld_obj.spielfeld,
                         spielfeld_mit_plaziertem_schiff_sueden)

        spielfeld_obj.reset()

        koordinate = Koordinate(1, 1, Richtung.OSTEN)  # index [0][0] osten
        spielfeld_obj.plaziere_schiff(koordinate, schiff)
        self.assertEqual(spielfeld_obj.spielfeld,
                         spielfeld_mit_plaziertem_schiff_osten)

        spielfeld_obj.reset()

        koordinate = Koordinate(1, 1, Richtung.NORDEN)  # index [0][0] norden
        self.assertRaises(IndexError, spielfeld_obj.plaziere_schiff,
                          koordinate, schiff)

        koordinate = Koordinate(1, 1, Richtung.WESTEN)  # index [0][0] westen
        self.assertRaises(IndexError, spielfeld_obj.plaziere_schiff,
                          koordinate, schiff)

        koordinate = Koordinate(12, 1, Richtung.NORDEN)  # index fehlerhaft
        self.assertRaises(IndexError, spielfeld_obj.plaziere_schiff,
                          koordinate, schiff)

        koordinate = Koordinate("Z", 1, Richtung.NORDEN)  # index fehlerhaft
        self.assertRaises(IndexError, spielfeld_obj.plaziere_schiff,
                          koordinate, schiff)

        spielfeld_obj_befuellt = Spielfeld(spielfeld=self.befuelltes_spielfeld)
        koordinate_befuellt = Koordinate(4, 8,
                                         Richtung.NORDEN)  # index[3][7] norden

        self.assertRaises(IndexError, spielfeld_obj_befuellt.plaziere_schiff,
                          koordinate_befuellt, schiff)
Exemple #9
0
    def setUp(self) -> None:
        self.master = Master()
        self.befuelltes_spielfeld_list = [
            [
                Status.SCHIFF, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.SCHIFF, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.SCHIFF, Status.WASSER, Status.TREFFER, Status.SCHIFF,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.SCHIFF, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.SCHIFF, Status.SCHIFF, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.SCHIFF, Status.TREFFER,
                Status.SCHIFF, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.SCHIFF, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.SCHIFF, Status.WASSER
            ],
            [
                Status.DANEBEN, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.SCHIFF, Status.SCHIFF, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ]
        ]

        self.befuelltes_spielfeld_letzter_schuss_list = [
            [
                Status.SCHIFF, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ],
            [
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER,
                Status.WASSER, Status.WASSER
            ]
        ]

        self.befuelltes_spielfeld = Spielfeld(
            spielfeld=self.befuelltes_spielfeld_list)
        self.befuelltes_spielfeld_letzter_schuss = Spielfeld(
            spielfeld=self.befuelltes_spielfeld_letzter_schuss_list)
        self.spieler_1 = Spieler("Test1", self.befuelltes_spielfeld,
                                 Spielfeld(), 0)
        self.master.aktueller_spieler = self.spieler_1
        self.master.spieler_1 = self.spieler_1
        self.spieler_2 = Spieler("Test2", self.befuelltes_spielfeld,
                                 Spielfeld(), 0)
        self.master.spieler_2 = self.spieler_2
        self.master.aktueller_gegner = self.spieler_2
        self.test_get_user_input_koordinate = Koordinate('A', 10)
        self.test_ungueltige_koordinate = Koordinate('A', 12)
        self.test_koordinate_treffer = Koordinate('A', 1)
        self.test_koordinate_daneben = Koordinate('E', 1)
        return super().setUp()