Inhalt von Blog-Posts anzeigen (Variante)

Um den vollständigen Inhalt von Blog-Posts auf deiner WordPress-Blogseite anzuzeigen, ohne auf die einzelnen Post-Links klicken zu müssen, kannst du einige verschiedene Ansätze verwenden. Hier sind zwei häufig verwendete Methoden:

Hinweis: Es ist wichtig zu beachten, dass diese Methoden an deinem WordPress-Theme und den verfügbaren Optionen im Editor sowie deinem technischen Hintergrundwissen variieren können.

1. Verwendung des the_content-Tags im Loop:

Im WordPress-Loop wird der the_content-Tag verwendet, um den vollständigen Inhalt eines Beitrags auf der Blogseite anzuzeigen. Du kannst diesen Ansatz verwenden, um sicherzustellen, dass der gesamte Inhalt des Beitrags ohne Klicken auf den Beitragstitel oder -link angezeigt wird.

Öffne die index.php-Datei deines Themes und suche nach dem Loop-Bereich (normalerweise in einer Schleife wie while (have_posts())). Stelle sicher, dass der the_content-Tag anstelle des the_excerpt-Tags verwendet wird:

<!--?php while (have_posts()) : the_post(); ?-->

<article>&gt;
<h2><a href="&lt;?php the_permalink(); ?&gt;">
<!--?php the_title(); ?-->
</a></h2>
<!--?php the_content(); ?-->

</article><!--?php endwhile; ?-->

Dies sollte den vollen Inhalt jedes Beitrags auf der Blogseite anzeigen.

2. Verwendung eines Page Builder-Plugins:

Einige WordPress-Plugins, wie z.B. „Elementor“ oder „Divi“, bieten visuelle Page-Builder-Funktionen, mit denen du Blogseiten erstellen und den Inhalt von Beiträgen ohne tiefe Codierung anpassen kannst. Diese Plugins ermöglichen es dir, benutzerdefinierte Layouts zu erstellen, die den vollen Inhalt von Beiträgen direkt auf der Blogseite anzeigen.

Installiere und aktiviere ein Plugin deiner Wahl, erstelle eine benutzerdefinierte Blogseite mit dem gewünschten Layout und füge dann das Modul oder den Block hinzu, um den vollen Inhalt der Beiträge anzuzeigen.

Beachte, dass die genaue Vorgehensweise je nach dem von dir verwendeten Plugin variieren kann. Die Plugin-Dokumentation sollte dir jedoch bei der Einrichtung und Verwendung helfen.

Beide Ansätze bieten Möglichkeiten, den vollen Inhalt von Blog-Posts auf deiner WordPress-Blogseite ohne Klicken auf die Post-Links anzuzeigen. Wähle den Ansatz aus, der am besten zu deinen Kenntnissen und Bedürfnissen passt.

Segmenteffekte

Für dieses Tutorial arbeite ich mit einem neuen Projekt namens Einführung in Segmenteffekte. Es gibt verschiedene Arten von Effekten, mit denen Sie in Media Composer arbeiten werden. Wir haben bereits den Übergangseffekt untersucht, den Sie mit der Übergangsschaltfläche oder durch Ziehen aus der Effektpalette aus der Übergangskategorie direkt in Ihre Sequenz anwenden können. Wir haben auch gesehen, dass, wenn Sie eine Übergangseffektvorlage erstellen, diese in der Effektpalette angezeigt wird, sofern in geöffnet ist.

