台灣最大程式設計社群網站
線上人數
1301
 
會員總數:246265
討論主題:189809
歡迎您免費加入會員
討論區列表 >> Java >> 請教『隨機顯示,但要取得"不重覆"』
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請教『隨機顯示,但要取得"不重覆"』
價值 : 500 QP  點閱數:3853 回應數:34
樓主

逃咖小巴蕊
門外漢
0 2
126 19
發送站內信

我現在是使用js與htm分開的方式,

js存成imgjs.js,
取得隨機的方式為:

today=new Date();
jran=today.getTime();
function rnd() {
ia=9301;
ic=49297;
im=233280;
jran = (jran*ia+ic) % im;
return jran/(im*1.0);
};
function rand(number) {
return Math.ceil(rnd()*number);
};
document.write("<center>");
for(i=1;i<=1;i++) {
myNum=(rand(51)); //隨機顯示的圖片數;
if(myNum == 1) document.write("<a href='http://xxx1.com' target='_blank'><img src='http://xxx/01.jpg' width='270' height='300'></a>");
if(myNum == 2) document.write("<a href='http://xxx2.com' target='_blank'><img src='http://xxx/02.jpg' width='270' height='300'></a>");
if(myNum == 3) document.write("<a href='http://xxx3.com' target='_blank'><img src='http://xxx/03.jpg' width='270' height='300'></a>");
...
...
...
if(myNum == 51) document.write("<a href='http://xxx51.com' target='_blank'><img src='http://xxx/51.jpg' width='270' height='300'></a>");
else {
document.write();
}
};
document.write("</center>");

htm存為一個檔,
在要顯示圖片的地方加入:

<script src="js/imgjs.js"></script>

在顯示方面沒問題了,但不懂得怎麼取得不重覆的方法…求教!

搜尋相關Tags的文章: [ 隨機 ] , [ 不重覆 ] ,
本篇文章發表於2015-04-27 14:04
16樓
作者回應

逃咖小巴蕊
檢舉此回應
測試的結果,我將程式碼存成htm檔,
read也將連結網址與圖片網址修改後,
實際在運行htm檔得到的結果為:一片空白
本篇文章回覆於2015-04-28 14:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
17樓
回應

香帥
檢舉此回應
如果是一片空白,最有可能的是script內的語法錯誤,例如少了 ;
或我常用vb 的 ' 當成註解,忘了改用 //
因此請檢察您的語法有沒錯誤或漏掉對應的 next
本篇文章回覆於2015-04-28 14:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
18樓
回應

香帥
檢舉此回應
還有一片空白時候,
document.write("圖片=" + myR[r[i]].split(",")[1] ); //本行僅是參考讓您看出亂數值圖片網址,實際執行拿掉本行
這行可以除錯,看會不會顯示出來,若不會顯示出來,表示語法有錯誤,就不再執行
本篇文章回覆於2015-04-28 15:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
19樓
作者回應

逃咖小巴蕊
檢舉此回應
呵呵,謝謝香帥耐心的解說與解答,
只是您的程式碼對於我來說,
已超出我所能理解的範圍了…
目前我也使用過您說可以除錯用的程式碼…
但還是沒有任何圖片、結連會顯示出來…
我也去檢查過所有的"、',
亦看不出有問題的地方…
;則還沒理解到
我本身是利用看書自學,
及網上一些程式碼來去理解,
對於除錯的觀念可以說是完全不理解…
還請香帥不吝賜教
本篇文章回覆於2015-04-28 15:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
20樓
回應

香帥
檢舉此回應
除錯用的程式碼…是顯示文字喔,有沒顯示文字呢

本篇文章回覆於2015-04-28 16:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
21樓
作者回應

逃咖小巴蕊
檢舉此回應
沒有任何文字出現哦
本篇文章回覆於2015-04-28 16:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
22樓
不錯的參考

香帥
檢舉此回應
我知道您原因了
請將程式碼第20行改為
var txt = loadXMLDoc("http://ap.a168a.com/blueshop/rand/read.txt");
由我的server去讀取就可以
本篇文章回覆於2015-04-28 16:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
23樓
回應

香帥
檢舉此回應
補充說明,因為您沒發布至實際環境,因此c槽資料可能無法讀取,先以我server資料去讀就應該可以
本篇文章回覆於2015-04-28 17:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
24樓
作者回應

