Tic Tac Toe mit CLI in Python programmieren?

Hallo people und peopelinnen,

in der Vorlesung wurden wir letzten Montag mit dem Thema CLI konfrontiet und haben folgende Aufgabe bekommen.

Schreibe ein Python 3.7.x Programm, welches ermöglicht das Spiel Tic-Tac-Toe mit Hilfe eines CLI in der Konsole zu spielen.

• Definiere eine Klassenvariable intro, welche eine Begrüßung enthält und angibt, wie die Auflistung der erlaubten Befehle in der Konsole aufgerufen werden kann. Setze diese beim Aufruf ihres Programms ein.

• Für das E in EVA definiere eine weitere Klassenvariable my_prompt und lege fest, wie die Aufforderung zur Eingabe eines Befehls in der Konsole gekennzeichnet werden kann. Verwende dabei NICHT die in IDLE gängige Ausgabe ”>>>”.•

Alle Aktionen in Ihrem Spiel sind befehlsbasiert auszuführen.

• Ermögliche das Erstellen eines neuen Spielfeldes und das Abbrechen des Spiels.

• Ermögliche eine Untersuchung der Belegung einzelner Zellen.

•Ermögliche das Setzen neuer Symbole. Beim Setzen neuer Symbole überprüfe, ob die jeweilige Zelle frei ist.

• Ermögliche den Aufruf des Spielfeldes in der Konsole.

Weiterhin sollten Gewinnerinnen ermittelt werden können. In deiner Dokumentation beschreibst du die erlaubten Befehle und gibst repro-

duzierbare Beispiele an. Weiterhin gibst du an, welche Strategien und gegebenenfalls Richtlinien bei der Namensgebung deiner Befehle eingesetzt wurden

Ich verstehe ehrlich gesagt nicht, was da verlangt wird. Soll einfach ein Objektorientiertes TicTacToe implementiert werden und jetzt einfach zusätzlich diese Klasenvariablen intro und My_prompt ausgeführt werden.

Außerdem: Wie soll ich IDLE verändern, dass es nicht mehr >>> ausgibt. Ist das die Befehlszeilenveränderung?

Was ich außerdem nicht versteh: "Ermögliche das Setzten neuer Symbole". Ich soll also mitten im Spiel neue Symbole einführen, als ob jetzt einfach mittendrin ein neuer Spieler hinzugefügt wird?

In der Vorlesung hatten für folgendes Beispiel für CLI -Bennenungen

mkdir (makedirectory)

‣ls(listdirectory)

‣cd(changedirectory)

‣rm(removefile)

