Warum werden in diesem Code Klassen verwendet?

Also was für einen Vorteil hat das?:

Der Code ist für ein Tic-Tac-Toe-Spiel

class Board():
    def __init__(self):
        self.state = [0, 0, 0, 0, 0, 0, 0, 0, 0]

    def make_turn(self, cell, player):
        if self.is_valid_turn(cell):
            self.state[cell] = player.symbol
            return True
        return False

    def is_valid_turn(self, cell):
        if self.state[cell] == 0:
            return True
        else:
            return False

    def check_win(self, player):
        s = player.symbol
        if self.state[0] == s and self.state[1] == s and self.state[2] == s:
            return True
        elif self.state[3] == s and self.state[4] == s and self.state[5] == s:
            return True
        elif self.state[6] == s and self.state[7] == s and self.state[8] == s:
            return True

        elif self.state[0] == s and self.state[3] == s and self.state[6] == s:
            return True
        elif self.state[1] == s and self.state[4] == s and self.state[7] == s:
            return True
        elif self.state[2] == s and self.state[5] == s and self.state[8] == s:
            return True

        elif self.state[0] == s and self.state[4] == s and self.state[8] == s:
            return True
        elif self.state[2] == s and self.state[4] == s and self.state[6] == s:
            return True

    def is_full(self):
        for i in self.state:
            if i == 0:
                return False
        return True

    def sign_to_printable(self, sign):
        if sign == 0:
            return " "
        elif sign == 1:
            return "X"
        else:
            return "O"

    def print_board(self):
        print(" " + self.sign_to_printable(self.state[0]) + " | " + self.sign_to_printable(self.state[1]) + " | " + self.sign_to_printable(self.state[2]) + " \n" +
              " " + self.sign_to_printable(self.state[3]) + " | " + self.sign_to_printable(self.state[4]) + " | " + self.sign_to_printable(self.state[5]) + " \n" +
              " " + self.sign_to_printable(self.state[6]) + " | " + self.sign_to_printable(self.state[7]) + " | " + self.sign_to_printable(self.state[8]) + " \n")


class Player:
    def __init__(self, symbol):
        self.symbol = symbol


if __name__ == '__main__':
    player_a = Player(1)
    player_b = Player(-1)
    board = Board()
    active_player = player_a
    while not board.is_full():
        board.print_board()
        try:
            cell = int(input("Where do you want to place your sign? [1-9]"))
        except ValueError:
            continue
        cell = cell - 1
        if cell < 0 or cell > 8:
            print("Please enter a number between 1 and 9")
            continue
        if not board.make_turn(cell, active_player):
            print("Invalid Move")
            continue

        if board.check_win(active_player):
            print("You wonnered! GW.")
            break

        if …
IT, programmieren, Informatik, Programmiersprache, Python, Instanz, Python 3, Objektorientierte Programmierung
Habt ihr schon mal einen Cluster im Netzwerk als ein hyperkonvergentes System verwendet?

Falls ja, wie seit ihr dabei vorgegangen?

Mal angenommen, man hat 3 physische Server, die man als Cluster verwenden möchte.

Alle Server werden zuerst mit Windows Server 2019 Datacenter installiert.

Danach bekommt jeder Server seine eigene IP-Adresse und Namen.

Server 1 IP: 172.16.135.242/19 Name: hpv001ml

Server 2 IP: 172.16.135.243/19 Name: hpv002ml

Server 3 IP: 172.16.135.244/19 Name: hpv003ml

Die bereits vorhandene DC-Infrastruktur hat die IP 172.16.135.240/19 und den Computernamen wdc001ml-inf.

Soweit befindet sich alles im gleichen Netzwerk.

Als nächstes werden die benötigten Rollen für die Server im Manager hinzugefügt. Also DNS, Hyper-V, Failoverclustering und die Rolle für Datendeduplizierung.

Die Server werden danach der bereits vorhandenen Domäne hinzugefügt.

Bsp Domäne: migratec.local-inf.de mit der IP 172.16.135.240

Die FQDN wäre demnach bei dem ersten Server: hpv001.migratec.local-inf.de

