KillerBots

Check-in [8d591e05b7]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Added base pieces.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:8d591e05b750cd784b2536b03395240aa26f45f4
User & Date: gerald 2013-08-12 20:28:56
Context
2013-08-16
21:41
Game now feature complete!! check-in: 11179945c5 user: gerald tags: trunk
2013-08-12
20:28
Added base pieces. check-in: 8d591e05b7 user: gerald tags: trunk
2013-08-09
21:22
Bring it upto speed. check-in: 64cb3a83d0 user: gerald tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to KillerBots.tcl.

25
26
27
28
29
30
31
32
33
34
35
36
37





38
39
40
41
        source $file
    }
}

##
## Load the message files
##
foreach dir [list [file join $baseDir msgs] ./Xmlfile/msgs] {
    if {[file exists]} {
        ::msgcat::mcload $dir
    }
}






##
## Invoke the main procedure
##
main {*}$argv







|





>
>
>
>
>




25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
        source $file
    }
}

##
## Load the message files
##
foreach dir [list [file join $baseDir msgs] ~/KillerBots/msgs] {
    if {[file exists]} {
        ::msgcat::mcload $dir
    }
}

##
## Load Perferences
##
loadPerferences

##
## Invoke the main procedure
##
main {*}$argv

Added gui/CreatePerferencesGui.tcl.





































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
proc ::gui::CreatePerferencesGui {} {
    variable windows
    variable ::perferences

    set main windows(main)
    set w [toplevel $main.perferences]
    wm withdraw $w
    set windows(perferences) $w
    wm transient $w $main
    wm title $w [::msgcat::mc perferences.title]
    wm protocol $w WM_DELETE_WINDOW ::gui::perferencesDismiss

    set f $w.frame
    ttk::frame $f
    grid configure $f -sticky nsew
    grid columnconfigure $w $f -weight 1
    grid rowconfigure $w $f -weight 1
}

Changes to gui/HelpSystem.tcl.

14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
        set baseFile $file
    }

    if {$push} {
        ::gui::help::helpStack push $baseFile
    }

    if {[file exists [file join /.XmlFileBrowser helpFiles $baseFile]]} {
        set file [file join /.XmlFileBrowser helpFiles $baseFile]
    } else {
        set file [file join $baseDir helpFiles $baseFile]
    }

    set ifd [open $file r]
    fconfigure $ifd -encoding utf-8
    set html [read $ifd]







|
|







14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
        set baseFile $file
    }

    if {$push} {
        ::gui::help::helpStack push $baseFile
    }

    if {[file exists [file join ~/.KillerBots helpFiles $baseFile]]} {
        set file [file join ~/.KillerBots helpFiles $baseFile]
    } else {
        set file [file join $baseDir helpFiles $baseFile]
    }

    set ifd [open $file r]
    fconfigure $ifd -encoding utf-8
    set html [read $ifd]

Changes to gui/createGui.tcl.

15
16
17
18
19
20
21

22
23
24
foreach file [glob [file join $baseDir gui icons *]] {
    image create photo [file tail [file rootname $file]] -file $file
}

proc createGui {} {
    ::gui::createMainWindow
    ::gui::createHelpWindow

}

wm withdraw .







>



15
16
17
18
19
20
21
22
23
24
25
foreach file [glob [file join $baseDir gui icons *]] {
    image create photo [file tail [file rootname $file]] -file $file
}

proc createGui {} {
    ::gui::createMainWindow
    ::gui::createHelpWindow
    ::gui::CreatePerferencesGui
}

wm withdraw .

Changes to gui/createMainWindow.tcl.

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
..
53
54
55
56
57
58
59

60

61











62











63
64
65

66
67
68
69
70
71
72
    wm withdraw $w
    set windows(main) $w
    wm transient $w .
    wm title $w [::msgcat::mc main.title]
    wm protocol $w WM_DELETE_WINDOW ::gui::createMainWindowDismiss

    set menu $w.menubar
    $w configure -menu $menu


    menu $menu


    menu $menu.help
    menu $menu.file
    $menu add cascade \
        -menu $menu.file \
        -label [::msgcat::mc main.FileMenuLabel]
    createMainWindowFileMenu $menu.file

    $menu add cascade \
        -menu $menu.help \
        -label [::msgcat::mc main.HelpMenuLabel]
    createMainWindowHelpMenu $menu.help


    ::ttk::frame $w.frame
    grid configure $w.frame -sticky nsew
    grid columnconfigure $w $w.frame -weight 1
    grid rowconfigure $w $w.frame -weight 1

    set f $w.frame
    canvas $f.data \
        -xscrollcommand [list $f.hsb set] \
        -yscrollcommand [list $f.hsb set] \
        -scrollregion [list 0 1000 1000 0]



    ::ttk::scrollbar $f.hsb \
        -orient horizontal \
        -command [list $f.data xview]
    ::ttk::scrollbar $f.vsb \
        -orient vertical \
        -command [list $f.data yview]





    grid configure $f.data $f.vsb -sticky nsew
    grid configure $f.hsb -sticky nsew
    grid columnconfigure $f $f.data -weight 1
    grid rowconfigure $f $f.data -weight 1

    ::autoscroll::autoscroll $f.vsb