Die nächste Haupteffektart, mit der Sie in Media Composer arbeiten können, ist ein Segmenteffekt, und diese Segmenteffekte werden aus der Filterkategorie in der Effektpalette angewendet. Sie werden diese auf die gleiche Weise anwenden, wie Sie sie im Übergangseffekt anwenden würden, und wir werden gleich mit ihnen richtig arbeiten. Jeder Clip, den Sie in einer Sequenz haben, wird als Segment oder Clipsegment bezeichnet. Und das sind unterschiedliche Instancies-Audioclips, nun, sie unterscheiden sich von den ursprünglichen Master-Clips in Ihren Bins. Sie können Änderungen an den Clipsegmenten oder Clip-Instabilitäten vornehmen, die sich in Ihrer Sequenz befinden, und der ursprüngliche Masterclip in der Ablage wird nicht geändert. Tatsächlich können Sie verschiedene Änderungen an verschiedenen Teilen desselben Clips vornehmen. Nichts wird Ihren ursprünglichen Masterclip ändern. Die Ausnahme von dieser Regel ist natürlich, wenn wir in unsere Mülleimer gehen und das ist ein bisschen übersehen. Wenn ich beispielsweise einen dieser Clips oder mehrere Clips auswähle und mit der rechten Maustaste klicke und die Quelleinstellungen auswähle, kann ich hier Änderungen am Erscheinungsbild des Clips vornehmen, und es werden alle Masterclips selbst aktualisiert. Wenn ich dann diesen Clip hineinziehe oder in unsere Sequenz bearbeite, erhalten wir die Konsequenzen der hier vorgenommenen Anpassung. Audioeffekte erhalten eine besondere Erwähnung, denn obwohl wir Audioclip-Effekte haben, die die Audioversion von Segmenteffekten oder Filtern darstellen. Wir haben auch Audiospureffekte, die Sie auf ganze Audiospuren anwenden können. Wenn Sie den Track-Header erweitern, haben Sie möglicherweise diese fünf Schaltflächen direkt unter dem Auswahlmenü für die Audioanpassung und die Art und Weise der angezeigten Schaltfläche aus dieser Option zum Klicken und Hinzufügen von spurbasierten Audioeffekten bemerkt. Wir werden uns diese später ansehen, aber ich wollte Ihnen nur zeigen, dass sie da sind, falls Sie sich fragen, wofür diese Schaltflächen waren. Ich würde sagen, dass die meisten Effekte, die Sie in media composer ausführen werden, mit Segmenteffekten aufgeführt werden, und ich möchte die Tatsache hervorheben, dass ich meine Sprache hier ganz bewusst ein wenig vermische. Wir haben Segmenteffekte und wir haben Filter. Und das ist wirklich das Gleiche in Media Composer.

„Category“ aus URL entfernen

„Category“ aus URL entfernen

So entfernst du das Wort "Category" aus deiner WordPress Permalinkstruktur
Nutzt du die Kategorie in deiner Permalinkstruktur, wird automatisch zusätzlich „category“ in die URL geschrieben

Wählst du für die Permalinkstruktur („Einstellungen“ -> „Permalinks“) deiner Website eine „Individuelle Struktur“ aus und fügst dort den Platzhalter für die Anzeige der Kategorie ein, erscheint in deiner URL nicht nur die Kategorie, sondern vorher auch das Wort „Category“.

Dadurch sieht deine URL dann in etwa so aus:


1
https://deinedomain.de/category/autos/namedesbeitrags

Möchtest du das „Category“ aus der URL Entfernen, trage in den Permalink-Einstellungen bei „Optional“ -> „Kategorie-Basis“ einen Punkt ein. Also nichts anderes als „.“.

(Das funktioniert ebenfalls für Schlagwörter)

Entferne "Category" aus der WordPress Permalinkstruktur mit einer individuellen Kategorie-Basis

Füge einen Punkt als Kategorie-Basis ein und das Wort „category“ wird aus deiner URL verschwinden

Kathegorie als Menü-Punkt

https://www.elegantthemes.com/blog/wordpress/how-to-create-multiple-blogs-on-one-wordpress-website

Ändern der Permalink-Struktur Ihres Blogs

Wenn Sie auf eine dieser Kategorien klicken, werden Sie direkt zur Seite dieser Kategorie (Archiv) weitergeleitet. Es handelt sich um einen Feed mit Beiträgen, die Sie in diese Kategorien aufgenommen haben. Genau wie der Haupt-Feed Ihres Blogs.

Mehrere WordPress-Blogs auf einer Website

Navigieren Sie in Ihrem WP-Dashboard zu  Einstellungen – Permalinks . Sie haben dort zwei Möglichkeiten. Der erste ist Ihr Post-Permalink. WordPress bietet viele Variablen zur Auswahl. Abhängig von Ihren Bedürfnissen können Sie es nach Ihren Wünschen anpassen. Unser Vorschlag ist die Kategorie/Beitragsname-Struktur ( %category%/%postname% ) für SEO. Nur Post-Name funktioniert auch.

Mehrere WordPress-Blogs auf einer Website

Wenn das erledigt ist, wird Ihre URL für jeden Beitrag genau so sein, wie sie oben eingegeben wurde. Sie haben nur noch einen weiteren Schritt, bevor Sie mit der Einrichtung des neuen Blogs fertig sind. Sie müssen lediglich ändern, was WordPress für den Kategorie-Permalink verwendet. Scrollen Sie also in  den Einstellungen – Permalinks weiter nach unten, bis Sie „Kategoriebasis“ sehen  .

Mehrere WordPress-Blogs auf einer Website

Sie können das nach Belieben ändern, aber  Blog oder Blogs sind eine sichere Wahl. Dadurch haben Sie die  Struktur example.com/blog/umbrella-corp als URL für jedes Blog, was viel besser ist. Jede untergeordnete Kategorie wird hinzugefügt. Wenn Sie sich jedoch gegen die Verwendung der übergeordneten/untergeordneten Hierarchie entscheiden, spielt dies keine Rolle.