逃咖小巴蕊
檢舉此回應
我有將程式上傳至空間中,
顯示即為正常,
原來java在執行的方式跟htm不同,
無法在單機做測試...
又學習到不同的地方了…
很開心XD…

那香帥,請問一下,
現在所執行出來的部份,
圖片會直接全部顯示出來,
當我要在htm內選擇我要貼圖的位置時,
像我之前使用的程式碼,
我可以在我想要的位置顯示圖片,
但是現在的程式碼,
我要怎麼去編輯呢?
本篇文章回覆於2015-04-28 17:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
25樓
回應

香帥
檢舉此回應
若是自動化大量圖片,一般都是自動排列為宜,像您原來的預設長寬,自動排起來也是很好看。
若是少量圖片位置排列,可用一些web開發軟體,所見即所得的排列,並去書局參考一些開發軟體,都有提供範例
用途不同、圖片大小不同、螢幕解析度...,都要考慮進去,若排列有問題,可再發文秀出您的排列程式碼,
有興趣並會的人,若有空閒自會再跟您解答。
本篇文章回覆於2015-04-28 19:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
26樓
作者回應

逃咖小巴蕊
檢舉此回應
所以如果說,以我現在寬270,長300的設定下,
如果我要讓它每排顯示三張,幾列不管,
我在htm中設置一個<table>,
寬設為270x3,也就是510的方式,
亦可達到我想要的寬三張的效果囉…
不過這樣可以設計的網頁效果就變的比較少變化了對吧!
本篇文章回覆於2015-04-28 20:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
27樓
作者回應

逃咖小巴蕊
檢舉此回應
那像以之前的方式來說,
js跟htm用分開的方式來做,
在htm輸入調用js的語法,
其原理為何?
為什麼可以一次調用一張,
而您的這種則是會一次顯示全部呢?
本篇文章回覆於2015-04-28 20:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
28樓
作者回應

逃咖小巴蕊
檢舉此回應
多測試了幾次,
我發現,好像連顯示出來的圖片,
也是隨機數量了,
就是可能這次30張,
重新整理後,
可能變41張,
再重整後,變20張…
那所設置的51張圖片不會全部顯示,
那貼出來的效果也就跟著變成不好設定了…

我舉個例來說,
例如我全部的圖片為51張,
我要讓它在網頁中,
以橫x3
列不設定上限來說,
其本會變成橫3列17的圖片列表,
而我原本的程式碼是讓它51張去隨機顯示在這3x17的網頁裡,
只是無法取得不重覆,
現在卻變成連出來的張數都成為了不一定,
這個就比較不是我當初設計的效果,
不過在香帥的程式碼中,
我只能看出,
它是從我所有的51張圖片隨機,
卻看不太懂它是怎麼去隨機取得張數的…
還請香帥能再給予指教,謝謝您
本篇文章回覆於2015-04-28 21:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
29樓
不錯的參考

香帥
檢舉此回應
請參考
http://ap.a168a.com/blueshop/rand/rnd6.htm
以上圖片會在本案結束刪除,避免侵犯版權。
每次出現都是52張牌,不會像您28樓講的,i會變來變去,程式碼請自己看原始碼(只改參數,並加個編號document.write(i);),讓您可以看到都有52張)
為尊重版權,以上圖片將於本案教學完刪除。


本篇文章回覆於2015-04-29 01:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
30樓
作者回應

逃咖小巴蕊
檢舉此回應
看來,我好像找到問題點了,
是出在於read.txt裡面,
如果我是從第一行開始
http://xxx1.com/,http://xxx/01.jpg的話
就會亂跳,真的會隨機出現不同張數0.0
但我把read.txt改為像香帥的,
第一行為aaa,bbb,
把http://xxx1.com/,http://xxx/01.jpg從第二行開始,
就沒有問題了,隨機及顯示都正常了…

關於程式碼的部份我會由香帥教學的程式碼中再學習,
非常感謝香帥為了小巴不辭辛勞、且有耐心的教導與解說,
真的很感謝您…

不過我有上網查了一下,
看了許多文章,卻不太了解在read.txt中第一行的問題,
或是可能我搜尋的方式不正確,
不知香帥能否再不吝告知最後的這個問題,
或是告訴我應該要怎麼搜尋可以去了解read.txt第一行的問題 Thanks!
本篇文章回覆於2015-04-29 02:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   

回覆
如要回應,請先登入.