mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-04-13 04:00:12 -04:00
72 lines
3.5 KiB
Markdown
72 lines
3.5 KiB
Markdown
---
|
|
id: 5e46f8d6ac417301a38fb92d
|
|
title: Carta Sasso Forbici
|
|
challengeType: 10
|
|
forumTopicId: 462376
|
|
dashedName: rock-paper-scissors
|
|
---
|
|
|
|
# --description--
|
|
|
|
In questa sfida creerai un programma per giocare a carta, sasso, forbici. Un programma che sceglie a caso di solito vincerà il 50% delle volte. Per superare questa sfida il tuo programma deve giocare partite contro quattro diversi bot, vincendo almeno il 60% dei giochi in ogni partita.
|
|
|
|
You will be <a href="https://gitpod.io/?autostart=true#https://github.com/freeCodeCamp/boilerplate-rock-paper-scissors/" target="_blank" rel="noopener noreferrer nofollow">working on this project with our Gitpod starter code</a>.
|
|
|
|
Stiamo ancora sviluppando la parte di didattica interattiva per il programma di machine learning. Per ora, dovrai utilizzare altre risorse per imparare a superare questa sfida.
|
|
|
|
# --instructions--
|
|
|
|
Nel file `RPS.py` ti è data una funzione chiamata `player`. La funzione prende un argomento che è una stringa che descrive l'ultima mossa dell'avversario ("R" per sasso, "P" per carta, o "S" per forbici). La funzione dovrebbe restituire una stringa che rappresenza la prossima mossa da giocare ("R", "P", o "S").
|
|
|
|
Una funzione giocatore riceverà una stringa vuota come argomento per la prima mano in una partita visto che non ci sono mani precedenti.
|
|
|
|
Il file `RPS.py` mostra una funzione di esempio che devi aggiornare. La funzione di esempio è definita con due argomenti (`player(prev_play, opponent_history = [])`). La funzione non è mai chiamata con un secondo argomento, quindi quello è completamente opzionale. La ragione per cui la funzione di esempio contiene un secondo argomento (`opponent_history = []`) è perché è l'unico modo per salvare lo stato tra invocazioni consecutive della funzione `player`. Hai bisogno dell'argomento `opponent_history` solo se vuoi tenere traccia delle mosse del tuo avversario.
|
|
|
|
*Suggerimento: per sconfiggere tutti e quattro gli avversari, il tuo programma potrebbe avere bisogno di diverse strategie che cambiano a seconda di come gli avversari giocano.*
|
|
|
|
## Sviluppo
|
|
|
|
Non cambiare `RPS_game.py`. Scrivi tutto il tuo codice in `RPS.py`. Per lo sviluppo, puoi usare `main.py` per testare il tuo codice.
|
|
|
|
`main.py` importa la funzione di gioco e i bot da `RPS_game.py`.
|
|
|
|
Per testare il tuo codice, fai una partita usando la funzione `play`. La funzione `play` prende quattro argomenti:
|
|
|
|
- due giocatori per giocare uno contro l'altro (i giocatori sono in realtà delle funzioni)
|
|
- il numero di mani da giocare nella partita
|
|
- un argomento opzionale per vedere la storia di ogni partita. Impostalo su `True` per vedere questi messaggi.
|
|
|
|
```py
|
|
play(player1, player2, num_games[, verbose])
|
|
```
|
|
|
|
Per esempio, ecco come chiamare la funzione se vuoi che `player` e `quincy` giochino 1000 mani uno contro l'altro e vuoi vedere il risultato di ogni mano:
|
|
|
|
```py
|
|
play(player, quincy, 1000, verbose=True)
|
|
```
|
|
|
|
## Test
|
|
|
|
I test unitari per questo progetto sono in `test_module.py`. Abbiamo importato i test da `test_module.py` in `main.py` per tua comodità. If you uncomment the last line in `main.py`, the tests will run automatically whenever you run `python main.py` in the console.
|
|
|
|
## Invio
|
|
|
|
Copy your project's URL and submit it to freeCodeCamp.
|
|
|
|
# --hints--
|
|
|
|
Dovrebbe superare tutti i test Python.
|
|
|
|
```js
|
|
|
|
```
|
|
|
|
# --solutions--
|
|
|
|
```py
|
|
# Python challenges don't need solutions,
|
|
# because they would need to be tested against a full working project.
|
|
# Please check our contributing guidelines to learn more.
|
|
```
|