Mehrere WordPress-Blogs auf einer Website

Accordion

Einfaches Aufklappen
<details>
<summary>Überschrift</summary>Inhalt

<details>

Accordion

Inhalt

Beitragsinhalt -> customize / [post-content]

Global überall

Customize / Layout / Blog : Inhaltstyp -> Gesamter Inhalt oder Textauszug

ODER

Einstellungen/ Lesen/ Füge für jeden Beitrag in einem Feed Folgendes hinzu : ganzen Text oder Textauszug

Lokal einzeln

z.B., Plugin Post Content Shortcodes

[post-content id=25]

[post-content post_name=’name’]

[post-content post_name=’name‘ show_title=true]

[post-content show_title=’false’]

[post-content view_template=’false’]

[post-content shortcodes=’false’] – entfernt Shortcodes aus dem Inhalt/Auszug des Beitrags

[pcs-post-url] – gibt die URL zum Beitrag zurück/gibt sie aus

numberposts => -1
offset => 0

category => null (can accept category slug [with quotes] or category ID [without quotes])
orderby => title
order => asc
include => null
exclude => null

[post-list post_type=’page‘ numberposts=15]

[post-list post_type=’page’]

Vokale raten

Schreiben Sie eine Funktion translate_vowel(text, replacement), die in einem gegebenen Text alle Vokale durch ein Zeichen bzw. eine Zeichenfolge ersetzt. Das kann man etwa für ein kleines Ratequiz nutzen oder aber um Wortähnlichkeiten nur basierend auf den Konsonanten zu ermitteln.


Lösung

Zur Umwandlung des gegebenen Texts durchlaufen wir diesen zeichenweise von vorne nach hinten. Das Ergebnis sammeln wir in einem neuen String. Finden wir einen Vokal, fügen wir die übergebene Ersatzzeichenfolge ein, ansonsten den Konsonanten (bzw. genauer das Originalzeichen, was auch eine Ziffer oder ein Satzzeichen sein könnte):

1
2
3
4
5
6
7
8
9
10
def translate_vowel(text, replacement):
translated = ""
for letter in text:
if is_vowel(letter):
translated += replacement
else:
translated += letter
return translated
def is_vowel(letter):
return letter in "AÄEIOÖUüaäeioöuü"

Videoeffekte

  1. Übergänge zwischen Clips: Schnitte, Überblendungen, Wipes, Blenden etc.
  2. Bewegungseffekte: Skalierung, Rotation Position- , Perspektive-Änderung -> Zooms, Schwenks und Kamerafahrten.
  3. Farbkorrektur und Farbgrade: Bearbeitung von Farbräumen, Kontrast -> die Stimmung und Atmosphäre anzupassen. Auch Farbfilter und Look-Up-Tables (LUTs) -> bestimmte Looks erzeugen.
  4. Chroma Keying: einen ausgewählten Farbbereich (meistens grün oder blau) entfernen -> Hintergründe ersetzen oder visuelle Effekte hinzufügen.
  5. Masken und Matten: Masken -> bestimmte Bereiche isolieren oder manipulieren. Dies ermöglicht Effekte auf spezifische Teile eines Clips anzuwenden.
  6. Text und Titel: Texttitel, Untertitel und Beschriftungen hinzufügen, dabei Schriftart, Größe, Farbe und Animation anpassen.
  7. Audioeffekte: -> Echo, Reverb, Equalizer und Rauschunterdrückung.
  8. Time Remapping: Geschwindigkeit anpassen -> Zeitraffer, Zeitlupe oder Zeitlupeneffekte.
  9. Effekte für Bild-in-Bild und Split-Screen: Platzieren von Clips innerhalb eines anderen Clips (Bild-in-Bild) oder Aufteilung des Bildschirms für gleichzeitige Anzeige von mehreren Clips.
  10. Stabilisierung und Verzerrung: unruhige Kameraaufnahmen korrigieren oder verzerrte Effekte für kreative Zwecke anwenden.
  11. Audio-Keyframing: z.B. Lautstärke oder andere Audioeigenschaften anpassen -> eine präzise Audiomischung erstellen.
  12. Effekte für Geschwindigkeitsänderung: Ändere die Geschwindigkeit eines Clips während der Wiedergabe für dramatische oder kreative Effekte.

Punkt 12 bezieht sich auf das Ändern der Wiedergabegeschwindigkeit eines Clips während der Bearbeitung. Du kannst die Geschwindigkeit erhöhen (Zeitraffer) oder verringern (Zeitlupe) oder sogar Stop-Motion-Effekte erzeugen. Dies kann verwendet werden, um bestimmte Szenen dramatischer oder interessanter zu gestalten.

