首頁 > FLEX > 使用 FLEX-AS3 實作 JAVA 樂透程式

使用 FLEX-AS3 實作 JAVA 樂透程式

2009年1月21日  瀏覽次數 : 4,144

今天大掃除找到以前學 JAVA 的書
裡面有很多題目
所以就想說把他的題目用 FLEX-AS3 來實作
不過前面當然是很簡單囉~
如果有朋友自學或是剛入門的也可以看看囉~@@

希望不會後面太難 然後我自己寫不出來了 哈~~

第一彈 JVD01FLEX 樂透程式 - 使用 FLEX-AS3 實作 JAVA 應用程式

image


題目敘述:
請使用 MATH 或 RANDOM 類別所提供的亂數函數及陣列來設計一模擬樂透彩開獎的程式
程式執行後會產生 6 個號碼以及 1 個特別號

1.每次執行程式皆會亂數產生 6 個號碼及 1 個特別號
2.號碼之間不可重複出現
3.所有號碼介於 01 ~ 42 之間
4.個位數號碼顯示時請漁號碼前加入 “0″ 例如 7 要顯示 07

評分項目
每次執行程式皆會亂數產生 6 個號碼及 1 個特別號 - 4
號碼之間不可重複出現 - 4
所有號碼介於 01 ~ 42 之間 - 4
個位數號碼顯示時請於號碼前加入 “0″ 如 7 要顯示 07 - 3

總分 15

Author: 山羊
URL: http://blog.corausir.org/

by Author :

這個實作的程式 我寫了兩個方法
通常一般寫程式的初學者應該會用方法2
先取出亂數並且判斷陣列中是否重複
雖然這個範例中差異並不會很大
但是如果在 1000 個亂數中要取出 800 個 (或更大的數字)
兩者的效能就會以方法一較有效率

方法1 -> 1000次寫入陣列 800次產生亂數
方法2 -> 800次寫入陣列 800次(以上)產生亂數

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
62
63
64
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" fontSize="14">
 
	<mx:Script>
		<![CDATA[
			import mx.collections.ArrayCollection;
			/*
			題目敘述:
			請使用 MATH 或 RANDOM 類別所提供的亂數函數及陣列來設計一模擬樂透彩開獎的程式
			程式執行後會產生 6 個號碼以及 1 個特別號
 
			1.每次執行程式皆會亂數產生 6 個號碼及 1 個特別號
			2.號碼之間不可重複出現
			3.所有號碼介於 01 ~ 42 之間
			4.個位數號碼顯示時請漁號碼前加入 "0" 例如 7 要顯示 07
 
			評分項目
			每次執行程式皆會亂數產生 6 個號碼及 1 個特別號 - 4
			號碼之間不可重複出現 - 4
			所有號碼介於 01 ~ 42 之間 - 4
			個位數號碼顯示時請於號碼前加入 "0" 如 7 要顯示 07 - 3
 
			總分 15
 
			Author: 山羊
			URL: <a onclick="pageTracker._trackPageview ('/outgoing/http_gjo4rul4_blogspot_com');" href="http://gjo4rul4.blogspot.com" target="_blank">http://gjo4rul4.blogspot.com</a>
 
			by Author :
 
			這個實作的程式 我寫了兩個方法
			通常一般寫程式的初學者應該會用方法2
			先取出亂數並且判斷陣列中是否重複
			雖然這個範例中差異並不會很大
			但是如果在 1000 個亂數中要取出 800 個 (或更大的數字)
			兩者的效能就會以方法一較有效率
 
			方法1 -> 1000次寫入陣列 800次產生亂數
			方法2 -> 800次寫入陣列 800次(以上)產生亂數
 
 
			*/
 
			//方法1
			private function clickHandler1():void{
				//清空印出區域
				this.printOutArea.text = "";
				//建立集合物件
				var arc:ArrayCollection = new ArrayCollection();
				//執行 42 次的迴圈  >> 將 42 個數字依序塞入集合物件
				for(var i:int=1;i<=42;i++){
					//如果 數字 小於 10 的話必須在 數字前面加上 0
					if(i<10){
						//將數字 "塞入" 集合物件
						arc.addItem("0"+i);
					}else{
						//將數字 "塞入" 集合物件
						arc.addItem(i);
					}
				}
				//用亂數取出 6 個號碼
				//執行 6 次迴圈
				for(var j:int=0;j<6;j++){
					//先取出 亂數*集合物件的長度
					var number:int = Math.floor(Math.random()*arc.length);
					//將集合物件的第 x 個物件取出並印在打印區  x 代表剛剛取出的亂數 ( 但不會超過集合物件的長度 )
					this.printOutArea.text = this.printOutArea.text + "第 " + (j+1) + " 個號碼 : "+ arc.getItemAt(number) + "\n";
					//將抽到的號碼從集合物件移除
					arc.removeItemAt(number);
				}
				//再抽出最後一個號碼 為特別號 , 這個就不用再移除物件了 因為已經結束了
				this.printOutArea.text = this.printOutArea.text + "特別號 : "+ arc.getItemAt(Math.floor(Math.random()*arc.length)) + "\n";
 
			}
			//方法2
			private function clickHandler2():void{
				//清空印出區域
				this.printOutArea.text = "";
				//建立陣列
				var array:Array = new Array();
				//陣列必須要有 7 個數字才停止運算
				while(array.length < 7){
					//建立亂數 1~42 中取 1
					var number:int = Math.floor(Math.random()*42)+1;
					//數字是否重覆旗標
					var hasNumber:Boolean = false;
					//逐次比對陣列內所有的數字
					for(var i:int=0;i<array.length;i++){
						//如果發現陣列已經有得到的亂數就把重複旗標設定為 true
						if(number == array[i]){
							hasNumber = true;
						}
					}
					//如果沒有發現重複的數值 塞入亂數
					if(!hasNumber){
						array.push(number);
					}
 
				}
				//取出依序取出前六個號碼
				for(var j:int=1;j<=6;j++){
					//如果小於 10 就在 數字前面 + 上 0
					if(array[j-1]<10){
						this.printOutArea.text = this.printOutArea.text + "第 " + j + " 個號碼 : "+ "0"+array[j-1] + "\n";
					}else{
						this.printOutArea.text = this.printOutArea.text + "第 " + j + " 個號碼 : "+ array[j-1] + "\n";
					}
 
				}
				//取出特別號
				//如果小於 10 就在 數字前面 + 上 0
				if(array[6]<10){
					this.printOutArea.text = this.printOutArea.text + "特別號 : "+ "0"+array[6] + "\n";
				}else{
					this.printOutArea.text = this.printOutArea.text + "特別號 : "+ array[6] + "\n";
				}
 
			}
 
		]]>
	</mx:Script>
	<!--建立三個 FLEX 物件-->
	<mx:Text text="JAVA 實力評量 JVD01 使用 FLEX 實作 &#xa;&#xa;模擬樂透彩 (易)&#xa;&#xa;程式執行號產生六個號碼以及一個特別號"/>
	<mx:TextArea width="800" height="400" id="printOutArea"/>
	<mx:Button label="執行 方法 1" click="clickHandler1()"/>
	<mx:Button label="執行 方法 2" click="clickHandler2()"/>
</mx:Application>

Random Posts

Loading…

:: 把這篇好文推到書籤網站與更多人分享吧 ::
  • funp
  • Hemidemi
  • YahooKimo
  • Google
  • udn
  • Haohao
  • Live

目前並無相關文章

Ausir FLEX ,

  1. 本篇文章目前尚無任何評論。
  1. 本篇文章目前尚無任何 trackbacks 和 pingbacks。