array loop n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
認識 Array 矩陣與 熟悉 loop 的控制結構 PowerPoint Presentation
Download Presentation
認識 Array 矩陣與 熟悉 loop 的控制結構

Loading in 2 Seconds...

play fullscreen
1 / 18

認識 Array 矩陣與 熟悉 loop 的控制結構 - PowerPoint PPT Presentation


  • 153 Views
  • Uploaded on

認識 Array 矩陣與 熟悉 loop 的控制結構. 李大偉 交通大學. 課程內容. 什麼是陣列( array )? 為什麼需要使用陣列( array ) 熟悉 loop 的控制結構 利用 array 發撲克牌. 什麼是陣列 Array ?.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '認識 Array 矩陣與 熟悉 loop 的控制結構' - binah


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide2
課程內容
  • 什麼是陣列(array)?
  • 為什麼需要使用陣列(array)
  • 熟悉loop的控制結構
  • 利用 array 發撲克牌
array
什麼是陣列 Array?
  • 陣列是將一群變數(或記憶空間)排成一列,然後依序編號。因此可以照編號來找到每一個變數(或記憶空間) 。當你問:「第1個變數裡存的是什麼資料?」第1個變數就會告訴你,它存的是什麼。當你問:「第25個變數裡存的是什麼資料?」第25個變數就會告訴你,它存的是什麼。這是很有用的概念,因為你不需要將一群變數一一取不同的名字,然後一個一個把資料放進去。現在只要編號碼即可,然後利用迴圈控制程序,就可把所有的資料拿出處理運算之。
array1
什麼是陣列 Array?

在此有6個不同的變數名稱:d1、d2、d3 …

在此只有1個的變數名稱:d,但卻有6個不同編號的變數

slide5
n=Math.floor(6*Math.random()+1)

if (n= =1){p1.src=dice1.gif}

else if(n= =2){p1.src=dice2.gif}

else if(n= =3){p1.src=dice3.gif}

else if(n= =4){p1.src=dice4.gif}

else if(n= =5){p1.src=dice5.gif}

else if(n= =6){p1.src=dice6.gif}

n=Math.floor(6*Math.random()+1)

p1.src = d[n]

再談「擲骰子遊戲」

如果利用array,程式可以簡化到只剩兩行指令如下:

slide6
var d = new Array(6);

這是宣告 d 是一群已經排好隊並編號變數(如上),d 的編號是從0開始,一直到6。事實上是d這個array有 7 個變數。

矩陣 d 儲存資料的方式,可以像右上角,一筆一筆的寫在程式上。也可以像右下角使用for loop幫忙。

d[1] = “dice1.gif”;

d[2] = “dice2.gif”;

d[3] = “dice3.gif”;

d[4] = “dice4.gif”;

d[5] = “dice5.gif”;

d[6] = “dice6.gif”;

陣列的宣告方式及其儲存資料的方式

for ( n=1; n<=6; n=n+1)

{

d[n] = “dice”+n+ “.gif”;

}

for loop
認識 for 的 loop 控制語法

ntotal =0

for ( ntotal = 0; ntotal < x;

ntotal = ntotal + 1 )

{ …………………….. }

ntotal < x

false

true

…….…….

…….…….

ntotal = ntotal + 1

slide8
如何連發3張不同的撲克牌
  • 首先將撲克牌的圖檔名稱存於 card 的 array 中
  • 產生1到13的任意整數,此為第一張撲克牌的大小,即 c1= 1~13的任一整數。
    • p1.src = card[c1]
  • 再產生第二張撲克牌的大小,即 c2= 1~13的任一整數。但是c2 != c1
    • c2= 1~13的任一整數
    • while ( c2 = = c1) {c2= 1~13的任一整數}
    • p2.src = card[c2]
  • 再產生第三張撲克牌的大小,即 c3= 1~13的任一整數。但是 c3 != c1 而且 c3 != c1
    • c3= 1~13的任一整數
    • while ( c3 = = c1 || c3 = = c2) {c3= 1~13的任一整數}
    • p3.src = card[c3]
slide9
製作「發撲克牌」的表單
  • 開啟FrontPage,將空白網頁以「index.htm」存於「我的文件\WWW\js-10」
  • 在我的講義網頁,選按「 ※下載「發撲克牌」的教材」,將所有的圖片下載於「我的文件\WWW\js-10」
  • 先在「一般」狀態,輸入標題「發撲克牌」,在下一行插入3張相同的圖片「0.gif」
  • 在「骰子計數器」的下面選按「插入」「表單」「按鈕」,然後將「提交」「重新輸入」刪除。將「按鈕」的內容改為「發牌」