Punkt 8 (Time Remapping) ist spezifischer und ermöglicht eine präzisere Kontrolle über die Veränderung der Geschwindigkeit im Laufe der Zeit. Dies kann nützlich sein, um Geschwindigkeitskurven zu erstellen, die es dir ermöglichen, die Geschwindigkeit eines Clips nicht nur linear, sondern auch mit komplexeren Variationen zu ändern. Dies ist besonders hilfreich bei der Erstellung von einzigartigen Zeitlupen- oder Zeitraffereffekten.

Time Remapping -> mehr Kontrolle über die zeitliche Abfolge der Geschwindigkeitsänderung und ermöglicht feinere Anpassungen.

  • Effekte mit der Kamera
  • Schwenk, Riss, Perspektiven, Toneffekte
  • Grundlagen für gute Videoeffekte
  • Effekte für (zu) lange Filme
  • Grob- und Feinschnitt
  • Jump Cuts und Stopptrick
  • Multi-Picture
  • Zeitraffer und Speedramp
  • Text und Text-Animation
  • Effekte für (zu) kurze Filme
  • Zeitdehnung
  • Effekt-Schnitte
  • Fotos einbinden (Import und Hintergründe)
  • Fotos animieren: Größe und Position
  • Schicke Animation mit Blendeffekten
  • Wenn Bilder und Szenen nicht zusammenpassen
  • Farbkorrektur
  • Musikwechsel und Soundeffekte
  • Der Riss aus der Postproduktion
  • Vorgefertigte Blenden und Wipes
  • Wipes und Strukturen selbst gemacht
  • Atmosphäre, Anmutung und Gefühl
  • Leichte Übung: Horror-Film
  • Easy Living – alles ist schön
  • Sport und Action
  • Wenn Bilder fehlen
  • Greenscreen
  • Keying
  • Der Trick mit dem Ton

Rock Paper Scissors game (Tekinter)

Game rules

Rock Paper Scissors is played by two players with their hands. In our project, one player will be the computer and the other player will be the user. The user will use a GUI window to play against the computer.

Let’s start with the rules. Each player has three choices at a time: rock, paper, or scissors.

Each player has to choose one of these three mutually exclusive options. If both players choose the same option, then that will be a tie. Hence, no one will get a point.

If user1 selects rock and user2 selects paper, then user2 wins that round. If user1 selects rock and user2 selects scissors, then user1 wins the round.

What if user1 selects paper and user2 selects scissors? Then, user2 wins that round.

A rough design of the game

We will create a GUI that has three buttons, one for “Rock”, one for “Paper”, and one for “Scissors”.

The user can click on any of these three buttons to select their choice and the computer will randomly select its choice.

We then compare both these choices and give one point to the winner of that round. We will display the points on the GUI window using a Text widget.

The following is a rough design of the GUI app that we are going to build.

We have mentioned the positions where we are planning to place the frames and widgets. The design is pretty simple so we can focus on the game logic.

Tip: Whenever you build a project, draw a rough design of your app on a piece of paper before you actually start coding. That will help you plan and give you an overview of the project. It is a good practice to follow in all personal coding projects, not just Tkinter projects.
Designing the Game UI

Creating a window
Adding Frames
Designing the first Frame
Designing the second Frame

Creating a window

1
2
3
4
5
6
7
import tkinter as tk

window = tk.Tk()
window.geometry("400x300")
window.title("Rock Paper Scissors Game")

window.mainloop()

Next, we will split this GUI into two parts using Frames.

Adding Frames

We will create two Frame widgets and put them in the GUI using the grid geometry.

We will place the first Frame on the left side of the window, at row 0 and column 0 , and the second Frame on the right side, at row 0 and column 1.

1
2
3
4
5
6
7
8
9
10
11
12
13
import tkinter as tk

window = tk.Tk()
window.geometry("400x300")
window.title("Rock Paper Scissors Game")

frame1 = tk.Frame(window)
frame1.grid(column=0,row=0)

frame2 = tk.Frame(window)
frame2.grid(column=1,row=0)

window.mainloop()

Now, let’s place the widgets in these two Frames.

Designing the second Frame

We will start with designing the first Frame. Our plan is to place a Text widget here that will display the scores of the players (user and computer). Initially, we can keep their scores as “0”. We can also add some instructions to play the game in this Text widget. We will place this Text widget in row 0 and column 0 inside this Frame.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import tkinter as tk

window = tk.Tk()
window.geometry("400x300")
window.title("Rock Paper Scissors Game")

frame1 = tk.Frame(window)
frame1.grid(column=0,row=0)

frame2 = tk.Frame(window)
frame2.grid(column=1,row=0)

