Beispiel #1
0
    def test_reset(self):
        geladenes_spielfeld_obj = Spielfeld(
            spielfeld=self.befuelltes_spielfeld)
        geladenes_spielfeld_obj.reset()

        self.assertEqual(geladenes_spielfeld_obj.spielfeld,
                         self.leeres_spielfeld)
    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)
Beispiel #3
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)
Beispiel #4
0
    def test_setter_getter(self):
        spielfeld_obj = Spielfeld()

        self.assertEqual(spielfeld_obj.spielfeld, self.leeres_spielfeld)

        spielfeld_obj.spielfeld = self.befuelltes_spielfeld
        get_spielfeld = spielfeld_obj.spielfeld

        self.assertEqual(get_spielfeld, self.befuelltes_spielfeld)
        self.assertNotEqual(get_spielfeld, self.leeres_spielfeld)
Beispiel #5
0
    def test_konstruktoren(self):
        leeres_spielfeld_obj = Spielfeld()
        geladenes_spielfeld_obj = Spielfeld(
            spielfeld=self.befuelltes_spielfeld)
        kurzes_spielfeld_obj = Spielfeld(dimension=2)

        self.assertEqual(leeres_spielfeld_obj.spielfeld, self.leeres_spielfeld)
        self.assertEqual(geladenes_spielfeld_obj.spielfeld,
                         self.befuelltes_spielfeld)
        self.assertEqual(kurzes_spielfeld_obj.spielfeld, self.kurzes_spielfeld)
    def test_konstruktoren(self):
        name = "Name"
        spielfeld = Spielfeld()
        spielfeld_gegner = Spielfeld()
        punkte = 200

        spieler = Spieler(name, spielfeld, spielfeld_gegner, punkte)

        self.assertEqual(spieler.name, name)
        self.assertEqual(spieler.spielfeld, spielfeld)
        self.assertEqual(spieler.spielfeld_gegner, spielfeld_gegner)
        self.assertEqual(spieler.punkte, punkte)
    def test_add_punkt(self):
        punkt_add = 10
        test_spieler = Spieler("TestName", Spielfeld(), Spielfeld(), 0)

        aktuelle_punkte = test_spieler.punkte
        test_spieler.add_punkt()

        self.assertEqual(aktuelle_punkte + 1, test_spieler.punkte)

        aktuelle_punkte = test_spieler.punkte
        test_spieler.add_punkt(punkt_add)

        self.assertEqual(aktuelle_punkte + punkt_add, test_spieler.punkte)
Beispiel #8
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)
Beispiel #10
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)
    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)
Beispiel #12
0
    def test_alle_schiffe_zerstoert(self):
        befuelltes_spielfeld_obj = Spielfeld(
            spielfeld=self.befuelltes_spielfeld)
        leeres_spielfeld_obj = Spielfeld()

        self.assertEqual(befuelltes_spielfeld_obj.alle_schiffe_zerstoert(),
                         False)
        self.assertEqual(leeres_spielfeld_obj.alle_schiffe_zerstoert(), True)
Beispiel #13
0
    def test_spielen_letzter_schuss(self):
        master = Master()
        spieler_1 = self.spieler_1
        master.aktueller_spieler = spieler_1
        spieler_2 = Spieler("Test2", self.befuelltes_spielfeld_letzter_schuss,
                            Spielfeld(), 0)
        master.aktueller_gegner = spieler_2
        master.print_spielfeld(spieler_1.spielfeld)

        with patch('sys.stdin', new=StringIO("A1")):
            with patch('sys.stdout', new=StringIO()) as fake_out:
                master.spielen()
                self.assertEqual(master.ist_spiel_vorbei, True)
                ist_drin = False
                if "Glueckwunsch!" in fake_out.getvalue():
                    ist_drin = True
                self.assertEqual(ist_drin, True)
Beispiel #14
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)
Beispiel #15
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()