`` `python
importera slumpmässigt
def play_matchsticks (pinnar =21):
"" "
Spelar ett matchstickspel där datorn alltid vinner.
Args:
Pinnar:Startantalet matchsticks (standard:21).
Returnerar:
Ingen
"" "
Skriv ut (F "Välkommen till matchstick -spelet! Det finns {pinnar} pinnar.")
Medan pinnar> 0:
# Spelarens tur
player_take =int (input ("Hur många pinnar vill du ta (1, 2 eller 3)?")))
Medan player_take <1 eller player_take> 3:
player_take =int (input ("Ogiltig ingång. Vänligen ange 1, 2 eller 3:"))
pinnar -=player_take
tryck (F "Du tog {Player_Take} pinnar. Det finns {pinnar} kvar.")
# Datorns tur (vinner alltid)
Om pinnar> 0:
# Dator tar alltid ett antal pinnar för att lämna en multipel av 4
Computer_take =4 - (Sticks % 4)
Skriv ut (F "Datorn tog {Computer_Take} Sticks.")
pinnar -=dator_take
tryck (F "Det finns {pinnar} kvar.")
# Bestäm vinnaren
Om pinnar ==0:
Skriv ut ("Du förlorade! Datorn vinner.")
annan:
Skriv ut ("Du vinner! Datorn förlorade.")
Starta spelet
play_matchsticks ()
`` `
Förklaring:
1. vinnande strategi: Nyckeln till att vinna detta spel är att tvinga din motståndare att alltid välja ett antal pinnar som lämnar en multipel av fyra kvar.
- Om du har fyra pinnar kvar kommer du alltid att vinna eftersom du kan ta alla fyra.
- Om du har 8 pinnar kvar kan du ta 4 och lämna 4 för din motståndare.
2. Datorns logik:
- `Computer_Take =4 - (Sticks % 4)` Line beräknar hur många pinnar datorn behöver ta för att lämna en multipel av 4.
- `Sticks % 4 'ger resten när` pinnar' delas med 4.
- `4 - (Sticks % 4)` säkerställer att antalet återstående pinnar efter datorns tur kommer att vara en multipel av 4.
3. Användarinmatning:
- Koden uppmanar användaren för inmatning och validerar den för att se till att de väljer ett nummer mellan 1 och 3.
4. Spelflöde:
- Spelet fortsätter tills det inte finns några pinnar kvar.
- Efter varje spelares tur skrivs de återstående pinnarna.
Hur man spelar:
1. Kör koden.
2. Spelet börjar med 21 pinnar (du kan ändra detta i funktionen "play_matchsticks").
3. Du väljer att ta 1, 2 eller 3 pinnar varje sväng.
4. Datorn tar alltid rätt antal pinnar för att lämna en multipel av 4 för dig.
5. Så småningom kommer du att tvingas ta de sista fyra pinnarna, vilket gör datorn till vinnaren.
Den här koden säkerställer att datorn alltid kommer att vinna spelet.