Error processing request

Parameters

CONTENT_LENGTH0
REQUEST_METHODGET
REQUEST_URI/revision/Surprise+belt+game?V=1
QUERY_STRINGV=1
CONTENT_TYPE
DOCUMENT_URI/revision/Surprise+belt+game
DOCUMENT_ROOT/var/www/nikit/nikit/nginx/../docroot
SCGI1
SERVER_PROTOCOLHTTP/1.1
HTTPSon
REMOTE_ADDR172.71.254.86
REMOTE_PORT47978
SERVER_PORT4443
SERVER_NAMEwiki.tcl-lang.org
HTTP_HOSTwiki.tcl-lang.org
HTTP_CONNECTIONKeep-Alive
HTTP_ACCEPT_ENCODINGgzip, br
HTTP_X_FORWARDED_FOR3.135.194.251
HTTP_CF_RAY884f0268bd27233f-ORD
HTTP_X_FORWARDED_PROTOhttps
HTTP_CF_VISITOR{"scheme":"https"}
HTTP_ACCEPT*/*
HTTP_USER_AGENTMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
HTTP_CF_CONNECTING_IP3.135.194.251
HTTP_CDN_LOOPcloudflare
HTTP_CF_IPCOUNTRYUS

Body


Error

Unknow state transition: LINE -> END

-code

1

-level

0

-errorstack

INNER {returnImm {Unknow state transition: LINE -> END} {}} CALL {my render_wikit {Surprise belt game} {**Summary**
[RJM] 2018-3 This game is based on the final part of a famous television game that originated from a Dutch showmaster ("een van de acht", Mies Bouwman). The show concept had been sold to Germany (R. Carrell) as "Am Laufenden Band", and this television game/show was also presented in other countries, e.g. in the UK as "The Generation Game". By end of february 2018, Bouwman died. The code below was created as a honour to her.

Run the code below after you have put a collection of up to 40 images (jpg or png) in the same directory. See the code comment near the bottom for some handling hints.

I have the impression that the program runs a bit slowly on Windows, but it runs quite flawlessly under Linux. Probably, a modified technical animation concept can improve the behaviour under Windows.


**Code**
----
======tcl
#!/usr/bin/tclsh
package require Tk
package require img::jpeg
package require img::png

if {[winfo exist .c]} {
    destroy .c
}

proc init {} {
    canvas .c -width 1024 -height 768 -xscrollincrement 5 -yscrollincrement 5
    # size set to accomodate fullscreen mode on my beamer
    pack .c
    
    # create a virtual transport belt with some imperfectances
    .c create line 0 0 0 0  -width 8 -smooth 1 -tag band
    set y 0
    for {set x 0} {$x < 20000} {incr x 20} {
        set y [expr {int(rand()*4)}]
        .c insert band end "$x $y"
    }
    
    # read and position all images into the invisible part of the canvas
    set files [lsort [glob -nocomplain *.jpeg *.jpg *.JPG *.png *.PNG]]
    if {$files != ""} {
        set x0 1400
        set y0 -3
        foreach file $files {
            image create photo $file -file $file
            .c create image $x0 $y0 -image $file -anchor sw
            incr x0 1024
        }
    }
    .c config -scrollregion [.c bbox all]
    update
    #.c yview scroll -700 units   ;# adjust vertically if necessary
    wm attribute . -fullscreen 1
}

# set pos 0.1
proc animate {interval} {
    # global pos
    after $interval animate $interval
    .c xview scroll 1 units
    #set pos [expr {$pos + 0.0001}]
    #.c xview moveto $pos
}

# The first space key expands the application window to full screen, which must be done
# after the application has been dragged onto the beamer screen.
# The second space key starts the belt.
bind . <space> {
    if {![winfo exist .c]} {
        init
    } else {
        # the text here is the classic Dutch phrase associated with the belt game
        .c create text 512 -380 -text "Licht uit\nspot aan!" -font "Helvetica 96" -justify center
        # (here, an animation could darken the canvas background)
        after 2000
        animate 40        
    }
}


----
<<categories>> Toys | Example | Games |  Canvas | Toys and Games | Graphics |  Tcl/Tk Games | Application} regexp2} CALL {my render {Surprise belt game} {**Summary**
[RJM] 2018-3 This game is based on the final part of a famous television game that originated from a Dutch showmaster ("een van de acht", Mies Bouwman). The show concept had been sold to Germany (R. Carrell) as "Am Laufenden Band", and this television game/show was also presented in other countries, e.g. in the UK as "The Generation Game". By end of february 2018, Bouwman died. The code below was created as a honour to her.

Run the code below after you have put a collection of up to 40 images (jpg or png) in the same directory. See the code comment near the bottom for some handling hints.

I have the impression that the program runs a bit slowly on Windows, but it runs quite flawlessly under Linux. Probably, a modified technical animation concept can improve the behaviour under Windows.


**Code**
----
======tcl
#!/usr/bin/tclsh
package require Tk
package require img::jpeg
package require img::png

if {[winfo exist .c]} {
    destroy .c
}

proc init {} {
    canvas .c -width 1024 -height 768 -xscrollincrement 5 -yscrollincrement 5
    # size set to accomodate fullscreen mode on my beamer
    pack .c
    
    # create a virtual transport belt with some imperfectances
    .c create line 0 0 0 0  -width 8 -smooth 1 -tag band
    set y 0
    for {set x 0} {$x < 20000} {incr x 20} {
        set y [expr {int(rand()*4)}]
        .c insert band end "$x $y"
    }
    
    # read and position all images into the invisible part of the canvas
    set files [lsort [glob -nocomplain *.jpeg *.jpg *.JPG *.png *.PNG]]
    if {$files != ""} {
        set x0 1400
        set y0 -3
        foreach file $files {
            image create photo $file -file $file
            .c create image $x0 $y0 -image $file -anchor sw
            incr x0 1024
        }
    }
    .c config -scrollregion [.c bbox all]
    update
    #.c yview scroll -700 units   ;# adjust vertically if necessary
    wm attribute . -fullscreen 1
}

# set pos 0.1
proc animate {interval} {
    # global pos
    after $interval animate $interval
    .c xview scroll 1 units
    #set pos [expr {$pos + 0.0001}]
    #.c xview moveto $pos
}

# The first space key expands the application window to full screen, which must be done
# after the application has been dragged onto the beamer screen.
# The second space key starts the belt.
bind . <space> {
    if {![winfo exist .c]} {
        init
    } else {
        # the text here is the classic Dutch phrase associated with the belt game
        .c create text 512 -380 -text "Licht uit\nspot aan!" -font "Helvetica 96" -justify center
        # (here, an animation could darken the canvas background)
        after 2000
        animate 40        
    }
}


----
<<categories>> Toys | Example | Games |  Canvas | Toys and Games | Graphics |  Tcl/Tk Games | Application}} CALL {my revision {Surprise belt game}} CALL {::oo::Obj1572897 process revision/Surprise+belt+game} CALL {::oo::Obj1572895 process}

-errorcode

NONE

-errorinfo

Unknow state transition: LINE -> END
    while executing
"error $msg"
    (class "::Wiki" method "render_wikit" line 6)
    invoked from within
"my render_$default_markup $N $C $mkup_rendering_engine"
    (class "::Wiki" method "render" line 8)
    invoked from within
"my render $name $C"
    (class "::Wiki" method "revision" line 31)
    invoked from within
"my revision $page"
    (class "::Wiki" method "process" line 56)
    invoked from within
"$server process [string trim $uri /]"

-errorline

4