Danach werden die einzelnen Nodes, also hpv001, hpv002, hpv003 mit Failoverclustering als Cluster zusammen verbunden. Unser DC wird mit Clusterquorum als Zeuge festgelegt. Damit im Falle eines Serverausfalls im Cluster immer eine Mehrheit gebildet werden kann und somit die Daten oder Workloads von den aktiven Nodes übernommen werden. Bei einem Cluster mit 3 Nodes hätte man immerhin eine zweifach Redundanz.

Mit dem PowerShell Befehl Enable-ClusterStorageSpacesDirect wird S2D (Storage Spaces Direct) auf dem Cluster aktiviert um damit alle Direktspeicherplätze hinzuzufügen. Das wären pro Server 10 x 2,8 TB SSDs und insgesamt 84TB im Pool. Wegen der Nested Resiliency sind davon jedoch nur 28 TB nutzbar.

Der neu erstellte Cluster ist unter der IP 172.16.135.241 erreichbar und hat den Namen wdc002ml-inf. Zusätzlich wird auf dem neuen Cluster noch Hyper-V und ein neuer DC für die virtuellen Server erstellt.

Danach werden alle vorhandenen virtuellen Server, insgesamt 54, auf den Cluster migriert und auch der neuen Domäne vm.local-inf.de hinzugefügt.

Zum Schluss wird der Cluster noch im Windows Admin Center hinzugefügt und mit Microsoft Azure verbunden, um damit alle Daten, die nicht aktiv benötigt werden, in eine Cloud zu verschieben.

Nein 78%
Ja 22%
Computer, Internet, Lernen, Studium, Schule, Technik, Wissenschaft, Forschung, Informatik, Technologie, Universität, Verwaltung, Abstimmung, Umfrage
Welche Fähigkeiten benötigt man eurer Meinung nach, um ein Universum zu erschaffen?

Da ich selbst davon überzeugt bin, dass alles im Universum erschaffen wurde, habe ich mir schon oft darüber Gedanken gemacht, mit welchen Fähigkeiten man alles erschaffen kann, was einem einfällt.

Energie wäre für mich das Erste, was man dafür benötigt, da man damit so ziemlich alles erschaffen kann, was es gibt. Elemente, Materie, Leben usw.

Zusätzlich müsste man auch ein Regelwerk einführen, um ein Universum im Hintergrund am Laufen zu halten. Ohne die Quantenmechanik, auf der die gesamte materielle Welt aufbaut, würde auch hier nichts funktionieren.

Deswegen ist es auch logisch, dass man für fast alles Gesetze benötigt, die letztendlich bestimmen, was in einer materiellen Welt möglich ist und was nicht.

Ohne Regeln würde noch nicht mal so etwas wie die Evolution Sinn ergeben, da diese wie alles andere auch von Regeln abhängig ist.

Für mich wäre es auch wichtig, dass Zeit keine Rolle spielt und man durch seine Eigenschaft mit allem verbunden ist, was existiert. Da man mit Energie alles erschaffen kann, könnte man damit auch jedes Atom beeinflussen, da diese schließlich zu 99,9% aus Energie bestehen und zu 0,1 % aus Materie. Es ist kein Zufall, dass man Informationen in Form von Energie übertragen kann. Die Realität wird ebenso durch elektrische Signale von dem eigenen Verstand interpretiert. Innerhalb eines Systems muss schließlich alles miteinander verbunden und kompatibel sein.

Es versteht sich von selbst, dass sowas nur möglich ist, wenn die eigene Beschaffenheit keiner materiellen Natur entspricht. Das Sichtbare wird hier aus dem Unsichtbaren erschaffen, denn aus dem Nichts kommt die Materie und nicht umgekehrt. 