slide10
「發撲克牌」的物件名稱

<img name=“p1">

圖片:其名為 “p1”

<img name=“p2">

圖片:其名為 “p2”

<img name=“p3">

圖片:其名為 “p3”

type="button" name="B1"

按鈕:其名為 “B1”

<form name=“F1">

表單:其名為 “F1”

function
發牌function的寫法
  • var card = new Array(13);
  • card[0] = “0.gif”; … (將撲克牌的圖檔名稱存於 card 的 array 中)
  • function play( )
    • {
    • c1= 1~13的任一整數
    • p1.src = card[c1]
    • c2= 1~13的任一整數
    • while ( c2 = = c1) {c2= 1~13的任一整數}
    • p2.src = card[c2]
    • c3= 1~13的任一整數
    • while ( c3 = = c1 || c3 = = c2) {c3= 1~13的任一整數}
    • p3.src = card[c3]
    • }
slide12
作業一
  • 請在「發牌」的按鈕旁邊加上「蓋牌」,使得按下「蓋牌」時,所有的牌的圖案皆為「0.gif」
  • 發好牌之後,就不准任何人在換牌。即再按「發牌」就無效,除非先按「蓋牌」。如果不小心再按一次「發牌」,除了不再發牌,並用alert的指令警告使用者「 你(妳)必須先按 “蓋牌”,才能重新 “發牌”。」
    • 提示請用一個global variable來達成此任務,如:
    • var used=“not yet”
global variable
如何利用global variable來判斷是否使用過此函式?
  • var used=“not yet”
  • function play()
  • {
  • if (used == “not yet”)
  • {…….}else{……}
  • used = “already”
  • }
  • function cover()
  • {
  • …………..
  • used = “not yet”
  • }
slide14
作業二
  • 請在「發牌」「蓋牌」的按鈕旁邊加上「1、3牌互換」 ,使得按下「 1、3牌互換」時,第1及3張牌的圖案互換
    • 在按下「1、3牌互換」必須先檢查是否已經發好牌,如果還沒發好牌,並用alert的指令警告使用者「 你(妳)必須先按 “發牌”,才可以使第1及3張牌的圖案互換」
    • 提示請增加一個新的variable來達成此任務。
slide15
如何讓第 1 及 3 張牌互換?
  • p1.src = p3.src;
  • p3.src = p1.src;
  • 這樣的寫法正確嗎?
js homework 10 1
JS Homework 10-1
  • 作業一:發撲克牌
    • 按下「發牌」時連發3張不同的撲克牌(15%)
    • 請在「發牌」的按鈕旁邊加上「蓋牌」,使得按下「蓋牌」時,所有的牌的圖案皆為「0.gif」 (15%)
    • 發好牌之後,就不准任何人在換牌。即再按「發牌」就無效,除非先按「蓋牌」。如果不小心再按一次「發牌」,除了不再發牌,並用alert的指令警告是用者「 你(妳)必須先按「蓋牌」,才能重新發牌」。 (15%)
    • 請在「發牌」「蓋牌」的按鈕旁邊加上「1、3牌互換」 ,使得按下「 1、3牌互換」時,第1及3張牌的圖案互換(15%)
      • 在按下「1、3牌互換」必須先檢查是否已經發好牌,如果還沒發好牌,並用alert的指令警告使用者「 你(妳)必須先按 “發牌”,才可以使第1及3張牌的圖案互換」
js homework 10 2
JS Homework 10-2
  • 作業二:比大的擲骰子遊戲(40%)
    • 在我的講義網頁,選按「 ※下載「骰子」的教材」,將所有的圖片下載於「我的文件\WWW\js-10」
    • 請製作如右圖的表單
    • 按下按鈕之後,去呼叫一函式。而此函式會自動產生兩個1~6的任意整數d1及d2,然後依照所產生的數字更換圖片的內容。
      • 若d1+d2>7則在結果文字方塊顯示「贏了!」
      • 若d1+d2<=7則在結果文字方塊顯示「輸了!」
slide18
作業繳交方式
  • 請在今天(12月30日)午夜十二點將自己的網站寫在BB的JavaScript Homework 10
    • 12月30日午夜十二點以前繳交滿分100分
    • 12月30日午夜十二點以後就不需要繳交,以0分計算