<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/9/90/Adventures_in_the_wilderness%3B_%281889%29_%2817317693013%29.jpg/320px-Adventures_in_the_wilderness%3B_%281889%29_%2817317693013%29.jpg" style="float:right; margin-left:8px" alt="canoe"> You and your two friends now will work on the various tasks to build a <i>gwitn</i> (Ojibwe - <i>jiimaan</i>). <hr> [[next]] <script>function myFunction() {var x = document.getElementById("myDIV"); if (x.style.display == "none") {x.style.display = "inline";} else {x.style.display = "none";}}</script>(if: (passage:)'s tags contains "donotshow")[<!--Do nothing-->](else:)[ <div id="myDIV"><table class="tasks"> <tr><th>code</th><th>tasks</th><th>time (in hours)</th><th>prerequisite(s)</th></tr> <tr><td>template</td><td>make template</td><td>2</td><td>-</td></tr> <tr><td>bark</td><td>get birch bark</td><td>7</td><td>-</td></tr> <tr><td>birch</td><td>get birch wood</td><td>3</td><td>-</td></tr> <tr><td>cedar</td><td>get cedar</td><td>6</td><td>-</td></tr> <tr><td>roots</td><td>get spruce roots</td><td>9</td><td>-</td></tr> <tr><td>sap</td><td>get spruce sap</td><td>3</td><td>-</td></tr> <tr><td>paddles</td><td>carve paddles</td><td>7</td><td>birch</td></tr> <tr><td>watap</td><td>make watap</td><td>12</td><td>roots</td></tr> <tr><td>roll</td><td>roll out bark, stake</td><td>7</td><td>bark, template</td></tr> <tr><td>thwarts</td><td>make thwarts</td><td>4</td><td>birch, roll</td></tr> <tr><td>stem</td><td>make stempieces</td><td>6</td><td>cedar, watap</td></tr> <tr><td>sheathing</td><td>make sheathing</td><td>5</td><td>cedar, roll</td></tr> <tr><td>ribs</td><td>make ribs</td><td>9</td><td>cedar, roll</td></tr> <tr><td>gunnels</td><td>make gunnels</td><td>9</td><td>cedar, template</td></tr> <tr><td>insert</td><td>insert stems</td><td>7</td><td>roll, stem</td></tr> <tr><td>lash1</td><td>lash gunnels</td><td>8</td><td>gunnels, stem</td></tr> <tr><td>lash2</td><td>lash gunnels</td><td>8</td><td>gunnels, stem</td></tr> <tr><td>fit</td><td>fit thwarts</td><td>4</td><td>thwarts, lash1, lash2</td></tr> <tr><td>lay</td><td>lay sheathing</td><td>6</td><td>sheathing, fit</td></tr> <tr><td>slot</td><td>slot ribs</td><td>6</td><td>lay, ribs</td></tr> <tr><td>peg</td><td>peg topwale</td><td>4</td><td>slot</td></tr> <tr><td>gum1</td><td>gum seams</td><td>3</td><td>sap, slot</td></tr> <tr><td>gum2</td><td>gum seams</td><td>3</td><td>sap, peg</td></tr> </table> </div> Click to <button onclick="myFunction()">show/hide</button> tasks<br>]There are 21 different steps to building the birch bark canoe. Most can only be done by one worker at a time. Click on the button above to see each step, how long each one takes to do, and which need to be done before others can be done. <hr> Assign the [[first task|P1]] {(set: $runTime to 0, $P1next to 0, $P2next to 0, $P3next to 0, $msg to "") (set: $ready to (a: "idle", "template", "bark", "birch", "cedar", "roots", "sap", "paddles"), $waiting to (a: "watap", "thwarts", "stem", "sheathing", "ribs", "roll", "gunnels", "lash1", "lash2", "insert", "fit", "slot", "lay", "peg", "gum1", "gum2"), $started to (a:), $finished to (a:)) (set: $worker to "P1", $barkExtra to false, $rootsExtra to false, $efficiency to 1)} <img src="https://upload.wikimedia.org/wikipedia/commons/c/ce/Canoe_%28PSF%29.png" alt="">{(if: $P1next > $runTime) [(goto: "P2")] <!- P1 still working --> (if: $finished's length is 23)[(goto:"done")] <!- P1 finished task -->} {time: $runTime<br> <span class="w">$msg</span>(set: $msg to "") Select a task for your first worker<br> (set: $selected to "") (for: each _item, ...$ready)[ (print: '(link: _item)[(set: $selected to "' + _item + '")(go-to: "runP1")]') ] }(set: $showFooter to true)(set: $worker to "P1", $P1selected to $selected) (goto: $selected){(set: $started to it + (a: $selected)) (set: $ready to it - (a: $selected)) (set: $hours to (round: ($efficiency*2))) (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]}(if: (passage:)'s tags contains "donotshow")[<!--Do nothing-->](else:)[ tasks started: $started tasks finished: $finished]{(if: $P2next > $runTime) [(goto: "P3")] <!- P2 still working --> (if: $finished's length is 23)[(goto:"done")] <!- P2 finished task -->} {time: $runTime<br> <span class="w">$msg</span>(set: $msg to "") Select a task for your second worker<br> (set: $selected to "") (for: each _item, ...$ready)[ (print: '(link: _item)[(set: $selected to "' + _item + '")(go-to: "runP2")]') ] }(set: $showFooter to true){(if: $P3next > $runTime) [(goto: "advance")] <!- P3 still working --> (if: $finished's length is 23)[(goto:"done")] <!- P3 finished task -->} {time: $runTime<br> <span class="w">$msg</span>(set: $msg to "") Select a task for your third worker<br> (set: $selected to "") (for: each _item, ...$ready)[ (print: '(link: _item)[(set: $selected to "' + _item + '")(go-to: "runP3")]') ] }(set: $showFooter to true)(set: $worker to "P2", $P2selected to $selected) (goto: $selected)(set: $worker to "P3", $P3selected to $selected) (goto: $selected)(if: $finished's length is 23)[(goto:"done")] {(set:$runTime to $runTime + 1) (if: ($P1next is $runTime and $P1selected is not "idle")) [ (set: $started to it - (a: $P1selected)) (set: $finished to it + (a: $P1selected)) (set: $msg to $P1selected + " finished<br>")] (if: ($P2next is $runTime and $P2selected is not "idle")) [ (set: $started to it - (a: $P2selected)) (set: $finished to it + (a: $P2selected)) (set: $msg to it + $P2selected + " finished<br>")] (if: ($P3next is $runTime and $P3selected is not "idle")) [ (set: $started to it - (a: $P3selected)) (set: $finished to it + (a: $P3selected)) (set: $msg to $P3selected + " finished<br>")] (if: ($finished contains "birch" and "roll") and ($waiting contains "thwarts")) [(set: $ready to $ready + (a: "thwarts")) (set: $waiting to $waiting - (a:"thwarts"))] (if: ($finished contains "birch") and ($waiting contains "paddles")) [(set: $ready to $ready + (a: "paddles")) (set: $waiting to $waiting - (a:"paddles"))] (if: ($finished contains "cedar" and "roll") and ($waiting contains "sheathing")) [(set: $ready to $ready + (a: "sheathing")) (set: $waiting to $waiting - (a:"sheathing"))] (if: ($finished contains "roots") and ($waiting contains "watap")) [(set: $ready to $ready + (a: "watap")) (set: $waiting to $waiting - (a:"watap"))] (if: ($finished contains "cedar" and "watap") and ($waiting contains "stem")) [(set: $ready to $ready + (a: "stem")) (set: $waiting to $waiting - (a:"stem"))] (if: ($finished contains "cedar" and "roll") and ($waiting contains "ribs")) [(set: $ready to $ready + (a: "ribs")) (set: $waiting to $waiting - (a:"ribs"))] (if: ($finished contains "bark" and "template") and ($waiting contains "roll")) [(set: $ready to $ready + (a: "roll")) (set: $waiting to $waiting - (a:"roll"))] (if: ($finished contains "cedar" and "template") and ($waiting contains "gunnels")) [(set: $ready to $ready + (a: "gunnels")) (set: $waiting to $waiting - (a:"gunnels"))] (if: ($finished contains "stem") and ($waiting contains "insert")) [(set: $ready to $ready + (a: "insert")) (set: $waiting to $waiting - (a:"insert"))] (if: ($finished contains "gunnels" and "roll" and "stem") and ($waiting contains "lash1")) [(set: $ready to $ready + (a: "lash1")) (set: $waiting to $waiting - (a:"lash1"))] (if: ($finished contains "gunnels" and "roll" and "stem") and ($waiting contains "lash2")) [(set: $ready to $ready + (a: "lash2")) (set: $waiting to $waiting - (a:"lash2"))] (if: ($finished contains "lash1" and "lash2" and "thwarts") and ($waiting contains "fit")) [(set: $ready to $ready + (a: "fit")) (set: $waiting to $waiting - (a:"fit"))] (if: ($finished contains "sheathing" and "fit") and ($waiting contains "lay")) [(set: $ready to $ready + (a: "lay")) (set: $waiting to $waiting - (a:"lay"))] (if: ($finished contains "lay" and "ribs") and ($waiting contains "slot")) [(set: $ready to $ready + (a: "slot")) (set: $waiting to $waiting - (a:"slot"))] (if: ($finished contains "slot") and ($waiting contains "peg")) [(set: $ready to $ready + (a: "peg")) (set: $waiting to $waiting - (a:"peg"))] (if: ($finished contains "sap" and "slot") and ($waiting contains "gum1")) [(set: $ready to $ready + (a: "gum1")) (set: $waiting to $waiting - (a:"gum1"))] (if: ($finished contains "sap" and "peg") and ($waiting contains "gum2")) [(set: $ready to $ready + (a: "gum2")) (set: $waiting to $waiting - (a:"gum2"))] } time: $runTime (goto: "P1"){(set: $started to it + (a: $selected)) (set: $ready to it - (a: $selected)) (set: $hours to (round: ($efficiency*3))) (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]}{(set: $started to it + (a: $selected)) (set: $ready to it - (a: $selected)) (set: $hours to (round: ($efficiency*7)))} <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/7/7f/Senden%2C_Venner_Moor_--_2020_--_6664.jpg/320px-Senden%2C_Venner_Moor_--_2020_--_6664.jpg" alt="birch tree" style="float:right"> You find a good birch tree to get bark from. If you take the bark slowly, it will eventually grow back and the tree will survive but it will add 3 hours to the task. <hr> Will you take bark [[quickly|all around]], or [[slowly|one side]]?{(set: $started to it + (a: $selected)) (set: $ready to it - (a: $selected)) (set: $hours to (round: ($efficiency*6))) (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]}All tasks completed with run time: $runTime (if: $runtime <60)[(set: $code to (random: 50, 350) * 23 + 7) Congratulations! You planned well. Confirmation code: $code] (else:)[Your mentor hopes you can plan better next time.] <hr> Try [[again|next]] or [[not]]?{(set: $started to it + (a: $selected)) (set: $ready to it - (a: $selected)) (set: $hours to (round: ($efficiency*9)))} <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c2/Spruce_trees_at_our_campground_on_Lac_Jean_P%C3%A9r%C3%A9.jpg/180px-Spruce_trees_at_our_campground_on_Lac_Jean_P%C3%A9r%C3%A9.jpg" alt="spruce tree" style="float:right"> You find a spruce tree with good straight roots. If you take more than one root from the tree, you could kill it. But looking for more spruce trees will add 4 hours to the task. <hr> Do you dig for more roots from [[this tree]] or look for [[more trees]]? {(set: $started to it + (a: $selected)) (set: $ready to it - (a: $selected)) (set: $hours to (round: ($efficiency*3))) (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]}{(set: $started to it + (a: $selected)) (set: $ready to it - (a: $selected)) (set: $hours to (round: ($efficiency*12))) (if: $rootsExtra is true) [(goto: "help")] (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]}{(set: $started to it + (a: $selected)) (set: $ready to it - (a: $selected)) (set: $hours to (round: ($efficiency*4))) (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]}{(set: $started to it + (a: $selected)) (set: $ready to it - (a: $selected)) (set: $hours to (round: ($efficiency*6))) (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]}{(set: $started to it + (a: $selected)) (set: $ready to it - (a: $selected)) (set: $hours to (round: ($efficiency*7))) (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]}{(set: $started to it + (a: $selected)) (set: $ready to it - (a: $selected)) (set: $hours to (round: ($efficiency*5))) (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]}{(set: $started to it + (a: $selected)) (set: $ready to it - (a: $selected)) (if: $barkExtra is true) [(goto: "sharpen")] (set: $hours to (round: ($efficiency*7))) (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]}{(set: $started to it + (a: $selected)) (set: $ready to it - (a: $selected)) (set: $hours to (round: ($efficiency*9))) (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]}{(set: $started to it + (a: $selected)) (set: $ready to it - (a: $selected)) (set: $hours to (round: ($efficiency*9))) (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]}{(set: $started to it + (a: $selected)) (set: $ready to it - (a: $selected)) (set: $hours to (round: ($efficiency*7))) (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]}{(set: $started to it + (a: $selected)) (set: $ready to it - (a: $selected)) (set: $hours to (round: ($efficiency*8))) (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]}{(set: $started to it + (a: $selected)) (set: $ready to it - (a: $selected)) (set: $hours to (round: ($efficiency*8))) (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]}{(set: $started to it + (a: $selected)) (set: $ready to it - (a: $selected)) (set: $hours to (round: ($efficiency*4))) (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]}{(set: $started to it + (a: $selected)) (set: $ready to it - (a: $selected)) (set: $hours to (round: ($efficiency*6))) (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]}{(set: $started to it + (a: $selected)) (set: $ready to it - (a: $selected)) (set: $hours to (round: ($efficiency*6))) (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]}{(set: $started to it + (a: $selected)) (set: $ready to it - (a: $selected)) (set: $hours to (round: ($efficiency*4))) (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]}{(set: $started to it + (a: $selected)) (set: $ready to it - (a: $selected)) (set: $hours to (round: ($efficiency*3))) (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]}{(set: $started to it + (a: $selected)) (set: $ready to it - (a: $selected)) (set: $hours to (round: ($efficiency*3))) (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]}(if: ($worker is "P1"))[(set: $P1next to it + 1)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + 1)(goto: "P3")]) (else:)[(set: $P3next to it + 1)(goto:"advance")]}(if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")](set: $barkExtra to true, $hours to it + 3) (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")](if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]}(set: $rootsExtra to true, $hours to it + 4) (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]}An elder sees you working. "Thank you for respecting the <i>gawatgug</i>. Let me help you with the watap," she says. <hr> [[continue|watap help]](set: $hours to it - 6)] (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]{(set: $efficiency to 0.9)} An elder watches your work. "Thank you for respecting the <i>masqwi</i>. Let me help you by sharpening your tools," he says. <hr> [[continue|tools]](set: $hours to (round: ($efficiency*7))) (if: ($worker is "P1"))[(set: $P1next to it + $hours)(goto: "P2")] (else-if: ($worker is "P2"))[(set: $P2next to it + $hours)(goto: "P3")] (else:)[(set: $P3next to it + $hours)(goto:"advance")]Ok, see you around.