text_area = tk.Text(master=frame1,height=12,width=30,padx=10,pady=10,bg="#CAD5E2")
text_area.grid(column=0,row=0)
text_area.insert(tk.END,"\n\nYour Score : 0 \nComputer Score : 0 \n \nClick on any button to start.")

window.mainloop()

We have added some basic styling to the Text widget using options like

1
height
,
1
width
,
1
padx
and
1
pady
(for providing padding),
1
bg
, etc. We have used a hash code to give the background color. If you want some cool colors with hash codes, check out uicolorpicker.com and choose a color you like.We have inserted some text to display when the game starts. We will see how to update the scores later.

Designing the second Frame

Now, let’s design the second Frame and place the widgets. As per our initial design, we will have three buttons (Rock, Paper, and Scissors) on this Frame. We will place these buttons inside this Frame in rows 0, 1, and 2, while the column number will be 0.

We will give some horizontal and vertical padding between the two Frames to keep the UI clean.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import tkinter as tk

window = tk.Tk()
window.geometry("400x300")
window.title("Rock Paper Scissors Game")

frame1 = tk.Frame(window, padx=5, pady=5)
frame1.grid(column=0,row=0)

frame2 = tk.Frame(window)
frame2.grid(column=1,row=0)

text_area = tk.Text(master=frame1,height=12,width=30,padx=10,pady=10,bg="#CAD5E2")
text_area.grid(column=0,row=0)
text_area.insert(tk.END,"\n\nYour Score : 0 \nComputer Score : 0 \n \nClick on any button to start.")

button1 = tk.Button(frame2,text="      Rock     ",bg="#50DBB4",padx=20,pady=25)
button1.grid(column=0,row=0)
button2 = tk.Button(frame2,text="     Paper    ",bg="#50DBB4",padx=20,pady=25)
button2.grid(column=0,row=1)
button3 = tk.Button(frame2,text="   Scissors  ",bg="#50DBB4",padx=20,pady=25)
button3.grid(column=0,row=2)

window.mainloop()

You can customize the UI further if you want. You can play with the widgets and options to make your UI unique and interesting.

Writing the Game Logic – Part 1
  • Defining the variables
  • Defining the computer choice method
  • Defining the rock, paper, and scissors methods
  • Connecting the methods and buttons

We have designed the game GUI in the previous lesson. Now, let’s write some Python code to implement the working of the game.

Defining the variables

First of all, we will create variables for user score, computer score, user choice, and computer choice.
We will initialize the scores with “0” and the choice variables with empty strings.

1
2
3
4
USER_SCORE = 0
COMP_SCORE = 0
USER_CHOICE = ""
COMP_CHOICE = ""

Defining the computer choice method#