................................................................................
}

proc ::gui::createMainWindowDismiss {} {
    destroy .
}

proc ::gui::createMainWindowFileMenu {menu} {

}













proc ::gui::createMainWindowHelpMenu {menu} {











    $menu add command \
        -label [::msgcat::mc HelpMenu.About] \
        -command {displayWindow helpAbout}

    $menu add command \
        -label [::msgcat::mc HelpMenu.Help] \
        -command {displayWindow helpViewer}
}

proc ::gui::createAboutWindow {main} {
    variable windows







|
>
>
|
>
>











>







|


|
>
>
>
|


|


>
>
>
>







 







>
|
>

>
>
>
>
>
>
>
>
>
>
>

>
>
>
>
>
>
>
>
>
>
>
|
|
|
>







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
..
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
106
107
108
109
    wm withdraw $w
    set windows(main) $w
    wm transient $w .
    wm title $w [::msgcat::mc main.title]
    wm protocol $w WM_DELETE_WINDOW ::gui::createMainWindowDismiss

    set menu $w.menubar
    menu $menu
    if {[string equal $::tcl_platform(os) Darwin]} {
        set appleMenu $menu.apple
        menu $appleMenu
        $menu add cascade -menu $appleMenu
    }
    menu $menu.help
    menu $menu.file
    $menu add cascade \
        -menu $menu.file \
        -label [::msgcat::mc main.FileMenuLabel]
    createMainWindowFileMenu $menu.file

    $menu add cascade \
        -menu $menu.help \
        -label [::msgcat::mc main.HelpMenuLabel]
    createMainWindowHelpMenu $menu.help
    $w configure -menu $menu

    ::ttk::frame $w.frame
    grid configure $w.frame -sticky nsew
    grid columnconfigure $w $w.frame -weight 1
    grid rowconfigure $w $w.frame -weight 1

    set f $w.frame
    ::ttk::treeview $f.data \
        -xscrollcommand [list $f.hsb set] \
        -yscrollcommand [list $f.hsb set] \
        -columns {id type name value} \
        -displaycolumns {type value} \
        -show {tree headings} \
        -selectmode browse
    scrollbar $f.hsb \
        -orient horizontal \
        -command [list $f.data xview]
    scrollbar $f.vsb \
        -orient vertical \
        -command [list $f.data yview]
    foreach column {id type name value} {
        $f.data heading $column -text [::msgcat::mc ColumnLabel,$column]
    }
    set windows(dataWidget) $f.data

    grid configure $f.data $f.vsb -sticky nsew
    grid configure $f.hsb -sticky nsew
    grid columnconfigure $f $f.data -weight 1
    grid rowconfigure $f $f.data -weight 1

    ::autoscroll::autoscroll $f.vsb
................................................................................
}

proc ::gui::createMainWindowDismiss {} {
    destroy .
}

