کد پایتون سودوکو
نویسنده : رضا قربانی | زمان انتشار : 04 اسفند 1400 ساعت 08:03
جهت انجام پروژه های دانشجویی و یا تمرینهای برنامه نویسی رشته کامپیوتر میتوانید به آی دی تلگرام زیر پیام دهید
@AlirezaSepand
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | #?using? python 3.3.4 to develop sudoku game ?#?sudoku? game fromrandomimportrandint ?#?generate? board defbuild_board(): board=[] foriinrange(9): block=[[" "," "," "], [" "," "," "], [" "," "," "]] board.append(block) returnboard ## ## Ensure no other block in the same row has the value ## defrow_available(block,row,board,num): # Determine which of the main 3 rows this 3x3 block is at boardRow=int(block/3); good=True forbinrange(boardRow*3,(boardRow*3)+3): ifb!=block: ifnum inboard[b][row]: good=False break returngood ## ## Ensure no other block in the same col has the value ## defcol_available(block,row,col,board,num): # Determine which of the main 3 columns this 3x3 block is at boardCol=block%3; good=True forbin(boardCol,boardCol+3,boardCol+6): ifb!=block: ifnum==board[b][row][col]: good=False break returngood deffill_board(board): # to fill all numbers 1 through 9 fornum inrange(1,10): # for each of the 9 3x3 blocks forblock inrange(len(board)): triedRow=[-1] foundSpot=False foriinrange(3): row=-1 whilerow intriedRow: row=randint(0,2) triedRow.append(row) if" "inboard[block][row]androw_available(block,row,board,num): triedCol=[-1] forjinrange(3): col=-1 whilecol intriedCol: col=randint(0,2) triedCol.append(col) if" "==board[block][row][col]andcol_available(block,row,col,board,num): board[block][row][col]=num foundSpot=True iffoundSpot: break iffoundSpot: break ifnotfoundSpot: print("Never Found a Spot for "+str(num)+" in block "+str(block)) returnboard ?#?display? board defdisplay(board): num=[] foriinboard:?#?block? level forsubI ini:?#?row? forsubsubI insubI:?#?item? num.append(subsubI) print("---------------------------------------") print("| {} | {} | {} || {} | {} | {} || {} | {} | {} |".format(num[0],num[1],num[2],num[9],num[10],num[11],num[18],num[19],num[20])) print("---------------------------------------") print("| {} | {} | {} || {} | {} | {} || {} | {} | {} |".format(num[3],num[4],num[5],num[12],num[13],num[14],num[21],num[22],num[23])) print("---------------------------------------") print("| {} | {} | {} || {} | {} | {} || {} | {} | {} |".format(num[6],num[7],num[8],num[15],num[16],num[17],num[24],num[25],num[26])) print("---------------------------------------") print("---------------------------------------") print("| {} | {} | {} || {} | {} | {} || {} | {} | {} |".format(num[27],num[28],num[29],num[36],num[37],num[38],num[45],num[46],num[47])) print("---------------------------------------") print("| {} | {} | {} || {} | {} | {} || {} | {} | {} |".format(num[30],num[31],num[32],num[39],num[40],num[41],num[48],num[49],num[50])) print("---------------------------------------") print("| {} | {} | {} || {} | {} | {} || {} | {} | {} |".format(num[33],num[34],num[35],num[42],num[43],num[44],num[51],num[52],num[53])) print("---------------------------------------") print("---------------------------------------") print("| {} | {} | {} || {} | {} | {} || {} | {} | {} |".format(num[54],num[55],num[56],num[63],num[64],num[65],num[72],num[73],num[74])) print("---------------------------------------") print("| {} | {} | {} || {} | {} | {} || {} | {} | {} |".format(num[57],num[58],num[59],num[66],num[67],num[68],num[75],num[76],num[77])) print("---------------------------------------") print("| {} | {} | {} || {} | {} | {} || {} | {} | {} |".format(num[60],num[61],num[62],num[69],num[70],num[71],num[78],num[79],num[80])) print("---------------------------------------") ?#?test? board=build_board() board=fill_board(board) display=display(board) |
منبع: jahansource.com