We know that the user selects an option from Rock, Paper, or Scissors by clicking a button. But, how will the computer select its choice? Let’s create the method `random_computer_choice()’ to do that.
Inside this method, the computer will choose an option randomly and return it. We can import and use the random module in Python for this.

1
2
3
4
USER_SCORE = 0
COMP_SCORE = 0
USER_CHOICE = ""
COMP_CHOICE = ""

Defining the rock, paper, and scissors methods

Now, we will define three methods for the three buttons. When a user clicks a button, the corresponding method will be invoked. The method for the “Rock” button will assign the value

1
rock
to the
1
USER_CHOICE
variable. We will also call the
1
random_computer_choice()
method from this method for the computer to select its choice. We will pass these two choices to another method called
1
result()
, which we will define later.

1
2
3
4
5
6
def rock():
    global USER_CHOICE
    global COMP_CHOICE
    USER_CHOICE='rock'
    COMP_CHOICE=random_computer_choice()
    result(USER_CHOICE,COMP_CHOICE)

We made these variables global so that we can use them across the entire program.
Let’s define the methods for the “Paper” and “Scissors” buttons using the same logic.

1
2
3
4
5
6
7
8
9
10
11
12
def paper():
    global USER_CHOICE
    global COMP_CHOICE
    USER_CHOICE='paper'
    COMP_CHOICE=random_computer_choice()
    result(USER_CHOICE,COMP_CHOICE)
def scissors():
    global USER_CHOICE
    global COMP_CHOICE
    USER_CHOICE='scissors'
    COMP_CHOICE=random_computer_choice()
    result(USER_CHOICE,COMP_CHOICE)

Connecting the methods and buttons#

Let’s put these variables and methods in our GUI app above the code for our widgets. That way, these methods will be available for the buttons to use.
We will link these methods with the buttons using the command option.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import random
import tkinter as tk

window = tk.Tk()
window.geometry("400x300")
window.title("Rock Paper Scissors Game")

USER_SCORE = 0
COMP_SCORE = 0
USER_CHOICE = ""
COMP_CHOICE = ""

def random_computer_choice():
    return random.choice(['rock','paper','scissors'])

def result(x,y):
    print("We will define it soon...")

def rock():
    global USER_CHOICE
    global COMP_CHOICE
    USER_CHOICE='rock'
    COMP_CHOICE=random_computer_choice()
    result(USER_CHOICE,COMP_CHOICE)

def paper():
    global USER_CHOICE
    global COMP_CHOICE
    USER_CHOICE='paper'
    COMP_CHOICE=random_computer_choice()
    result(USER_CHOICE,COMP_CHOICE)

def scissors():
    global USER_CHOICE
    global COMP_CHOICE
    USER_CHOICE='scissors'
    COMP_CHOICE=random_computer_choice()
    result(USER_CHOICE,COMP_CHOICE)

frame1 = tk.Frame(window, padx=5, pady=5)
frame1.grid(column=0,row=0,pady=5)

frame2 = tk.Frame(window)
frame2.grid(column=1,row=0)

text_area = tk.Text(master=frame1,height=12,width=30,padx=10,pady=10,bg="#CAD5E2")
text_area.grid(column=0,row=0)
text_area.insert(tk.END,"\n\nYour Score : 0 \nComputer Score : 0 \n \nClick on any button to start.")

button1 = tk.Button(frame2,text="      Rock     ",bg="#50DBB4",padx=20,pady=25,command=rock)
button1.grid(column=0,row=0)
button2 = tk.Button(frame2,text="     Paper    ",bg="#50DBB4",padx=20,pady=25,command=paper)
button2.grid(column=0,row=1)
button3 = tk.Button(frame2,text="   Scissors  ",bg="#50DBB4",padx=20,pady=25,command=scissors)
button3.grid(column=0,row=2)

window.mainloop()

In the above code, we just created new methods and defined some variables. We did not add any functionality as of now. That is why the output is the same, and the buttons are not executable at the moment.
So, with that, we have the user choice and computer choice inputs ready. Now, we need to process these two variables and perform the calculations and updates.

Writing the Game Logic – Part 2
  • Accepting the input parameters
  • Writing the core logic of the game
  • Updating the scoreboard
  • Let’s run the app

Let’s define the result() method, which will implement the core logic of the game.

Accepting the input parameters
We will start by accepting the user choice and computer choice as parameters of the method.
Let’s also initialize the global variables which store the scores.

1
2
3
def result(user,comp):
    global USER_SCORE
    global COMP_SCORE

Writing the core logic of the game

The core game logic is the most important part of the game. Without this code, the game cannot run.
Take a look at the following table that shows all the different scenarios in the game. We will implement the logic to address all of these options.

User’s ChoiceComputer’s ChoiceWinner
RockRockTie
RockPaperComputer
RockScissorsUser
PaperRockUser
PaperPaperTie
PaperScissorsComputer
ScissorsRockComputer
ScissorsPaperUser
ScissorsScissorsTie
How can we implement this in Python? We will use conditional statements.
We will implement the logic by using if-elif-else conditions. Based on the winner, we will increment the score.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
if(user==comp):
        print("Tie")
    elif(user=="rock"):
        if(comp=="scissors"):
            print("You win")
            USER_SCORE+=1
        else:
            print("Comp wins")
            COMP_SCORE+=1
    elif(user=="paper"):
        if(comp=="rock"):
            print("You win")
            USER_SCORE+=1
        else:
            print("Comp wins")
            COMP_SCORE+=1
    elif(user=="scissors"):
        if(comp=="paper"):
            print("You win")
            USER_SCORE+=1
        else:
            print("Comp wins")
            COMP_SCORE+=1

Updating the scoreboard

We have written the logic to find the winner and update the score. Now, we need to update the scoreboard of the game, which is handled by a Text widget.
We will define a new Text widget and replace the original Text widget with this new one.
We can place the scores inside a string using string formatting. Finally, we will insert that string into the Text widget.

1
2
3
4
text_area = tk.Text(master=frame1,height=12,width=30,padx=10,pady=10,bg="#CAD5E2")
text_area.grid(column=0,row=0)
answer = "\n\nYour Choice: {uc} \nComputer's Choice : {cc} \n\nYour Score : {u} \nComputer Score : {c} ".format(uc=USER_CHOICE,cc=COMP_CHOICE,u=USER_SCORE,c=COMP_SCORE)
text_area.insert(tk.END,answer)

Let’s run the app

Let’s place the

1
result()
method in the Tkinter code and run the app.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import random
import tkinter as tk

window = tk.Tk()
window.geometry("400x300")
window.title("Rock Paper Scissors Game")

USER_SCORE = 0
COMP_SCORE = 0
USER_CHOICE = ""
COMP_CHOICE = ""

def random_computer_choice():
    return random.choice(['rock','paper','scissors'])

def result(user,comp):
    global USER_SCORE
    global COMP_SCORE
    if(user==comp):
        print("Tie")
    elif(user=="rock"):
        if(comp=="scissors"):
            print("You win")
            USER_SCORE+=1
        else:
            print("Comp wins")
            COMP_SCORE+=1
    elif(user=="paper"):
        if(comp=="rock"):
            print("You win")
            USER_SCORE+=1
        else:
            print("Comp wins")
            COMP_SCORE+=1
    elif(user=="scissors"):
        if(comp=="paper"):
            print("You win")
            USER_SCORE+=1
        else:
            print("Comp wins")
            COMP_SCORE+=1
    text_area = tk.Text(master=frame1,height=12,width=30,padx=10,pady=10,bg="#CAD5E2")
    text_area.grid(column=0,row=0)
    answer = "\n\nYour Choice: {uc} \nComputer's Choice : {cc} \n\nYour Score : {u} \nComputer Score : {c} ".format(uc=USER_CHOICE,cc=COMP_CHOICE,u=USER_SCORE,c=COMP_SCORE)
    text_area.insert(tk.END,answer)

def rock():
    global USER_CHOICE
    global COMP_CHOICE
    USER_CHOICE='rock'
    COMP_CHOICE=random_computer_choice()
    result(USER_CHOICE,COMP_CHOICE)

def paper():
    global USER_CHOICE
    global COMP_CHOICE
    USER_CHOICE='paper'
    COMP_CHOICE=random_computer_choice()
    result(USER_CHOICE,COMP_CHOICE)

def scissors():
    global USER_CHOICE
    global COMP_CHOICE
    USER_CHOICE='scissors'
    COMP_CHOICE=random_computer_choice()
    result(USER_CHOICE,COMP_CHOICE)

frame1 = tk.Frame(window, padx=5, pady=5)
frame1.grid(column=0,row=0)

frame2 = tk.Frame(window)
frame2.grid(column=1,row=0)

text_area = tk.Text(master=frame1,height=12,width=30,padx=10,pady=10,bg="#CAD5E2")
text_area.grid(column=0,row=0)
text_area.insert(tk.END,"\n\nYour Score : 0 \nComputer Score : 0 \n \nClick on any button to start.")

button1 = tk.Button(frame2,text="      Rock     ",bg="#50DBB4",padx=20,pady=25,command=rock)
button1.grid(column=0,row=0)
button2 = tk.Button(frame2,text="     Paper    ",bg="#50DBB4",padx=20,pady=25,command=paper)
button2.grid(column=0,row=1)
button3 = tk.Button(frame2,text="   Scissors  ",bg="#50DBB4",padx=20,pady=25,command=scissors)
button3.grid(column=0,row=2)

window.mainloop()

Congratulations, our Rock Paper Scissors game is ready! You can now play the game against the computer by running the code.

If you want to customize the app further, go ahead. Remember, experimenting with your app is the best way to learn Tkinter.

For example, you could try to add a new button called “Restart” in the GUI. When the user clicks the button, the scores will be set to 0, and the game will restart. Give it a try!

Python Challenge

jhfhgfhgfhgfhgfhgfhg

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!


  1. Übergänge zwischen Clips: Schnitte, Überblendungen, Wipes, Blenden etc.
  2. Bewegungseffekte: Skalierung, Rotation Position- , Perspektive-Änderung -> Zooms, Schwenks und Kamerafahrten.
  3. Farbkorrektur und Farbgrade: Bearbeitung von Farbräumen, Kontrast -> die Stimmung und Atmosphäre anzupassen. Auch Farbfilter und Look-Up-Tables (LUTs) -> bestimmte Looks erzeugen.
  4. Chroma Keying: einen ausgewählten Farbbereich (meistens grün oder blau) entfernen -> Hintergründe ersetzen oder visuelle Effekte hinzufügen.
  5. Masken und Matten: Masken -> bestimmte Bereiche isolieren oder manipulieren. Dies ermöglicht Effekte auf spezifische Teile eines Clips anzuwenden.
  6. Text und Titel: Texttitel, Untertitel und Beschriftungen hinzufügen, dabei Schriftart, Größe, Farbe und Animation anpassen.
  7. Audioeffekte: -> Echo, Reverb, Equalizer und Rauschunterdrückung.
  8. Time Remapping: Geschwindigkeit anpassen -> Zeitraffer, Zeitlupe oder Zeitlupeneffekte.
  9. Effekte für Bild-in-Bild und Split-Screen: Platzieren von Clips innerhalb eines anderen Clips (Bild-in-Bild) oder Aufteilung des Bildschirms für gleichzeitige Anzeige von mehreren Clips.
  10. Stabilisierung und Verzerrung: unruhige Kameraaufnahmen korrigieren oder verzerrte Effekte für kreative Zwecke anwenden.
  11. Audio-Keyframing: z.B. Lautstärke oder andere Audioeigenschaften anpassen -> eine präzise Audiomischung erstellen.
  12. Effekte für Geschwindigkeitsänderung: Ändere die Geschwindigkeit eines Clips während der Wiedergabe für dramatische oder kreative Effekte.

Punkt 12 bezieht sich auf das Ändern der Wiedergabegeschwindigkeit eines Clips während der Bearbeitung. Du kannst die Geschwindigkeit erhöhen (Zeitraffer) oder verringern (Zeitlupe) oder sogar Stop-Motion-Effekte erzeugen. Dies kann verwendet werden, um bestimmte Szenen dramatischer oder interessanter zu gestalten.

Punkt 8 (Time Remapping) ist spezifischer und ermöglicht eine präzisere Kontrolle über die Veränderung der Geschwindigkeit im Laufe der Zeit. Dies kann nützlich sein, um Geschwindigkeitskurven zu erstellen, die es dir ermöglichen, die Geschwindigkeit eines Clips nicht nur linear, sondern auch mit komplexeren Variationen zu ändern. Dies ist besonders hilfreich bei der Erstellung von einzigartigen Zeitlupen- oder Zeitraffereffekten.

Time Remapping -> mehr Kontrolle über die zeitliche Abfolge der Geschwindigkeitsänderung und ermöglicht feinere Anpassungen.

  • Effekte mit der Kamera
  • Schwenk, Riss, Perspektiven, Toneffekte
  • Grundlagen für gute Videoeffekte
  • Effekte für (zu) lange Filme
  • Grob- und Feinschnitt
  • Jump Cuts und Stopptrick
  • Multi-Picture
  • Zeitraffer und Speedramp
  • Text und Text-Animation
  • Effekte für (zu) kurze Filme
  • Zeitdehnung
  • Effekt-Schnitte
  • Fotos einbinden (Import und Hintergründe)
  • Fotos animieren: Größe und Position
  • Schicke Animation mit Blendeffekten
  • Wenn Bilder und Szenen nicht zusammenpassen
  • Farbkorrektur
  • Musikwechsel und Soundeffekte
  • Der Riss aus der Postproduktion
  • Vorgefertigte Blenden und Wipes
  • Wipes und Strukturen selbst gemacht
  • Atmosphäre, Anmutung und Gefühl
  • Leichte Übung: Horror-Film
  • Easy Living – alles ist schön
  • Sport und Action
  • Wenn Bilder fehlen
  • Greenscreen
  • Keying
  • Der Trick mit dem Ton

Grundrechenarten

Schreiben Sie eine Funktion calc(m, n), die zwei Variablen vom Typ int multipliziert,
das Produkt dann halbiert und den ganzzahligen Rest bezüglich der Division
durch 7 ausgibt.

Beispiel:

Als kleiner Hinweis zur Erinnerung hier nochmals: Bei einer Ganzzahldivision wird der
Rest abgeschnitten, deswegen ergibt 25/2 als Ergebnis den Wert 12.

Lösung

Algorithmus Die Implementierung folgt einfach der mathematischen Operationen:

1
2
def calc(m, n):
   return m * n // 2 % 7

Statt des speziellen Operators // kann man auch eine Umwandlung des Ergebnisses
der einfachen Division in eine Ganzzahl durch einen Aufruf von int() vornehmen:

1
2
def calc_v2(m, n):
   return int(m * n / 2) % 7

Tkinter OptionMenu(), Radiobutton() und CheckBox()

Creating OptionMenu widgets
Allgemeine Syntax für ein aufklappbares Menü:


myOptionMenu = tk.OptionMenu(parent, variable, default=None, *values)

Die OptionMenu() Methode erwartet parent, variable, default, and values als Parameter. Der parent-Parameter steht für window oder frame, in deren ihre Widgets platziert werden. 
Der variable-Parameter ist ein tk.StringVar – Objekt, der den Wert der ausgewählten Option des Menüs erfasst.
Als default -Parameter kann ein gewünstes Wert eigegeben werden, der immer am Anfang der Optionen-Liste erscheint. 
Der values -Parameter ist eine Liste mit Optionen. 


GeSHi Error: GeSHi could not find the language lang (using path /homepages/0/d971837894/htdocs/clickandbuilds/wordpress_invario/wp-content/plugins/codecolorer/lib/geshi/) (code 2)