
ein counter wäre cool, bzw bei jedem richtigen guess ein punkt mehr oder einfach der counter +1
dachte es mir mal so:
Counter/Points
Guess a Number from 1-10: :::
Wow you did it
Counter/Points 1
New round
oder so


MfG
Gabriel
Du solltest deine Kommentare besser lesen - wenn wie dort angegeben die While Schleife verlassen wird, wie soll der Teil danach jemals erreicht werden?Frozen hat geschrieben:Code: Alles auswählen
while 1: ... break # While Schleife verlassen if i == number: ....
Damit definierst du eine Funktion - du solltest dir vllt. einmal das Tutorial anschauen: http://docs.python.org/tut/tut.htmlganz anders als mein anfänglicher code, ich muss mich mal in deins einarbeiten und gleich die erste n00b frage was ist def?
Vielleichst solltest du dir doch mal ein Tutorial durchlasen? def definiert eine Funktion. Der Code hat einfach Funktionen gebraucht, dadurch wurde er gleich leserlicher.Frozen hat geschrieben:ganz anders als mein anfänglicher code, ich muss mich mal in deins einarbeiten und gleich die erste n00b frage was ist def?
Code: Alles auswählen
def points_counter(computer, player):
points = 0
points += 1 if computer == player else False
return points
Code: Alles auswählen
if check_range(user_entry):
print "Error: Out of range (1-10)!"
correct = check_correct(prog_entry, user_entry)
display_message(correct)
if correct:
print "Your Score: "
print points_counter(prog_entry, user_entry)
print 'New round'
break
Code: Alles auswählen
#!/usr/bin/env python
# -+- coding: UTF-8 -*-
import random
def greet():
print "Welcome to the Guessing Game"
def check_range(number):
"""Checks the range of the entrered number.
Validity range: 1 <= number <= 10"""
valid = True if number > 10 or number < 1 else False
return valid
def check_correct(computer, player):
"""Checks whether the value entered by the user
is the same as the computers"""
correct = True if computer == player else False
return correct
def display_message(won):
"""Opens the correct files and chooses random responses,
which will be displayed"""
filename = 'right.txt' if won else 'wrong.txt'
f_obj = file(filename, 'r')
answer = random.choice(f_obj.readlines())
f_obj.close()
print answer,
def points_counter(computer, player):
points = 0
points += 1 if computer == player else False
return points
def main():
greet()
while True:
prog_entry = random.randrange(1, 11, 1)
while True:
user_entry = raw_input("Guess a Number from 1-10: ")
try:
# String eingabe in Zahl umwandeln
user_entry = int(user_entry)
except ValueError:
# Fehler abfangen, wenn die Eingaben nicht
# umgewandelt werden kann
print "Error: Not a number!"
if check_range(user_entry):
print "Error: Out of range (1-10)!"
correct = check_correct(prog_entry, user_entry)
display_message(correct)
if correct:
print "Your Score: "
print points_counter(prog_entry, user_entry)
print 'New round'
break
if __name__ == '__main__':
main()
Wenn du "klarerweise" schreiben würdest, ist es auch ein deutsches Wort und du bräuchtest keine Anführungszeichen...Frozen hat geschrieben:Ich habe mal versucht anhand der gegebene hilfe was zu machen: points_counter aber 'klararweiße' ist wieder ein fehler drinn
Ich vermute eher es liegt daran, dass points am Anfang der Funktion immer mit 0 initialisiert wird, d.h. die Funktion kann nur entweder "1" zurückgeben, oder... hmm... naja, was immer halt bei "0 + False" herauskommt, womit wir beim nächsten Problem wären:ich habe zwar einen zähler der aber nachdem ersten guess wieder auf 0 ist , ich vermute wegen den return points
Code: Alles auswählen
points += 1 if computer == player else False
Code: Alles auswählen
if computer == player:
points += 1
else:
points += False
Code: Alles auswählen
correct = check_correct(prog_entry, user_entry)
display_message(correct)
if correct:
print "Your Score: "
print points_counter(prog_entry, user_entry)
print 'New round'
break
Du bindest eine 0 an `points` addierst dann entweder 1 oder False zu der 0 und gibst das Ergebnis zurück. Und ich bin verwirrt.Frozen hat geschrieben:was sagt ihr? wie kann ich es ändern plx tipps, aber bitte keine fertige codes! war eh froh dass ich den counter "geschafft" habe bis 1
Code: Alles auswählen
def points_counter(computer, player): points = 0 points += 1 if computer == player else False return points
Code: Alles auswählen
def check_range(number):
"""Checks the range of the entrered number.
Validity range: 1 <= number <= 10"""
return 1 <= number <= 10
def check_correct(computer, player):
"""Checks whether the value entered by the user
is the same as the computers"""
return computer == player
Ok, werde ich mal machen, ist logischLuzandro hat geschrieben: Wenn du "klarerweise" schreiben würdest, ist es auch ein deutsches Wort und du bräuchtest keine Anführungszeichen...
Es ist schwierig dein eigegenen code auf deutsch korrekt wiederzugeben, ich habe es falsch verstanden und bin einen falschen gedankenweg gegangen.BlackJack hat geschrieben: Du bindest eine 0 an `points` addierst dann entweder 1 oder False zu der 0 und gibst das Ergebnis zurück. Und ich bin verwirrt.
Ubuntu - nutze ich auch auf einem meiner Computer, wie BlackJack Version 6.06 (aber aus anderen Gründen). Aber auf meinem Debian habe ich hingegen Python 2.5 kompiliert, eben weil ich dann mit den neuen Features rumspielen kann.Frozen hat geschrieben:(Wie ist eigentlihc Ubuntu? möchte es mir auch zulegen)