游戲規則:
一只大獅子,一只小獅子,一只大老虎、一只小老虎、一只大花豹,一只小花豹要到河對面去,只有大動物和小老虎會劃船,船每次只能乘兩只動物。大動物之間互相吃不了,小動物之間互相吃不了,如果大動物不在同類的小動物就會被異類大動物吃掉。
復制粘貼到第一幀,測試:
創建開始場景(); function 創建開始場景() { 創建TXT_MC(this, "游戲名", "智力過河", 200, 100, 300, false); 創建TXT_MC(this, "游戲開始", "游戲開始", 250, 200, 100, true); 創建TXT_MC(this, "游戲說明", "游戲說明", 250, 250, 100, true); 游戲開始.onPress = function() { 刪除開始場景(); 創建游戲場景(); }; 游戲說明.onPress = function() { 刪除開始場景(); 創建說明場景(); }; } function 刪除開始場景() { 游戲名.removeMovieClip(); 游戲開始.removeMovieClip(); 游戲說明.removeMovieClip(); } function 刪除說明場景() { 規則.removeMovieClip(); 說明.removeMovieClip(); 游戲開始.removeMovieClip(); } function 創建說明場景() { var 內容 = "一只大獅子,一只小獅子,一只大老虎、一只小老虎、一只大花豹,"+"\n"+"一只小花豹要到河對面去,只有大動物和小老虎會劃船,船每次只能乘"+"\n"+"兩只動物。大動物之間互相吃不了,小動物之間互相吃不了,如果大動"+"\n"+"物不在同類的小動物就會被異類大動物吃掉。"; 創建TXT_MC(this, "規則", "游戲規則", 230, 50, 150, false); 創建TXT_MC(this, "說明", 內容, 50, 100, 120, false); 創建TXT_MC(this, "游戲開始", "游戲開始", 250, 200, 100, true); 游戲開始.onPress = function() { 刪除說明場景(); 創建游戲場景(); }; } function 創建TXT_MC(路徑, 名稱, 文本, 坐標X, 坐標Y, 大小, 框) { var MC = 路徑.createEmptyMovieClip(名稱, 路徑.getNextHighestDepth()); MC._x = 坐標X; MC._y = 坐標Y; MC._xscale = MC._yscale=大小; var TXT = MC.createTextField("TXT", 0, 0, 0, 0, 0); TXT.text = 文本; TXT.selectable = false; TXT.autoSize = true; if (框 == true) { MC.onRollOver = function() { this.TXT.border = true; this.onReleaseOutside = this.onRollOut=function () { this.TXT.border = false; }; }; } return MC; } this.createEmptyMovieClip("遮照MC", this.getNextHighestDepth()); function 創建游戲場景() { var 船上成員 = []; var 左岸 = ["大獅子", "小獅子", "大老虎", "小老虎", "大花豹", "小花豹"]; this.createEmptyMovieClip("左岸MC", this.getNextHighestDepth()); 創建河流(); this.createEmptyMovieClip("碼頭MC", this.getNextHighestDepth()); 畫方塊(碼頭MC, 0, 348, 94, 50, true); 畫方塊(碼頭MC, 454, 348, 94, 50, true); this.createEmptyMovieClip("提示MC", this.getNextHighestDepth()); 左岸MC._y = 100; 左岸MC._x = 20; for (var i = 0; i<左岸.length; i++) { if (i%2 == 0) { var MC = 創建TXT_MC(左岸MC, 左岸[i], 左岸[i], 0, 40*i, 100, true); MC.名字 = MC._name; MC.劃船 = true; MC.方位 = "左岸"; MC.大小 = "大"; } else { var MC = 創建TXT_MC(左岸MC, 左岸[i], 左岸[i], 0, 40*i, 100, true); MC.名字 = MC._name; MC.劃船 = false; MC.方位 = "左岸"; MC.大小 = "小"; } MC.onPress = function() { if (船上成員.length == 2) { 提示信息("船上不能再乘座更多的動物了"); } if (船上成員.length<2 && 船MC.行動 == false && this.方位 == 船MC.狀態) { this._visible = false; this.方位 = "船上"; 船上成員.push(this); eval("船倉"+船上成員.length).TXT.text = this.名字; } }; } 左岸MC["小老虎"].劃船 = true; this.createEmptyMovieClip("船MC", this.getNextHighestDepth()); 船MC._y = 360; 船MC._x = 100; 船MC.Y = 0; 船MC.狀態 = "左岸"; 船MC.行動 = false; 船MC.速度 = 20; 畫船(船MC); 創建TXT_MC(船MC, "TXT", "===>>", 40, -2, 100, false); 船MC.onPress = function() { if (this.行動 == false && 是否能劃船(船上成員) && 能否呆船上(船上成員) && 岸上(this.狀態)) { this.行動 = true; 船移動(this); } }; 創建TXT_MC(this, "船倉1", "", 船MC._x+35, 船MC._y-20, 100, true); 創建TXT_MC(this, "船倉2", "", 船MC._x+35, 船MC._y-40, 100, true); 船倉1.onPress = function() { if (船MC.狀態 == "左岸") { 左岸MC[this.TXT.text]._visible = true; 左岸MC[this.TXT.text]._x = 0; 左岸MC[this.TXT.text].方位 = "左岸"; 刪除(船上成員, this.TXT.text); this.TXT.text = 船倉2.TXT.text; 船倉2.TXT.text = ""; } if (船MC.狀態 == "右岸") { 左岸MC[this.TXT.text]._visible = true; 左岸MC[this.TXT.text]._x = 480; 左岸MC[this.TXT.text].方位 = "右岸"; 刪除(船上成員, this.TXT.text); this.TXT.text = 船倉2.TXT.text; 船倉2.TXT.text = ""; var n = 0; for (var i in 左岸MC) { if (左岸MC[i].方位 == "右岸") { n++; if (n == 6) { 提示信息("地球已經不適合你居住"+"\n"+"快去上火星去吧!!"); 創建結束畫面(); return; } } } } }; 船倉2.onPress = function() { if (船MC.狀態 == "左岸") { 左岸MC[this.TXT.text]._visible = true; 左岸MC[this.TXT.text]._x = 0; 左岸MC[this.TXT.text].方位 = "左岸"; 刪除(船上成員, this.TXT.text); this.TXT.text = 船倉2.TXT.text; 船倉2.TXT.text = ""; } if (船MC.狀態 == "右岸") { 左岸MC[this.TXT.text]._visible = true; 左岸MC[this.TXT.text]._x = 480; 左岸MC[this.TXT.text].方位 = "右岸"; 刪除(船上成員, this.TXT.text); this.TXT.text = 船倉2.TXT.text; 船倉2.TXT.text = ""; } }; 返回開始(); } function 畫船(MC) { MC.lineStyle(0, 0); MC.moveTo(0, 0); MC.lineTo(10, 15); MC.lineTo(100, 15); MC.lineTo(110, 0); MC.lineTo(0, 0); } function 船移動(MC) { MC.onEnterFrame = function() { this._x += this.速度; 船倉1._x += this.速度; 船倉2._x += this.速度; this.狀態 = "航行"; if (this._x>=340) { this.行動 = false; this.速度 *= -1; this.TXT.TXT.text = "<<==="; this.狀態 = "右岸"; delete this.onEnterFrame; } if (this._x<=100) { this.行動 = false; this.速度 *= -1; this.TXT.TXT.text = "===>>"; this.狀態 = "左岸"; delete this.onEnterFrame; } }; } function 是否能劃船(數組) { for (var i = 0; i<數組.length; i++) { if (數組[i].劃船 == true) { return true; } } 提示信息("這條船上沒有能劃船的動物"); return false; } function 能否呆船上(數組) { if (數組.length == 2) { var TXT0 = 數組[0].名字; var TXT1 = 數組[1].名字; if (數組[0].大小 == 數組[1].大小 || TXT0.substring(1, 3) == TXT1.substring(1, 3)) { return true; } } else { return true; } 提示信息("船上的大動物會吃掉小動物"); return false; } function 岸上(岸) { //這個算法不好`實在想不出其他的好算法 var 大數組 = new Array(); var 小數組 = new Array(); for (var i in 左岸MC) { if (左岸MC[i].方位 == 岸) { if (左岸MC[i].大小 == "大") { 大數組.push(左岸MC[i]._name.substring(1, 3)); } if (左岸MC[i].大小 == "小") { 小數組.push(左岸MC[i]._name.substring(1, 3)); } } } var 小記數 = 小數組.length; var 大記數 = 大數組.length; if (小記數<=0) { return true; } if (大記數<=0) { return true; } var 記數 = 0; for (var i = 0; i<小記數; i++) { var 對象 = 小數組[i]; for (var n = 0; n<大記數; n++) { if (對象 == 大數組[n]) { 記數++; break; } } } if (記數 == 小記數) { return true; } else { 提示信息("岸上的大動物會吃掉小動物"); return false; } } function 刪除(數組, 對象) { for (var i = 0; i<數組.length; i++) { if (數組[i].名字 == 對象) { 數組.splice(i, 1); return true; } } } function 畫方塊(MC, X, Y, 寬, 高, 填充) { if (填充 == true) { MC.beginFill(0xFFFFFF, 100); } MC.lineStyle(0, 0); MC.moveTo(X, Y); MC.lineTo(X+寬, Y); MC.lineTo(X+寬, 高+Y); MC.lineTo(X, 高+Y); MC.lineTo(X, Y); MC.endFill(); } function 創建河流() { var 河水= "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"; var MC = 創建TXT_MC(this, "河流", 河水, 0, 365, 100, false); MC.X = 0; MC.onEnterFrame = function() { this._x += Math.cos(this.X)*1; this.X += 0.1; }; } function 提示信息(內容) { 提示MC.clear(); 畫方塊(提示MC, 180, 50, 200, 70); 提示MC.計時 = 0; 提示MC["提示"].removeMovieClip(); 提示MC.onEnterFrame = function() { if (this.計時 == 0) { this._visible = true; 創建TXT_MC(提示MC, "提示", 內容, 提示MC._x+190, 提示MC._y+70, 115, false); } else if (this.計時>30) { this._visible = false; delete onEnterFrame; } this.計時++; }; } function 創建結束畫面() { 左岸MC.removeMovieClip(); 船MC.removeMovieClip(); } function 返回開始() { 創建TXT_MC(_root, "開始", "重新"+"\n"+"開始", 490, 360, 100, true); 開始.onPress = function() { loadMovie(_url, _root); }; } 畫方塊(遮照MC, 0, 0, 550, 400, true); _root.setMask(遮照MC); 畫方塊(this, 0, 0, 548, 398, false); //////////////////////////////////////////////////////////// var 菜單 = new ContextMenu(); 菜單.hideBuiltInItems(); var QQ = new ContextMenuItem("QQ:31559783", 實行函數); QQ.separatorBefore = true; 菜單.customItems.push(QQ); this.menu = 菜單; function 實行函數() { } |
進入論壇參與討論:http://www.missyuan.com/viewthread.php?tid=424649