Files
2023-10-10 20:15:56 +05:30

3.6 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
5e46f8d6ac417301a38fb92d Carta Sasso Forbici 10 462376 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.

Lavorerai a questo progetto con il nostro codice d'inizio su Replit.

  • Inizia importando il progetto su Replit.
  • Poi vedrai una finestra .replit.
  • Seleziona Use run command e clicca sul pulsante Done.

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.
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:

play(player, quincy, 1000, verbose=True)

Clicca sul pulsante "run" e main.py esguirà.

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à. Se decommenti l'ultima riga in main.py i test eseguiranno automaticamente ogni volta che usi il pulsante "run".

Invio

Copy your project's URL and submit it to freeCodeCamp.

--hints--

Dovrebbe superare tutti i test Python.


--solutions--

  # 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.