Python Forum
Python not correctly choosing numbers for my game.
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Python not correctly choosing numbers for my game.
#4
Another solution:
numbers_used = [0, 0, 0, 0, 0, 0, 0, 0, 0]
slots_used = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

def get_a_number(message, min, max):
    number = ''
    while True:
        while not number.isdecimal():
            number = input(message)
        number = int(number)
        if number < min or number > max:
            print('Number must be between {} and {}'.format(min, max))
            continue
        break
    return(int(number))

def pick_a_number():
    index = 0
    row = 0
    column = 0
    while True:
        row = get_a_number('Please enter row: ', 1, 3)
        column = get_a_number('Please enter column: ', 1, 3)
        if slots_used[row - 1][column - 1]:
            print('Row: {}, Column: {} is already occupied'.format(row, column))
            continue
        number = get_a_number ('Please pick a number between 1 and 9: ', 1, 9)
        if numbers_used[number - 1]:
            print('Sorry, that number has already been used')
            continue
        break
    print(f'row: {row}, column: {column} number: {number}')
    numbers_used[number - 1] = 1
    slots_used[row-1][column-1] = 1
    return number, row, column

def testit():
    count = 0
    while True:
        number, row, column = pick_a_number()
        print('Selected: {} in row: {}, column: {}'.format(number, row, column))
        count += 1
        if count == 9:
            break

if __name__ == '__main__':
    testit()
Reply


Messages In This Thread
RE: Python not correctly choosing numbers for my game. - by Larz60+ - Mar-29-2018, 04:53 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  From python game in terminal to a website game using bottle Njanez 0 3,894 Aug-13-2021, 01:11 PM
Last Post: Njanez

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020