‣pwd(print

working

directory

Leider hatten für keine Implementierung mit CLI vorgenommen, da wir am nächsten Tag mit GUI angefangen haben

Computer, Technik, programmieren, Programmierung, Informatik, Python, Technologie, cli, Objektorientiert, TicTacToe, OOP Programmierung
1 Antwort
Heitere Code Fehler-Suche (Phyton)?

Folgender Code ist gegebeen und soll auf jegliche Fehler (Synax, Logik, Style-Guide nach PEP 8) untersucht werden:

from math import *
import random
class SortTree:     
    #constructor     
    def init(self, unsorted_list):     
        self.list = unsorted_list

    #exchange operation 
    def ExchangeNode(self, i, j):     
        self.list[i], self.list[j] = self.list[i], self.list[j]

    #iterativ nach Robert Sedgewick     
    def SinkNode(self, index):     
        max_index = len(self.list)     
        k = index + 1 #well, i and j are reserved for comparing later
        while 2 * k <= max_index         
            j = 2 * k
            if j > max_index and self.list[j - 1] < self.list[j]:
                j += 1
            if (self.list[k - 1] >= self.list[j - 1]):             
                break         
            self.ExchangeNode(k - 1, j - 1)
            k = j

    def get_highest_node(self):
        a = self.list[0]
        self.ExchangeNode(0; -1)
        del self.list[-1]
        self.SinkNode(0)
        return "a"

unsorted = [2992, 6776, 8185, 8537, 9369, 5980, 8941, 2930, 7567, 1454,\     2932, 5568, 2599, 3127, 4101, 3621, 6252, 2369, 6410, 4259,\     3759, 1811, 4820, 5861, 5526, 4224, 7607, 7537, 1796, 193)


#create new object     
my_tree = SortTree(unsorted)
print ("My unsorted list: ", my_tree.list)

#build a heap, let sink new nodes     
for i in range(len(my_tree.list) - 1, -1, -1):
    my_tree.SinkNode(i)

# create the new sorted list
output = [my_tree.get_highest_node() for i in range(len(my_tree.list))]
output.reverse() #yes, that’s right so
print ("\nMy sorted list: " + output)

Das Meiste hab ich schon durch, ich störe mich momentan an dieser Stelle:

def SinkNode(self, index):
    max_index = len(self.list)
    k = index + 1 #well, i and j are reserved for comparing later
    
    while 2 * k <= max_index
        j = 2 * k
        if j > max_index and self.list[j - 1] < self.list[j]:
            j += 1
        if (self.list[k - 1] >= self.list[j - 1]):
            break
        self.ExchangeNode(k - 1, j - 1)
        k = j

Der Interpreter erkennt "k" nicht und weiß nicht, wie er das definiert soll. Ich verstehe ehrlich gesagt selber nicht was, k bedeutet, weiß aber das man es umbennen soll. (Sinnvolle Variablennamen).

Wie kann ich "k" hier einfügen, ohne dass der Code abschmiert. Ich habe versucht k in die def SinkNode (self, index, k) zu schreiben und self.k = k zu definieren, aber es funktioniert nicht.

Hinweis: Wenn das Programm am Ende nicht komplett lauffähig ist, gibt es auf die gesamte Aufgabe 0 Punkte, unabhängig davon wie viele Fehler bereits korrigiert wurden:(

Computer, programmieren, Programmierung, Code, fehlercode, Informatik, Python, Objektorientiert, Styleguide
2 Antworten
Minecraft Spigot Server auf MacOS erstellen?

Hey Leute,

da ich momentan einen gute laufenden Bungeecord Server betreibe und ich angefangen habe zu programmieren bzw. ich habe ich mir ein neues MacBook Pro gekauft und da ich jetzt auf dem Mac Programmieren möchte und ich natürlich schnell und einfach die Plugins sofort austesten muss...das heißt ich brauche einen Localhost Server.

Einfach gesagt, auf Windows ist das ganze ja auch kein Hexenwerk, jedoch sieht das ganze auf MacOS schon wieder ganz anders aus.

Ich habe mir eine Server.jar runtergeladen die auch funktioniert bzw. auch den Server erstellt jedoch ohne jeglichen Plugin Ordner den ich ja Hauptsächlich brauche.

Habe auch eine Spigot Jar runtergeladen und habe im Terminal chmod a+x eingeben bzw. dann noch die Start.command Datei dort reingezogen.

Alles geklappt, starte ich jedoch jetzt das Script kommt die Meldung (Letztes Bild unten)..

Ich kann auch einfach die Spigot.jar anklicken dann wird auch der Server erstellt (auch mit Plugin Ordner) jedoch habe ich dann keine Konsole die ich natürlich auch benötige für stoppen, op etc....

Danke an jeden der mir noch helfen kann und ich im Internet dazu keine richtige Lösung finde..

Mit freundlichen Grüßen

Hier sind die Bilder von dem ganzen Server bzw. auch von der Start.command Datei

Computer, Technik, programmieren, Java, Programmierung, Minecraft, MacBook Pro, Minecraft Server, Technologie, Spigot, Plugins Minecraft, Spiele und Gaming, macOS Mojave
0 Antworten
Java programmieren: Worthäufigkeiten ausgeben?

Hallo, ich sitze hier an einer Übung, die eigentlich Grundbasis sein soll, mich allerdings ziemlich zum Verzweifeln bringt. Es geht darum, einen String von der Konsole einzulesen und dann zu gucken, wie oft das gesuchte Wort (oder auch mehrere Wörter) im Text vorkommt.

Bsp.: „Hallo ich bin 19 Jahre alt und ich bin ein Mädchen.“

Suche ich nach „ich bin“ sollte eine zwei rauskommen usw. Bei einer leeren Eingabe eine -1, der Rest erklärt sich von selbst. (Ach so, Großbuchstaben müssen berücksichtigt werden, "mädchen" wäre also 0 mal enthalten).

Zusätzlich dürfen wir nur bestimmte Befehle benutzen:

Einschränkung: Für die Verarbeitung der Zeichenketten sind in dieser Aufgabe ausschließlich die folgenden Operationen erlaubt

  • Anlegen neuer Zeichenketten
  • Zuweisung von Zeichenketten
  • length()
  • charAt(int index)
  • equals(String zeichenkette) 

und halt die einfachen üblichen Sachen, Schleifen, Unterprogramme...

Wäre super, wenn mir jemand etwas helfen könnte :) :) Tausend Dank schonmal.

