Differences between revisions 1 and 10 (spanning 9 versions)
Revision 1 as of 2009-05-22 10:18:16
Size: 3778
Editor: pang
Comment: created section interact/games with "queens on a chess board" and "nim"
Revision 10 as of 2020-06-02 22:07:41
Size: 5629
Editor: kcrisman
Comment:
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:

== Zeros ==

Have you ever wished you could count the number of zero digits in a long number like Rainman?

by William Stein and Sequoia Lefthand

{{attachment:zeros.png}}

{{{#!sagecell
import random

def init():
    global B,Br,n,round,tm,t,v
    B = 40
    Br = 15
    n = 1
    round = 0
    tm = 0
    t = walltime()
    
    
init()

pretty_print(html("<h1 align=center>Zeros</h1>"))
pretty_print(html("<h2 align=center><font color='blue'>How many zeros?</font></h2>"))
    
@interact
def zeros(a=selector(buttons=True, nrows=1, values=['Reset'] + [1..B], default=1)):
    if a == 'Reset':
        init()
    global B,Br,n,round,tm,t,v
    H = "<center>"
    if a == n:
        if round > 0:
           H += "<font size=+3 color='red'>RIGHT</font>"
        r = walltime() - t
        tm += r
        round += 1
        t = walltime()
        while True:
           n2 = random.randrange(1,Br)
           if n2 != n:
               n = n2
               break
        if Br < B:
            Br += 2
    elif round > 0:
        H += "<font size=+2 color='blue'>Wrong. Try again...</font>"
    H += "</center>"
    pretty_print(html(H))
    H2 = "<font size=+%s color='#333'>%s</font>"%(random.randrange(-2,5),' '*random.randrange(20) + '0'*n)
    pretty_print(html(H2))
    html("</font>")
    if round > 0:
        pretty_print(html("<br><br><center>Score: %s rounds, Average time: %.1f seconds</center>"%(
                 round, float(tm)/round)))
}}}
Line 9: Line 68:
{{{ {{{#!sagecell
Line 22: Line 81:
        queens.remove(queen)         if queen in queens:
    
queens.remove(queen)
Line 38: Line 98:
            print 'Queen at (%d,%d) is threatened by another queen'%(x,y)             print('Queen at (%d,%d) is threatened by another queen' % (x, y))
Line 42: Line 102:
    show(matrix_plot(board, cmap='Oranges' ))
    show(matrix_plot(board, cmap='Oranges' ))
Line 48: Line 107:
Play nim against a perfect oponent. This interaction exemplifies the use of persistent data, and the auto_update=False option coded by mhansen and included in sage 3.3. Play nim against a perfect opponent. This interaction exemplifies the use of persistent data, and the auto_update=False option coded by mhansen and included in sage 3.3.
Line 50: Line 109:
{{{ {{{#!sagecell
Line 75: Line 134:
}}}
{{{

nim=[1,3,5,7]

nim=[1,3,5,6]
Line 79: Line 137:
def _(heap=input_box(default=1), amount=input_box(default=0), auto_update=False ): def _(heap=selector(range(len(nim)), buttons=True),
      amount=selector(range(max(nim)+1), buttons=True),
      auto_update=False):
Line 82: Line 142:
        print 'You have lost'         print('You have lost')
        return
Line 84: Line 145:
        print 'Try to take the last item'         print('Try to take the last item')
Line 86: Line 147:
        print 'Previous situation:'
        print game_repr(nim)
        print('Previous situation:')
        print(game_repr(nim))
Line 90: Line 151:
        print 'Your move:'
        print game_repr(nim)
        print('Your move:')
        print(game_repr(nim))
        if max(nim)==0:
            print('You win')
            return
Line 93: Line 157:
        print 'My move:'         print('My move:')
Line 95: Line 159:
            myheap,myamount=move_nim(nim)             myheap, myamount = move_nim(nim)
Line 98: Line 162:
            myheap=min(heap_number for heap_number, heap_size in enumerate(heap_size) if heap_size>0)             myheap=min(heap_number for heap_number, heap_size in enumerate(nim) if heap_size > 0)
            myamount=1
Line 100: Line 165:
        print game_repr(nim)         print(game_repr(nim))
        if max(nim)==0:
            print('I win')
        else:
            print('Please move again')
Line 102: Line 171:
        print 'Please choose a heap and the amount to substract from that heap'
        print game_repr(nim)
        print('Choose a heap and the amount to substract from that heap')
        print(game_repr(nim))

Sage Interactions - Games and Diversions

goto interact main page

Zeros

Have you ever wished you could count the number of zero digits in a long number like Rainman?

by William Stein and Sequoia Lefthand

zeros.png

Queens on board

An interaction to play with the problem of placing eight queens on a board so that they do not threaten each other. This interaction exemplifies the use of persistent data, and the auto_update=False option coded by mhansen and included in sage 3.3. by Pablo Angulo

queens.png

Nim

Play nim against a perfect opponent. This interaction exemplifies the use of persistent data, and the auto_update=False option coded by mhansen and included in sage 3.3. by Pablo Angulo

nim.png

interact/games (last edited 2020-06-02 22:07:41 by kcrisman)