Contact Us!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
sagemathinc

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.

GitHub Repository: sagemathinc/cocalc-example-files
Path: blob/master/sage/interact/Games/queens.sagews
Views: 1225
queens=[] opciones=['Clean board', 'Add queen', 'Remove queen' ] @interact def _(queen=input_box(default=(0,0)), opcion=selector(opciones, buttons=True), auto_update=False ): global queens if opcion=='Clean board': queens=[] elif opcion=='Add queen': if queen not in queens: queens.append(queen) else: if queen in queens: queens.remove(queen) board=matrix(ZZ,8,8) for x in range(8): for y in range(8): board[x,y]=(x+y)%2*7 for x,y in queens: for i in range(8): if i!=y: board[x,i]=1+(x+i)%2*5 if i!=x: board[i,y]=1+(i+y)%2*5 for i in range(-min(x,y),min(8-x,8-y)): if i!=0: board[x+i,y+i]=1+(x+y)%2*5 for i in range(max(-x,y-7),min(8-x,y+1)): if i!=0: board[x+i,y-i]=1+(x+y)%2*5 for x,y in queens: if ( board[x,y]==1 or board[x,y]==6 ): print 'Queen at (%d,%d) is threatened by another queen'%(x,y) board[x,y]=4 else: board[x,y]=3 show(matrix_plot(board, cmap='Oranges' ))
Interact: please open in CoCalc