Python Forum
Need help with a checkerboard algorythm
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Need help with a checkerboard algorythm
#1
Hey Guys,

In the middle of a python course and unfortunately the course is off the air right now so I cant get help from the instructors. Hopefully I can get some help here.

The chess() function gets a number in this case n that will determine the size of the canvas. For example:
8 x 8. THe function is supposed to color the pixels either black or white in order to create a checkerboard. As you can see, i tried using (x + y)%2 to determine what pixel to color but it doesnt seem to accept my answer. Plus if I show the image result it prints out very very small...

Anyways, would appreciate some help to solve this:

### DO NOT MODIFY THIS CODE ###
### THIS CODE LETS YOU VIEW THE IMAGE YOU MAKE ###
### USING im.show() ###

from PIL import Image
import urllib
import random


def display_image(im):
    fn = str(random.randint(1, 500)) + ".bmp"
    im.save(fn)
    print("<img src=\"/resources/{}\">".format(fn))
    print("")

Image.Image.show = display_image

### YOU CAN MODIFY BELOW THIS LINE ###

def chess(n):
    img = Image.new('L',(n,n),255)
    mat = img.load()
    for x in range(n):
       for y in range(n):
           if (x + y)%2:
               mat[x,y] = 0
           else:
               mat[x,y] = 255
    img.show()
    return img

### TESTS ###

print("********************")
print("Starting the test:")

print("********************")
print("Checking for n = 2")
ans = chess(2)
test = [0, 255, 255, 0] 
if type(ans) == Image.Image and list(ans.getdata()) == test:
    print("CORRECT: A proper chess board was drawn for n = 2")
else:
    print("WRONG: An improper chess board was drawn for n = 2")

print("********************")
print("Checking for n = 3")
ans = chess(3)
test = [0, 255, 0, 255, 0, 255, 0, 255, 0] 
if type(ans) == Image.Image and list(ans.getdata()) == test:
    print("CORRECT: A proper chess board was drawn for n = 3")
else:
    print("WRONG: An improper chess board was drawn for n = 3")

print("********************")    
print("Tests concluded, add more tests of your own below!")
print("********************")
The answers I receive are:
********************
Starting the test:
********************
Checking for n = 2


WRONG: An improper chess board was drawn for n = 2
********************
Checking for n = 3


WRONG: An improper chess board was drawn for n = 3
********************
Tests concluded, add more tests of your own below!
********************
Reply


Messages In This Thread
Need help with a checkerboard algorythm - by giladal - Sep-26-2020, 02:58 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Truck Speedometer algorythm Roger454 4 2,731 Mar-19-2020, 01:40 AM
Last Post: Roger454

Forum Jump:

User Panel Messages

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