We are starting off this lesson by finishing our Sudoku Puzzle Solver Application. When you select New Puzzle on the form, you are presented with the following dialog.
We have reviewed the code for generating a Computer Generated Game Standard and now we will review;
- Manual Entry from Book
- Your Saved Puzzles
Manual Entry from Book:
If you are a Sudoku player you most likely have purchased one of the many Sudoku books from the book store or news stand. I have Sudoku for your Coffee Break by Will Shortz. Good book with lots of puzzles of varying degrees of difficulty. I have finished many of the puzzles in this book and found only two that could not be solved (so – far). Many of the demanding or hard puzzles require patience, a pencil and an eraser. Or you can enter them into the puzzle solver and work on the screen. Here is how it works.
When the Manual from book option is selected, the user is presented with a simple HTML message box telling them what to do. When they click OK the game screen changes to a blank puzzle.
In the image above I have entered a demanding game from my Sudoku book mentioned above. As you can see all I have to enter is the clues provided in the book in the proper cells. If I enter the clues in the wrong cell, the puzzle will not solve so I can check to see if the puzzle is solvable by clicking Show Solution. Spoiler Alert! the solution is displayed on the screen.
The code that makes this happen has already been explained in the the previous lessons so I am not going to repeat it here. Click the previous lessons hyperlink if you wish to see it.
Edit February 18, 2016: Sorry everyone, there is a change to the code which I did not include in the previous lesson. When the user selects manual from book on the new game dialog the following code is run
if Choice = "Manual Enter from Book" then
pt="W"
script_play("StartNewPuzzle")
script_play("ManualPuzzleDialog")
goto assign
end if
This code branches to the go to label assign. Here is the change.
assign:
tbl = table.open("sudokupuzzlesolver")
tbl.change_begin()
tbl.cl1 = "1"
tbl.Cl2 = "2"
tbl.Cl3 = "3"
tbl.cl4 = "4"
tbl.cl5 = "5"
tbl.cl6 = "6"
tbl.cl7 = "7"
tbl.cl8 = "8"
tbl.cl9 = "9"
tbl.Vl1 = 9
tbl.vl2 = 8
tbl.Vl3 = 7
tbl.vl4 = 6
tbl.Vl5 = 1
tbl.vl6 = 2
tbl.vl7 = 3
tbl.Vl8 = 4
tbl.vl9 = 5
tbl.change_end(.t.)
tbl.close()
sys_send_keys("{F5}")
ui_freeze(.f.)
form.load("PuzzleCreator","dialog","","right","middle")
PuzzleCreator.Activate()
PuzzleCreator.Show()
PuzzleCreator.close()
xbasic_wait_for_idle()
script_play("BuildRandomGame")
Notice when I call the PuzzleCreator form I am loading it as a dialog. This insures the action must be complete before the user can continue. When the form is closed, the Build Random Game runs and all is good. This is the end of the edit
Your Saved Puzzles:
This procedure is also the same but includes one additional step.
When Your Saved Puzzles is clicked the user is presented with a pick list dialog of saved games.
If the user clicks cancel they are returned to the previous screen and nothing has changed. If they select from the list that game is appended from the saved game table into the solver table. The clues are reset as they initially were and the user then clicks Lock Cells and Fill in Block Values to start play. Here is the code starting with the dialog.
The first code is on the New Game Button and is run when the user selects Your Saved Puzzles
if Choice = "Your Saved Puzzles" then
pt = "W"
script_play("playYourSavedPuzzle")
if spuzzle = "" then
goto nogame
end if
script_play("StartNewPuzzle")
script_play("BuildRandomGame")
goto assign
end if
nogame:
End
Again the code which runs after the goto label assign has already been reviewed so click the hyperlink above if you need to review it.
Lets look the script “playYourSavedPuzzle”.
DIM SHARED spuzzle as C DIM SHARED varC_result as C auto_list_spuzzle = table.external_record_content_get("savedpuzzles","Date+\" \"+Comments","","")Dim format as p Format.tab_stops=""'Apply 'owner draw' formatting information to the list auto_list_spuzzle = a5_owner_draw_list_fmt(auto_list_spuzzle,Format) temp_count = w_count(auto_list_spuzzle,crlf()) DELETE a_spuzzle DIM a_spuzzle[temp_count] as c a_spuzzle.initialize(auto_list_spuzzle) heading_string = "Select a saved puzzle from the list below." ok_button_label = "&Continue" cancel_button_label = "&Cancel" varC_result = ui_dlg_box("SelectPuzzleDialog",<<%dlg% {region} {text=115,1:heading_string}; {endregion}; {region} [%d;O={@@}%.100,5spuzzle^#a_spuzzle]; {endregion}; {line=1,0}; {region} <*15=ok_button_label!OK> <15=cancel_button_label!CANCEL> {endregion}; %dlg%,<<%code% if a_dlg_button = "CANCEL" then spuzzle = "" end if%code%)if spuzzle = "" then End else DIM Append as P a_tbl = table.open("sudokupuzzlesolver") append.t_db = "savedpuzzles.dbf" append.m_key = "Id" append.t_key = "Id" append.m_filter = "" append.t_filter = "Date+\" \"+Comments = Var->spuzzle" append.type = "Unique, replace existing" append.m_count = 183 append.m_case1 = "EITHER" append.m_field1 = "ID" append.m_exp1 = "@savedpuzzles->ID" append.m_case2 = "EITHER" append.m_field2 = "CREATED_DATE" append.m_exp2 = "Date()" append.m_case3 = "EITHER" append.m_field3 = "COMMENTS" append.m_exp3 = "@savedpuzzles->COMMENTS" append.m_case4 = "EITHER" append.m_field4 = "B1S1" append.m_exp4 = "@savedpuzzles->B1S1" append.m_case5 = "EITHER" append.m_field5 = "B1S2" append.m_exp5 = "@savedpuzzles->B1S2" append.m_case6 = "EITHER" append.m_field6 = "B1S3" append.m_exp6 = "@savedpuzzles->B1S3" append.m_case7 = "EITHER" append.m_field7 = "B1S4" append.m_exp7 = "@savedpuzzles->B1S4" append.m_case8 = "EITHER" append.m_field8 = "B1S5" append.m_exp8 = "@savedpuzzles->B1S5" append.m_case9 = "EITHER" append.m_field9 = "B1S6" append.m_exp9 = "@savedpuzzles->B1S6" append.m_case10 = "EITHER" append.m_field10 = "B1S7" append.m_exp10 = "@savedpuzzles->B1S7" append.m_case11 = "EITHER" append.m_field11 = "B1S8" append.m_exp11 = "@savedpuzzles->B1S8" append.m_case12 = "EITHER" append.m_field12 = "B1S9" append.m_exp12 = "@savedpuzzles->B1S9" append.m_case13 = "EITHER" append.m_field13 = "B2S1" append.m_exp13 = "@savedpuzzles->B2S1" append.m_case14 = "EITHER" append.m_field14 = "B2S2" append.m_exp14 = "@savedpuzzles->B2S2" append.m_case15 = "EITHER" append.m_field15 = "B2S3" append.m_exp15 = "@savedpuzzles->B2S3" append.m_case16 = "EITHER" append.m_field16 = "B2S4" append.m_exp16 = "@savedpuzzles->B2S4" append.m_case17 = "EITHER" append.m_field17 = "B2S5" append.m_exp17 = "@savedpuzzles->B2S5" append.m_case18 = "EITHER" append.m_field18 = "B2S6" append.m_exp18 = "@savedpuzzles->B2S6" append.m_case19 = "EITHER" append.m_field19 = "B2S7" append.m_exp19 = "@savedpuzzles->B2S7" append.m_case20 = "EITHER" append.m_field20 = "B2S8" append.m_exp20 = "@savedpuzzles->B2S8" append.m_case21 = "EITHER" append.m_field21 = "B2S9" append.m_exp21 = "@savedpuzzles->B2S9" append.m_case22 = "EITHER" append.m_field22 = "B3S1" append.m_exp22 = "@savedpuzzles->B3S1" append.m_case23 = "EITHER" append.m_field23 = "B3S2" append.m_exp23 = "@savedpuzzles->B3S2" append.m_case24 = "EITHER" append.m_field24 = "B3S3" append.m_exp24 = "@savedpuzzles->B3S3" append.m_case25 = "EITHER" append.m_field25 = "B3S4" append.m_exp25 = "@savedpuzzles->B3S4" append.m_case26 = "EITHER" append.m_field26 = "B3S5" append.m_exp26 = "@savedpuzzles->B3S5" append.m_case27 = "EITHER" append.m_field27 = "B3S6" append.m_exp27 = "@savedpuzzles->B3S6" append.m_case28 = "EITHER" append.m_field28 = "B3S7" append.m_exp28 = "@savedpuzzles->B3S7" append.m_case29 = "EITHER" append.m_field29 = "B3S8" append.m_exp29 = "@savedpuzzles->B3S8" append.m_case30 = "EITHER" append.m_field30 = "B3S9" append.m_exp30 = "@savedpuzzles->B3S9" append.m_case31 = "EITHER" append.m_field31 = "B4S1" append.m_exp31 = "@savedpuzzles->B4S1" append.m_case32 = "EITHER" append.m_field32 = "B4S2" append.m_exp32 = "@savedpuzzles->B4S2" append.m_case33 = "EITHER" append.m_field33 = "B4S3" append.m_exp33 = "@savedpuzzles->B4S3" append.m_case34 = "EITHER" append.m_field34 = "B4S4" append.m_exp34 = "@savedpuzzles->B4S4" append.m_case35 = "EITHER" append.m_field35 = "B4S5" append.m_exp35 = "@savedpuzzles->B4S5" append.m_case36 = "EITHER" append.m_field36 = "B4S6" append.m_exp36 = "@savedpuzzles->B4S6" append.m_case37 = "EITHER" append.m_field37 = "B4S7" append.m_exp37 = "@savedpuzzles->B4S7" append.m_case38 = "EITHER" append.m_field38 = "B4S8" append.m_exp38 = "@savedpuzzles->B4S8" append.m_case39 = "EITHER" append.m_field39 = "B4S9" append.m_exp39 = "@savedpuzzles->B4S9" append.m_case40 = "EITHER" append.m_field40 = "B5S1" append.m_exp40 = "@savedpuzzles->B5S1" append.m_case41 = "EITHER" append.m_field41 = "B5S2" append.m_exp41 = "@savedpuzzles->B5S2" append.m_case42 = "EITHER" append.m_field42 = "B5S3" append.m_exp42 = "@savedpuzzles->B5S3" append.m_case43 = "EITHER" append.m_field43 = "B5S4" append.m_exp43 = "@savedpuzzles->B5S4" append.m_case44 = "EITHER" append.m_field44 = "B5S5" append.m_exp44 = "@savedpuzzles->B5S5" append.m_case45 = "EITHER" append.m_field45 = "B5S6" append.m_exp45 = "@savedpuzzles->B5S6" append.m_case46 = "EITHER" append.m_field46 = "B5S7" append.m_exp46 = "@savedpuzzles->B5S7" append.m_case47 = "EITHER" append.m_field47 = "B5S8" append.m_exp47 = "@savedpuzzles->B5S8" append.m_case48 = "EITHER" append.m_field48 = "B5S9" append.m_exp48 = "@savedpuzzles->B5S9" append.m_case49 = "EITHER" append.m_field49 = "B6S1" append.m_exp49 = "@savedpuzzles->B6S1" append.m_case50 = "EITHER" append.m_field50 = "B6S2" append.m_exp50 = "@savedpuzzles->B6S2" append.m_case51 = "EITHER" append.m_field51 = "B6S3" append.m_exp51 = "@savedpuzzles->B6S3" append.m_case52 = "EITHER" append.m_field52 = "B6S4" append.m_exp52 = "@savedpuzzles->B6S4" append.m_case53 = "EITHER" append.m_field53 = "B6S5" append.m_exp53 = "@savedpuzzles->B6S5" append.m_case54 = "EITHER" append.m_field54 = "B6S6" append.m_exp54 = "@savedpuzzles->B6S6" append.m_case55 = "EITHER" append.m_field55 = "B6S7" append.m_exp55 = "@savedpuzzles->B6S7" append.m_case56 = "EITHER" append.m_field56 = "B6S8" append.m_exp56 = "@savedpuzzles->B6S8" append.m_case57 = "EITHER" append.m_field57 = "B6S9" append.m_exp57 = "@savedpuzzles->B6S9" append.m_case58 = "EITHER" append.m_field58 = "B7S1" append.m_exp58 = "@savedpuzzles->B7S1" append.m_case59 = "EITHER" append.m_field59 = "B7S2" append.m_exp59 = "@savedpuzzles->B7S2" append.m_case60 = "EITHER" append.m_field60 = "B7S3" append.m_exp60 = "@savedpuzzles->B7S3" append.m_case61 = "EITHER" append.m_field61 = "B7S4" append.m_exp61 = "@savedpuzzles->B7S4" append.m_case62 = "EITHER" append.m_field62 = "B7S5" append.m_exp62 = "@savedpuzzles->B7S5" append.m_case63 = "EITHER" append.m_field63 = "B7S6" append.m_exp63 = "@savedpuzzles->B7S6" append.m_case64 = "EITHER" append.m_field64 = "B7S7" append.m_exp64 = "@savedpuzzles->B7S7" append.m_case65 = "EITHER" append.m_field65 = "B7S8" append.m_exp65 = "@savedpuzzles->B7S8" append.m_case66 = "EITHER" append.m_field66 = "B7S9" append.m_exp66 = "@savedpuzzles->B7S9" append.m_case67 = "EITHER" append.m_field67 = "B8S1" append.m_exp67 = "@savedpuzzles->B8S1" append.m_case68 = "EITHER" append.m_field68 = "B8S2" append.m_exp68 = "@savedpuzzles->B8S2" append.m_case69 = "EITHER" append.m_field69 = "B8S3" append.m_exp69 = "@savedpuzzles->B8S3" append.m_case70 = "EITHER" append.m_field70 = "B8S4" append.m_exp70 = "@savedpuzzles->B8S4" append.m_case71 = "EITHER" append.m_field71 = "B8S5" append.m_exp71 = "@savedpuzzles->B8S5" append.m_case72 = "EITHER" append.m_field72 = "B8S6" append.m_exp72 = "@savedpuzzles->B8S6" append.m_case73 = "EITHER" append.m_field73 = "B8S7" append.m_exp73 = "@savedpuzzles->B8S7" append.m_case74 = "EITHER" append.m_field74 = "B8S8" append.m_exp74 = "@savedpuzzles->B8S8" append.m_case75 = "EITHER" append.m_field75 = "B8S9" append.m_exp75 = "@savedpuzzles->B8S9" append.m_case76 = "EITHER" append.m_field76 = "B9S1" append.m_exp76 = "@savedpuzzles->B9S1" append.m_case77 = "EITHER" append.m_field77 = "B9S2" append.m_exp77 = "@savedpuzzles->B9S2" append.m_case78 = "EITHER" append.m_field78 = "B9S3" append.m_exp78 = "@savedpuzzles->B9S3" append.m_case79 = "EITHER" append.m_field79 = "B9S4" append.m_exp79 = "@savedpuzzles->B9S4" append.m_case80 = "EITHER" append.m_field80 = "B9S5" append.m_exp80 = "@savedpuzzles->B9S5" append.m_case81 = "EITHER" append.m_field81 = "B9S6" append.m_exp81 = "@savedpuzzles->B9S6" append.m_case82 = "EITHER" append.m_field82 = "B9S7" append.m_exp82 = "@savedpuzzles->B9S7" append.m_case83 = "EITHER" append.m_field83 = "B9S8" append.m_exp83 = "@savedpuzzles->B9S8" append.m_case84 = "EITHER" append.m_field84 = "B9S9" append.m_exp84 = "@savedpuzzles->B9S9" append.m_case85 = "EITHER" append.m_field85 = "B1S1V" append.m_exp85 = "@savedpuzzles->B1S1V" append.m_case86 = "EITHER" append.m_field86 = "B1S2V" append.m_exp86 = "@savedpuzzles->B1S2V" append.m_case87 = "EITHER" append.m_field87 = "B1S3V" append.m_exp87 = "@savedpuzzles->B1S3V" append.m_case88 = "EITHER" append.m_field88 = "B1S4V" append.m_exp88 = "@savedpuzzles->B1S4V" append.m_case89 = "EITHER" append.m_field89 = "B1S5V" append.m_exp89 = "@savedpuzzles->B1S5V" append.m_case90 = "EITHER" append.m_field90 = "B1S6V" append.m_exp90 = "@savedpuzzles->B1S6V" append.m_case91 = "EITHER" append.m_field91 = "B1S7V" append.m_exp91 = "@savedpuzzles->B1S7V" append.m_case92 = "EITHER" append.m_field92 = "B1S8V" append.m_exp92 = "@savedpuzzles->B1S8V" append.m_case93 = "EITHER" append.m_field93 = "B1S9V" append.m_exp93 = "@savedpuzzles->B1S9V" append.m_case94 = "EITHER" append.m_field94 = "B2S1V" append.m_exp94 = "@savedpuzzles->B2S1V" append.m_case95 = "EITHER" append.m_field95 = "B2S2V" append.m_exp95 = "@savedpuzzles->B2S2V" append.m_case96 = "EITHER" append.m_field96 = "B2S3V" append.m_exp96 = "@savedpuzzles->B2S3V" append.m_case97 = "EITHER" append.m_field97 = "B2S4V" append.m_exp97 = "@savedpuzzles->B2S4V" append.m_case98 = "EITHER" append.m_field98 = "B2S5V" append.m_exp98 = "@savedpuzzles->B2S5V" append.m_case99 = "EITHER" append.m_field99 = "B2S6V" append.m_exp99 = "@savedpuzzles->B2S6V" append.m_case100 = "EITHER" append.m_field100 = "B2S7V" append.m_exp100 = "@savedpuzzles->B2S7V" append.m_case101 = "EITHER" append.m_field101 = "B2S8V" append.m_exp101 = "@savedpuzzles->B2S8V" append.m_case102 = "EITHER" append.m_field102 = "B2S9V" append.m_exp102 = "@savedpuzzles->B2S9V" append.m_case103 = "EITHER" append.m_field103 = "B3S1V" append.m_exp103 = "@savedpuzzles->B3S1V" append.m_case104 = "EITHER" append.m_field104 = "B3S2V" append.m_exp104 = "@savedpuzzles->B3S2V" append.m_case105 = "EITHER" append.m_field105 = "B3S3V" append.m_exp105 = "@savedpuzzles->B3S3V" append.m_case106 = "EITHER" append.m_field106 = "B3S4V" append.m_exp106 = "@savedpuzzles->B3S4V" append.m_case107 = "EITHER" append.m_field107 = "B3S5V" append.m_exp107 = "@savedpuzzles->B3S5V" append.m_case108 = "EITHER" append.m_field108 = "B3S6V" append.m_exp108 = "@savedpuzzles->B3S6V" append.m_case109 = "EITHER" append.m_field109 = "B3S7V" append.m_exp109 = "@savedpuzzles->B3S7V" append.m_case110 = "EITHER" append.m_field110 = "B3S8V" append.m_exp110 = "@savedpuzzles->B3S8V" append.m_case111 = "EITHER" append.m_field111 = "B3S9V" append.m_exp111 = "@savedpuzzles->B3S9V" append.m_case112 = "EITHER" append.m_field112 = "B4S1V" append.m_exp112 = "@savedpuzzles->B4S1V" append.m_case113 = "EITHER" append.m_field113 = "B4S2V" append.m_exp113 = "@savedpuzzles->B4S2V" append.m_case114 = "EITHER" append.m_field114 = "B4S3V" append.m_exp114 = "@savedpuzzles->B4S3V" append.m_case115 = "EITHER" append.m_field115 = "B4S4V" append.m_exp115 = "@savedpuzzles->B4S4V" append.m_case116 = "EITHER" append.m_field116 = "B4S5V" append.m_exp116 = "@savedpuzzles->B4S5V" append.m_case117 = "EITHER" append.m_field117 = "B4S6V" append.m_exp117 = "@savedpuzzles->B4S6V" append.m_case118 = "EITHER" append.m_field118 = "B4S7V" append.m_exp118 = "@savedpuzzles->B4S7V" append.m_case119 = "EITHER" append.m_field119 = "B4S8V" append.m_exp119 = "@savedpuzzles->B4S8V" append.m_case120 = "EITHER" append.m_field120 = "B4S9V" append.m_exp120 = "@savedpuzzles->B4S9V" append.m_case121 = "EITHER" append.m_field121 = "B5S1V" append.m_exp121 = "@savedpuzzles->B5S1V" append.m_case122 = "EITHER" append.m_field122 = "B5S2V" append.m_exp122 = "@savedpuzzles->B5S2V" append.m_case123 = "EITHER" append.m_field123 = "B5S3V" append.m_exp123 = "@savedpuzzles->B5S3V" append.m_case124 = "EITHER" append.m_field124 = "B5S4V" append.m_exp124 = "@savedpuzzles->B5S4V" append.m_case125 = "EITHER" append.m_field125 = "B5S5V" append.m_exp125 = "@savedpuzzles->B5S5V" append.m_case126 = "EITHER" append.m_field126 = "B5S6V" append.m_exp126 = "@savedpuzzles->B5S6V" append.m_case127 = "EITHER" append.m_field127 = "B5S7V" append.m_exp127 = "@savedpuzzles->B5S7V" append.m_case128 = "EITHER" append.m_field128 = "B5S8V" append.m_exp128 = "@savedpuzzles->B5S8V" append.m_case129 = "EITHER" append.m_field129 = "B5S9V" append.m_exp129 = "@savedpuzzles->B5S9V" append.m_case130 = "EITHER" append.m_field130 = "B6S1V" append.m_exp130 = "@savedpuzzles->B6S1V" append.m_case131 = "EITHER" append.m_field131 = "B6S2V" append.m_exp131 = "@savedpuzzles->B6S2V" append.m_case132 = "EITHER" append.m_field132 = "B6S3V" append.m_exp132 = "@savedpuzzles->B6S3V" append.m_case133 = "EITHER" append.m_field133 = "B6S4V" append.m_exp133 = "@savedpuzzles->B6S4V" append.m_case134 = "EITHER" append.m_field134 = "B6S5V" append.m_exp134 = "@savedpuzzles->B6S5V" append.m_case135 = "EITHER" append.m_field135 = "B6S6V" append.m_exp135 = "@savedpuzzles->B6S6V" append.m_case136 = "EITHER" append.m_field136 = "B6S7V" append.m_exp136 = "@savedpuzzles->B6S7V" append.m_case137 = "EITHER" append.m_field137 = "B6S8V" append.m_exp137 = "@savedpuzzles->B6S8V" append.m_case138 = "EITHER" append.m_field138 = "B6S9V" append.m_exp138 = "@savedpuzzles->B6S9V" append.m_case139 = "EITHER" append.m_field139 = "B7S1V" append.m_exp139 = "@savedpuzzles->B7S1V" append.m_case140 = "EITHER" append.m_field140 = "B7S2V" append.m_exp140 = "@savedpuzzles->B7S2V" append.m_case141 = "EITHER" append.m_field141 = "B7S3V" append.m_exp141 = "@savedpuzzles->B7S3V" append.m_case142 = "EITHER" append.m_field142 = "B7S4V" append.m_exp142 = "@savedpuzzles->B7S4V" append.m_case143 = "EITHER" append.m_field143 = "B7S5V" append.m_exp143 = "@savedpuzzles->B7S5V" append.m_case144 = "EITHER" append.m_field144 = "B7S6V" append.m_exp144 = "@savedpuzzles->B7S6V" append.m_case145 = "EITHER" append.m_field145 = "B7S7V" append.m_exp145 = "@savedpuzzles->B7S7V" append.m_case146 = "EITHER" append.m_field146 = "B7S8V" append.m_exp146 = "@savedpuzzles->B7S8V" append.m_case147 = "EITHER" append.m_field147 = "B7S9V" append.m_exp147 = "@savedpuzzles->B7S9V" append.m_case148 = "EITHER" append.m_field148 = "B8S1V" append.m_exp148 = "@savedpuzzles->B8S1V" append.m_case149 = "EITHER" append.m_field149 = "B8S2V" append.m_exp149 = "@savedpuzzles->B8S2V" append.m_case150 = "EITHER" append.m_field150 = "B8S3V" append.m_exp150 = "@savedpuzzles->B8S3V" append.m_case151 = "EITHER" append.m_field151 = "B8S4V" append.m_exp151 = "@savedpuzzles->B8S4V" append.m_case152 = "EITHER" append.m_field152 = "B8S5V" append.m_exp152 = "@savedpuzzles->B8S5V" append.m_case153 = "EITHER" append.m_field153 = "B8S6V" append.m_exp153 = "@savedpuzzles->B8S6V" append.m_case154 = "EITHER" append.m_field154 = "B8S7V" append.m_exp154 = "@savedpuzzles->B8S7V" append.m_case155 = "EITHER" append.m_field155 = "B8S8V" append.m_exp155 = "@savedpuzzles->B8S8V" append.m_case156 = "EITHER" append.m_field156 = "B8S9V" append.m_exp156 = "@savedpuzzles->B8S9V" append.m_case157 = "EITHER" append.m_field157 = "B9S1V" append.m_exp157 = "@savedpuzzles->B9S1V" append.m_case158 = "EITHER" append.m_field158 = "B9S2V" append.m_exp158 = "@savedpuzzles->B9S2V" append.m_case159 = "EITHER" append.m_field159 = "B9S3V" append.m_exp159 = "@savedpuzzles->B9S3V" append.m_case160 = "EITHER" append.m_field160 = "B9S4V" append.m_exp160 = "@savedpuzzles->B9S4V" append.m_case161 = "EITHER" append.m_field161 = "B9S5V" append.m_exp161 = "@savedpuzzles->B9S5V" append.m_case162 = "EITHER" append.m_field162 = "B9S6V" append.m_exp162 = "@savedpuzzles->B9S6V" append.m_case163 = "EITHER" append.m_field163 = "B9S7V" append.m_exp163 = "@savedpuzzles->B9S7V" append.m_case164 = "EITHER" append.m_field164 = "B9S8V" append.m_exp164 = "@savedpuzzles->B9S8V" append.m_case165 = "EITHER" append.m_field165 = "B9S9V" append.m_exp165 = "@savedpuzzles->B9S9V" append.m_case166 = "EITHER" append.m_field166 = "CL1" append.m_exp166 = "@savedpuzzles->CL1" append.m_case167 = "EITHER" append.m_field167 = "CL2" append.m_exp167 = "@savedpuzzles->CL2" append.m_case168 = "EITHER" append.m_field168 = "CL3" append.m_exp168 = "@savedpuzzles->CL3" append.m_case169 = "EITHER" append.m_field169 = "CL4" append.m_exp169 = "@savedpuzzles->CL4" append.m_case170 = "EITHER" append.m_field170 = "CL5" append.m_exp170 = "@savedpuzzles->CL5" append.m_case171 = "EITHER" append.m_field171 = "CL6" append.m_exp171 = "@savedpuzzles->CL6" append.m_case172 = "EITHER" append.m_field172 = "CL7" append.m_exp172 = "@savedpuzzles->CL7" append.m_case173 = "EITHER" append.m_field173 = "CL8" append.m_exp173 = "@savedpuzzles->CL8" append.m_case174 = "EITHER" append.m_field174 = "CL9" append.m_exp174 = "@savedpuzzles->CL9" append.m_case175 = "EITHER" append.m_field175 = "VL1" append.m_exp175 = "@savedpuzzles->VL1" append.m_case176 = "EITHER" append.m_field176 = "VL2" append.m_exp176 = "@savedpuzzles->VL2" append.m_case177 = "EITHER" append.m_field177 = "VL3" append.m_exp177 = "@savedpuzzles->VL3" append.m_case178 = "EITHER" append.m_field178 = "VL4" append.m_exp178 = "@savedpuzzles->VL4" append.m_case179 = "EITHER" append.m_field179 = "VL5" append.m_exp179 = "@savedpuzzles->VL5" append.m_case180 = "EITHER" append.m_field180 = "VL6" append.m_exp180 = "@savedpuzzles->VL6" append.m_case181 = "EITHER" append.m_field181 = "VL7" append.m_exp181 = "@savedpuzzles->VL7" append.m_case182 = "EITHER" append.m_field182 = "VL8" append.m_exp182 = "@savedpuzzles->VL8" append.m_case183 = "EITHER" append.m_field183 = "VL9" append.m_exp183 = "@savedpuzzles->VL9" append.t_count = 0 a_tbl.append() a_tbl.close() end if
It starts with our pick list dialog. I created this list using the xBasic genie for creating a dialog box. You will find it is very easy to follow the on screen prompts provided by Alpha Software. If the user clicks CANCEL our variable spuzzle is set to nul and the script ends otherwise it runs our append operation. Here, I used the Append Operation genie to build my append then used the toolbar button to convert it to xBasic. Copied the provided code and pasted it into my script.
Our next lesson was prompted by my granddaughter. She recently came by all excited because she got a rubix cube. She is now at the age where curiosity and problem solving are high on her agenda. Her mom, my daughter told her I solved the rubix cube when it first came out so she wanted me to help her. I told her she could find solutions on the web and she stated they were confusing and did not work for her. I went to the internet and watched a few of the video’s myself and saw her problem. These video’s state one thing and do another, so if you know the working of the cube you can see the steps they did not make clear and then solve your puzzle, but if you are not already an expert, their offered solution most likely will not work for you. So I decided to write a program to help her.
In our next few lessons we will look at the code necessary to emulate the movements of the cube and how to track solutions. I hope all of you will join us and follow along.
Leave a comment