2017-10-09 5 views
0

Nous sommes supposés faire un jeu de devinettes où selon la difficulté choisie par le joueur, le jeu génère 4 ou 5 numéros et le joueur reçoit tout sauf le dernier, qu'il doit deviner en 3 essais. Les nombres doivent être séparés par des distances égales, et les nombres doivent être compris entre 1 et 100. Jusqu'à présent, je sais à quoi cela va ressembler à peu près.Python 3.x Aide aux devoirs. Jeu de devinettes en nombre séquentiel.

def guesses: 
    function for accumulating tries as long as guesses_taken < 3 
    let user retry, or congratulate and offer to replay 

def game_easy: 
    code for number generation, step value, etc 
    guesses() 

def game_hard: 
    same code as easy mode, with the appropriate changes 
    guesses() 

Pour les nombres aléatoires, tout ce que j'ai est jusqu'à présent cette

guess_init = rand.int (1,100) 
step = rand.int (1,20) 
guess_init = guess_init + step 

et juste l'avoir boucle et ajouter l'étape 4 ou 5 fois respectivement. Où je suis bloqué est 1. Comment s'assurer qu'aucun des nombres générés dépasse 100 (donc il ne peut pas être un pas de 1 commençant à 98), et 2. comment imprimer tout sauf le dernier nombre généré. Ce que je pensais était d'attribuer le dernier nombre généré à une variable que l'entrée du joueur doit correspondre. Mais je pensais aussi que si "guess_init" a parcouru la boucle, alors il tiendra déjà la valeur du dernier nombre et tout ce que j'ai à vérifier est cette entrée de l'utilisateur == guess_init.

Répondre

0

Dans votre cas, vous devez lire le random section à partir de la bibliothèque standard Python. En particulier, cela est pertinent:

random.randrange(start, stop[, step]) 
Return a randomly selected element from range(start, stop, step). This is equivalent to choice(range(start, stop, step)), but doesn’t actually build a range object. 
+0

plageAleatoire semble que cela peut fonctionner, mais comment puis-je limiter à générer seulement 4 nombres compris entre 1 et 100, et est-il possible de faire le numéro d'étape un nombre aléatoire entre 1 et 20 ? La seule façon que je peux penser pour aider est de jeter quelque chose avec des listes, mais mon professeur le décourage car nous ne sommes pas encore arrivés et nous voulons essayer de n'utiliser que ce que nous avons appris jusqu'ici en classe. – Kalivel

+0

Vous devez résoudre vous-même vos devoirs, pour que vous puissiez en faire l'expérience vous-même. Si vous n'utilisez pas les listes, vous pouvez utiliser une boucle for: 'n = 4'' step = randint (1, 20) '' pour i dans la plage (n): guess_init = choice (range (start, stop, step)) ' – MK87

+0

où est exactement le point si vous connaissez 3 des 4 numéros qui ont la même distance les uns aux autres et de deviner le numéro 4? Exemple: Je sais 16, 24, 32 et je devrais deviner le 4ème nombre? Surprise: 40 – MK87