Wenn man nicht an die Zeit gebunden ist und man dabei zusätzlich das Trial-and-Error Prinzip berücksichtigt, hätte man demnach unendlich viel Möglichkeiten und Versuche bis man etwas perfektioniert hat. Die Rechenleistung übersteigt dabei alles, was ein Mensch sich vorstellen kann. Es wird aber noch besser, in dem Moment, wo man sich Gedanken über ein neues Werk macht, weiß man auch schon, wie man es erschaffen wird, weil man den Vorgang schon Milliardenfach überlegt und durchgerechnet hat, ohne dabei auch nur eine Sekunde zu verlieren. Da wir nie mitgekriegt haben, wie es ist, ohne Zeit zu leben, können wir uns sowas und vieles andere auch nicht vorstellen.

Bis zu diesem Punkt hat man bereits ein funktionierendes Universum im Sinn erschaffen, obwohl es noch nicht mal existiert. Danach müsste man nur noch den Prozess ausführen und abwarten bis sich alles so entwickelt, wie man es erwartet hat. Abweichungen während der Entwicklungsphase kann es nur dann geben, wenn man es auch möchte oder zulässt. Obwohl man den Verlauf und alle möglichen Abweichungen schon mehrfach erlebt hat, wäre es ja auch mal interessant etwas nicht zu wissen, bevor es zur Realität wird. Man kann sich ja dann überlegen, an welchen Stellen der Entwicklung man die Spoiler rausnimmt, um dem Lauf der Dinge gemütlich zuzusehen.

Mathematik, Wissenschaft, Entwicklung, Forschung, Glaube, Informatik, Physik, Quantenmechanik, Fähigkeiten, erschaffen, Philosophie und Gesellschaft
Kann mir jemand bei einer Berechnung helfen (Bluttransfusion)?

Hallo,

ich war leider noch nie gut in Mathe und die Schule ist schon länger her. 

Könnte mir jemand etwas berechnen?

Und zwar geht es um Katze A als Spendertier und Katze B als Empfängertier bei einer Bluttransfusion.

Bei Katze A können 25 ml Blut entnommen werden. 

(Ist das richtig berechnet? Katze A wiegt 3,9 kg. Das Gesamtblutvolumen einer Katze beträgt 66 ml/kg. 10% des Gesamtblutvolumens kann abgenommen werden.)

Die Formel zur Berechnung der benötigten Blutmenge, um den Hämatokrit bei einer Empfängerkatze um einen bestimmten Faktor zu erhöhen, lautet:

Vollblut in ml/Transfusionsmenge = gewünschte Hämatokrit-Erhöhung beim Empfänger x kg Körpergewicht Empfänger x 2

Der Hämatokrit von Katze B liegt bei 11,9 und soll z.B. auf 15 oder mehr erhöht werden.

Das Körpergewicht von Katze B beträgt 3,9 kg.

Wie kann ich jetzt ausrechnen um wieviel die 25 ml von Katze A den Hämatokrit von Katze B erhöhen würden?

Vielleicht kann mir jemand sagen, um wieviel der Hämatokrit von Katze B bei 25 ml von Katze A steigen würde?

Und wieviel ml Transfusionsblut Katze B generell braucht, um ihren Hämatokrit um jeweils eins zu erhöhen?

Das würde mir dabei helfen, abzuschätzen, ob es sinnvoll ist, Katze A einer Blutspende überhaupt auszusetzen. 

Medizin, Tiere, Mathematik, Rechnung, Chemie, rechnen, Katze, Tiermedizin, Wissenschaft, Biologie, Berechnung, Informatik, Logik, Naturwissenschaft, Physik, Bluttransfusion, Mathelehrer
Wie kann ich glfw C++ richtig installieren?

Hallo Leute,

ich programmiere schon eine Weile in C++ aber bisher immer mit Clion weil ich mit Visual Studio einfach nicht zurecht komme. Immer wieder wurde ich von irgendwelchen Fehlermeldungen geplagt und fand wochenlang keine Lösung, bis ich es dann irgendwann aufgab.

Umsteigen wollte ich eigentlich nur, um Third-Party Libraries wie glfw nutzen zu können, aktuell benutze ich nur mingw und kompiliere mit g++.exe ohne irgendwelche drittanbieter-Bibliotheken, weil ich es nie richtig hinbekomme, sie einzubinden.

