Now...when done. the output should look like this:
>>> main()

Welcome to the game of BULLS and COWS.
The objective in this game is for you to guess a 4-digit number
The computer responds with how close your guess is to the target
BULLS = # common digits with exact matches and
COWS = # common digits in wrong position.

Enter guess number 1: 1876
Bulls = 1 Cows = 1
Enter guess number 2: 1183
Your guess should not contain repeating digits
Enter guess number 2: 1596
Bulls = 1 Cows = 2
Enter guess number 3: 1956
Bulls = 3 Cows = 0
Enter guess number 4: 1954
Bulls = 3 Cows = 0
Enter guess number 5: 1958
Bulls = 4 Cows = 0
Congratulations You Won!!

and

Welcome to the game of BULLS and COWS.
The objective in this game is for you to guess a 4-digit number
The computer responds with how close your guess is to the target
BULLS = # common digits with exact matches and
COWS = # common digits in wrong position.

Enter guess number 1: 1234
Bulls = 0 Cows = 1
Enter guess number 2: 2345
Bulls = 0 Cows = 0
Enter guess number 3: 1678
Bulls = 0 Cows = 3
Enter guess number 4: 1679
Bulls = 0 Cows = 3
Enter guess number 5: 1670
Bulls = 0 Cows = 4
Enter guess number 6: 6170
Bulls = 0 Cows = 4
Enter guess number 7: 6710
Bulls = 1 Cows = 3
Enter guess number 8: 7610
Bulls = 2 Cows = 2
Enter guess number 9: 7601
Bulls = 1 Cows = 3
Enter guess number 10: 6701
Bulls = 0 Cows = 4
Sorry You ran out of guesses!!
The correct number was: 7016

I already have the smaller programs needed to run the main...I just don't know how to set up the main function to make it work. this is what I have so far.

from myro import *
from Bulls import *

def extractDigits(num):
return [(num/1000)%10,(num/100)%10,(num/10)%10,…

def numberOfBulls(num1, num2):
c3,c2,c1,c0 = extractDigits(num1)
d3,d2,d1,d0 = extractDigits(num2)
bulls = 0
if(d3 == c3):
bulls = bulls + 1
if (d2 == c2):
bulls = bulls + 1
if (d1 == c1):
bulls = bulls + 1
if (d0 == c0):
bulls = bulls + 1
return bulls

def numberOfCows (num1,num2):
c3,c2,c1,c0 = extractDigits(num1)
d3,d2,d1,d0 = extractDigits(num2)
cows = 0
if ((d3 == c2)or(d3 == c1)or(d3 == c0)):
cows = cows + 1
if ((d2 == c3)or(d2 == c1)or(d2 == c0)):
cows = cows + 1
if ((d1 == c3)or(d1 == c2)or(d1 == c0)):
cows = cows + 1
if ((d0 == c3)or(d0 == c2)or(d0 == c1)):
cows = cows + 1
return cows

def noRepeatingDigits(num):
d3 = (num / 1000) % 10
d2 = (num / 100) % 10
d1 = (num / 10) % 10
d0 = (num / 1) % 10
return ((d3 != d2) and (d3 != d1) and (d3 != d0) and
(d2 != d1) and (d2 != d0) and
(d1 != d0))

def produceTarget():
while True:
num = randint (1000,9999)
if (numberOfBulls(num1, num2)):
break
return num

def welcomeMessage():
print "Welcome to the game of BULLS and COWS."
print "The Objective in this game is for you to guess a 4-digit number"
print "The computer responds with how close your guess is to the target"
print "BULLS = # common digits with exact matches and"
print "COWS = common digits in wrong position."

def main():
maxTurns = 10
turns = 1
guess = input("Enter guess number", turns,": " )

welcomeMessage()
while turns != maxTurns:
noRepeatingDigits(produceTarget())
if guess


if numberOfBulls != 4:
turns = turns + 1

see? my main functions kind of a little sketchy to even start out with...can you guys please help me?

Recommended Answers

All 2 Replies

First help us out by indenting your code blocks properly as required by the Python syntax.

Code tags help too.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.