proc ::gui::createMainWindowFileMenu {menu} {
    variable windows

    set ::fileInfo(saveNeeded) 0

    $menu add separator
    $menu add command \
        -label [::msgcat::mc FileMenu.Install] \
        -command {installLocalization}
    if {![string equal $::tcl_platform(os) Darwin]} {
        $menu add command \
            -label [::msgcat::mc Menu.Perferences] \
            -command {displayWindow perferences}
    } else {
}

proc ::gui::createMainWindowHelpMenu {menu} {
    if {[string equal $::tcl_platform(os) Darwin]} {
        set parent [winfo parent $menu]
        set appleMenu $parent
        append appleMenu {.apple}
        $appleMenu add command \
            -label [::msgcat::mc HelpMenu.About] \
            -command {displayWindow helpAbout}
        $appleMenu add command \
            -label [::msgcat::mc Menu.Perferences] \
            -command {displayWindow perferences}
    } else {
        $menu add command \
            -label [::msgcat::mc HelpMenu.About] \
            -command {displayWindow helpAbout}
    }
    $menu add command \
        -label [::msgcat::mc HelpMenu.Help] \
        -command {displayWindow helpViewer}
}

proc ::gui::createAboutWindow {main} {
    variable windows

Added gui/icons/PERSON_Al.png.

cannot compute difference between binary files

Added gui/icons/PERSON_Brad.png.

cannot compute difference between binary files

Added gui/icons/PERSON_Cindy.png.

cannot compute difference between binary files

Added gui/icons/ROBOT_Alfred.png.

cannot compute difference between binary files

Added gui/icons/ROBOT_Bob.png.

cannot compute difference between binary files

Added gui/icons/ROBOT_Carl.png.

cannot compute difference between binary files

Added gui/icons/ROBOT_Dan.png.

cannot compute difference between binary files

Added gui/icons/ROBOT_Edwardo.png.

cannot compute difference between binary files

Added gui/icons/ROBOT_Fritz.png.

cannot compute difference between binary files

Added gui/icons/ROBOT_Gomeze.png.

cannot compute difference between binary files

Added gui/icons/ROBOT_Hal.png.

cannot compute difference between binary files

Added gui/icons/ROBOT_Igor.png.

cannot compute difference between binary files

Changes to helpFiles/index.html.

1
2
3
4
5
6
7
8
9
10


















































11
12
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd"
    >
<html lang="en">
<head>
    <title>Documentation for XmlFileBrowser</title>
</head>
<body>
    <h1>Documentation for XmlFileBrowser</h1>
    <a href="test.html">Test link</a>


















































</body>
</html>





|


|
<
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>


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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd"
    >
<html lang="en">
<head>
    <title>Documentation for KillerBots</title>
</head>
<body>
    <h1>Documentation for KillerBots</h1>


    <h2>Back Story</h2>

    <p>
        You are a deep space scout ship pilot who has been captured by the
        dreaded Dorkians, a race of homicidal robots. They have placed you in an
        ancient walled enclosure. Other than throwing in e-rations from you ship
        daily, they have left you alone -- until today.
    </p>

    <p>
        Today they have informed you that you will give your life, literally to
        the forming of neural pathways in newly built Dorkians. Newly built
        Dorkians have only very "primative" AIs. To help them improve, a group
        of them will be placed in your enclosure tommorrow to attempt to kill
        you. They will be removed after a given time period -- if they have not
        killed you.
    </p>

    <p>
        You have been told that each robot will be three (3) meters tall, a
        meter wide and have a reach of two meters (i.e. if they come within two
        meters of you they will rip you limb from limb). The robots will, at
        least initially until they learn better, proceed directly toward you.
        The can be destroyed by colliding into each other, at which point they
        will attack each other until they are both junk heaps. There may be
        additional ways to destroy them, but this is all you have been told.
    </p>

    <p>
        During your confinement, you have disovered that your enclosure has
        several pools of fresh water as well as several "hole" at the base of
        the walls. The holes lead to a maze of twisty little passages, all
        seemingly alike. You think, but are not sure, that the passages are too
        small for the robots to be able to enter. You have not been able to map
        this maze of passages - yet. Unfortunitly you have not found any
        passages that lead out of your enclosure, but you continue to be hopeful
        -- at least until today.
    </p>

    <h2>Game Play</h2>

    <p>
        Simply click on spot and you will attempt to move there. Both you and
        the robots move at the same speed, but the refesh rate can be controlled
        via the Perferences screen. To kill a robot have them run into each
        other. There may be other ways to kill robots, experiment -- if you
        dare. Also, remember, that these robots can learn.
    </p>

</body>
</html>

Added lib/loadPerferences.tcl.







>
>
>
1
2
3
proc loadPerferences {} {
    
}

Added lib/simulation.tcl.





>
>
1
2
package require math::geometry

Changes to msgs/C.msg.

11
12
13
14
15
16
17





Copyright ©2013 KnG Consulting, LLC.
}

::msgcat::mcset C helpViewer.title     {Help for XML File Exporer}

::msgcat::mcset C index.html           {index.html}











>
>
>
>
11
12
13
14
15
16
17
18
19
20
21

Copyright ©2013 KnG Consulting, LLC.
}

::msgcat::mcset C helpViewer.title     {Help for XML File Exporer}

::msgcat::mcset C index.html           {index.html}

::msgcat::mcset C FileMenu.Install     {Install Localization Files...}

::msgcat::mcset C Menu.Perferences     {Perferences...}

Changes to msgs/ROOT.msg.

11
12
13
14
15
16
17






Copyright ©2013 KnG Consulting, LLC.
}

::msgcat::mcset {} helpViewer.title     {Help for Killer Robots}

::msgcat::mcset {} index.html           {index.html}












>
>
>
>
>
11
12
13
14
15
16
17
18
19
20
21
22

Copyright ©2013 KnG Consulting, LLC.
}

::msgcat::mcset {} helpViewer.title     {Help for Killer Robots}

::msgcat::mcset {} index.html           {index.html}

::msgcat::mcset {} FileMenu.Install     {Install Localization Files...}

::msgcat::mcset {} Menu.Perferences     {Perferences...}

Changes to msgs/en.msg.

11
12
13
14
15
16
17





Copyright ©2013 KnG Consulting, LLC.
}

::msgcat::mcset en helpViewer.title     {Help for XML File Exporer}

::msgcat::mcset en index.html           {index.html}











>
>
>
>
11
12
13
14
15
16
17
18
19
20
21

Copyright ©2013 KnG Consulting, LLC.
}

::msgcat::mcset en helpViewer.title     {Help for XML File Exporer}

::msgcat::mcset en index.html           {index.html}

::msgcat::mcset en FileMenu.Install     {Install Localization Files...}

::msgcat::mcset en Menu.Perferences     {Perferences...}