Selbst wenn ich wie vorgegeben vorging, kam es zu unermütlichen Fehlermeldungen. Deshalb habe ich bis jetzt immer nur auf header onlys zurückgegriffen, merke aber gerade, dass ich ohne glfw nicht weiter komme.

Am liebsten würde ich verstehen, wie ich die Bibliothek richtig einbinde, sodass ich weiterhin mit g++ selbst kompiliere. Ich habe dann schon alle möglichen include Dateien in mingw geworfen und so weiter, aber jedes Mal erfolglos. Als ich das mal in Visual Studio probiert habe, kam es schon beim Startelement zu Problemen weil ich immer irgend einen Fehler mit dem Kompilieren und Ausführen mit Visual habe. Auch Bibliotheken ließen sich nicht ohne Fehlermeldungen installieren.

Ich muss aber jetzt in die gui programmierung einsteigen und habe glfw vorgegeben. Ich muss aber zugeben, dass ich wohl bei der Installation von solchen Bibliotheken ein absoluter Laie bin..

Kann mir jemand helfen, das zum Laufen zu bringen?

Stellt mir doch bitte gerne gezielte Rückfragen, was ihr genau noch wissen wollt, um meine Probleme zu verstehen.

Vielen Dank im Voraus!

Lukas Zander

IT, Cplusplus, CPP, Informatik, Programmiersprache
Inwiefern macht das Upgrade zur 40er Serie zurzeit Sinn?

Kurze Frage zu den neuen 40er Karten von NVIDIA, ich spiel aktuell ziemlich viele Spiele unter anderem auch viele die viel Leistung erfordern und so langsam kommt mein Rechner an seine Grenzen. Es ist ein selbst erstellter Rechner mit einer RTX3060ti und so allmählich fühl ich mich eingeschränkt was die Leistung betrifft und würde gerne was Neues ranholen. Zwischen der RTX4070 und der RTX4070ti liegen glaube ich über 25% leistungsunterschied und 200€ preisunterschied. 899€ für eine RTX4070ti finde ich persönlich viel zu teuer, das ist ja mehr als ich vor einem Jahr für die RTX3070ti zahlen müsste, als die Preise so exorbitant hoch gewesen sind wegen der extrem hohen Nachfrage.

Ich hab meine 3060ti zum Beispiel zu der Zeit für 499€ bekommen und das hat sich schon viel angefühlt - zumindest für eine Grafikkarte der unteren Schicht. Aber damals hatte ich ja noch keine Grafikkarte, jetzt könnte ich meine noch zu einen relativ anständigen Preis verkaufen und den hohen Preis der 4070 oder 4070ti etwas kompensieren.

Und jetzt zu meiner eigentlich Frage: Ich würde meine Grafikkarte so oder so verkaufen, wenn ich mir eine Neue anschaffen würde, da ich keine weitere Nutzung für sie sehe, aber wie sehr lohnt sich ein Upgrade heute zu der nächsten Generation? Ich spreche jetzt nur vom preislichen Aspekt, ich bin mir sicher die Preise würden in 1 Jahr oder mehr deutlich zurückgehen, aber in einem Jahr hätte ich meine aktuelle Grafikkarte auch 1 Jahr mehr genutzt und würde dementsprechend weniger für sie bekommen. Jetzt ist die Frage, wie weit würde der Preis meiner Grafikkarte innerhalb dieses Jahres zurückgehen und wie weit würden die 40er Serien vom Preis sich zurückentwickeln, wenn sie es überhaupt tun werden? Wenn ich in einem Jahr 100€ weniger für meine Grafikkarte bekommen würde und 150€ weniger für die 40er Grafikkarten zahlen müsste, würde es mich eher weniger stören jetzt eine zu kaufen, aber wenn die Karten in einem Jahr ca. 200-300€ zurückgehen auf 500-600€ für die 4070ti oder 300-400€ für die 4070, dann würde ich natürlich noch warten.

PC, GPU, IT, Gaming, AMD, FPS, Gaming PC, Informatik, Nvidia, Nvidia GeForce, zocken, AMD Radeon, Nvidia GeForce RTX, RTX 4000

Meistgelesene Fragen zum Thema Informatik