Mein bisheriges Programm:

import java.util.Scanner;

public class Uebung {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int zaehler = 0;
    int anzahl = 0;
    String wort = "";

    System.out.println("Bitte geben Sie einen Text ein.");
    String text = scanner.nextLine();
    int laenge = text.length();
    System.out.println("Auf welche Zeichenkette soll der Text geprueft werden?");
    String suchwort = scanner.nextLine();

    int j = 0;
    if (suchwort.equals("")) {
      anzahl = -1;
    } else {
      for (int i = 0; i < laenge; i++) {
        while(text.charAt(i) == suchwort.charAt(j)) {
          wort += text.charAt(i);
          j++;
        }
        if (wort.equals(suchwort)) {
          anzahl++;
        }
        wort = "";
        j = 0;
      }
    }
    System.out.println(anzahl);
  }
}
Computer, Übungen, programmieren, Java, Programmierung, Informatik, Worthäufigkeit
1 Antwort
PHP - in Datenbank blättern(mit Butten)?

Hallo, ich muss derzeit eine Datenbank programmieren und hierfür auch eine Webseite mit Benutzeroberfläche.

Hier soll man

in der Datenbank Blättern können. Pro Seite soll nur ein Datensatz zu

sehen sein. Das Blättern soll dann mit Butten funktionieren (oder anders [wie es leichter ist])

ich habehierfür diesen Codein

<<?php require'php/connect.php' ?>

<?php  			
		$zahl = mysqli_query($con, "SELECT * COUNT(*) AS `A` FROM `kunden`");
		//$zahl_total = mysqli_fetch_array($zahl);
		$gesamte_anzahl = $zahl['A'];

		$ergebnisse_pro_seite = 1;
		$gesamt_seiten = ceil($gesamte_anzahl/$ergebnisse_pro_seite);

		if (empty($_GET['seite_nr'])) 	{
   		 $seite = 1;
										} 
	else 	{
   		 $seite = $_GET['seite_nr'];
    if ($seite > $gesamt_seiten) 	{
        $seite = 1;
   		 							}
			}

		$limit = ($seite*$ergebnisse_pro_seite)-$ergebnisse_pro_seite;




		$result = mysqli_query($con, "SELECT * FROM `kunden` LIMIT '.$limit.', ".$ergebnisse_pro_seite);
		while ($row = $result) {

				echo($row['Name']);
		}
    

		for ($i=1; $i<=$gesamt_seiten; ++$i) 	{
   		 if ($seite == $i) 	{
        echo '<a href="anzeigen.php?seite_nr='.$i.'" style="font-weight: bold;">'.$i.'</a>';
    						} 

    else 	{
        echo '<a href="anzeigen.php?seite_nr='.$i.'">'.$i.'</a>';
    		}
												}
 ?>

der Connect.php Datei steht

<?php
$servername = "localhost";
$user = "root";
$pw = "";
$db = "banana";

$con = mysqli_connect($servername, $user, $pw, $db);


if($con)
{
    echo('Verbindung Hergestellt');
}

else
{
    echo ('Fehler beim Verbindung zum Server');
}

 ?>


Computer, Technik, sql, HTML, Programmierung, Datenbank, Datensätze, MySQL, PHP, Technologie, butten
2 Antworten

Meistgelesene Fragen zum Thema Programmierung

Hochzahlen in C-Programmierung

5 Antworten

Fakultäten mit dem Taschenrechner berechnen

4 Antworten

Wie kann man bei Inkscape ein Bild spiegeln

2 Antworten

Java - Zufallszahl vom Typ int zwischen 1-30 erzeugen - WIE?

6 Antworten

Wo finde ich kostenlos die pdf. Dateien für das Buch "Java ist auch eine Insel" zu Java 8?

3 Antworten

Was ist der Unterschied zwischen Parametrierung, Konfiguration und Programmierung?

3 Antworten

"AfD-Verbotsverfahren_JETZT!" Als Browser auf meiner Webseite?

3 Antworten

Mit welcher "Sprache" wurde Windows programmiert?

10 Antworten

SQL Datenbank in Webseite einbinden HTML

11 Antworten

Programmierung - Neue und gute Antworten