第三屆 程式設計賽之系列挑戰賽 問題討論

Home Home
引用 | 編輯 andyz
2008-11-04 23:50
樓主
推文 x0
活動名稱:
第三屆 程式設計賽之系列挑戰賽 挑戰你的程式能力

活動目的:
為了讓論壇中的程式高手有發揮的機會,並提升國內程式人員的功力,所以論壇特地舉辦了本系列的活動 表情

活動對像:
數位男女全體會員

活動日期:
收件日期: 即日起 至 2008.12.1 00:00 (以系統時間為準,若參賽作品少於3件,將自動順延一個月)
票選日期:2008.12.1 00:01 至 2008.12.5 24:00 (以系統時間為準,若活動延期將順延)
頒獎日期:2008.12.7

活動內容:
程式設計系列挑戰賽 第一關 - 八后棋

活動說明:
1. 八后棋是在一個 8x8 的矩陣格中放入8個棋子,而這8個棋的水平、垂直、斜線都不能碰到別的棋子
2. 用程式呈現放棋子的步驟並計算排出的時間
3. 程式語言不限
活動規則及參加辦法:
1. 在本文回覆-回覆格式如下
2. 將程式原始碼和執行結果上傳至附件中
3. 執行結果可用圖檔或是文件檔上傳
4. 程式中必需有論壇的 LOGO
5. 本活動每一關皆以回覆保密方式進行,再每一關破關後,即開放所有回覆的文章
回文格式:
複製程式
開發語言:
個人感想:


票選辦法:
1、若作品超過20件,擬作兩階段票選,管理員篩選出50%的所有作品,再由會員票選第一名(採用投票保密)。
2、由每位會員限最多 2 票 投予不同作品! 投票並回文獎勵雅幣+20 (人人有獎)
3、若投票會員留有轟動武林、驚動萬教之觀後感,將再額外獎勵支持度+10
獎勵辦法:
只要參賽符合參賽規定的就送500雅幣
冠軍一名:獎金雅幣+2500,頒創作大師獎勳章一枚 及虛擬城市贊助的高級喇叭一組
山音多媒体音箱
亞軍一名:獎金雅幣+2000,數位男女紀念馬克杯一個
季軍一名:獎金雅幣+1500,數位男女紀念馬克杯一個
優等二名:獎金雅幣+1000,數位男女紀念馬克杯一個

獎品贊助廠商:虛擬城市
以上獎品需自付郵資
LOGO 歡迎取用


對於活動有任何問題的,請在本篇回覆
作品發表請到活動帖回覆 http://bbs.mychat.to/read.php?tid=753210

獻花 x0
引用 | 編輯 三仙
2008-11-05 21:30
1樓
  
1. 八后棋是在一個 8x8 的矩陣格中放入8個棋子,而這8個棋的水平、垂直、斜線都不能碰到別的棋子
座標解題將皇后設定為(0,0)
水平座標不能放(x,0)
垂直座標不能放(0,x)
斜線座標不能放(+x,+x)、(-x,-x)
斜線座標不能放(+x,-x)、(-x,+x)
判斷無值再將皇后放入
這個快寫好了表情

2. 用程式呈現放棋子的步驟並計算排出的時間
放棋子的迴圈與判斷我還沒想

3. 程式語言不限
在排VB畫面中表情
我那個讀幼稚園的女兒說
能不能寫成讓她可以玩的表情   努力中


獻花 x1
引用 | 編輯 aa
2008-11-06 05:50
2樓
  
下面是引用三仙於2008-11-05 21:30發表的 :
1. 八后棋是在一個 8x8 的矩陣格中放入8個棋子,而這8個棋的水平、垂直、斜線都不能碰到別的棋子
'座標解題將皇后設定為(0,0)
'水平座標不能放(x,0)
'垂直座標不能放(0,x)
'斜線座標不能放(+x,+x)、(-x,-x)
'斜線座標不能放(+x,-x)、(-x,+x)
'判斷無值再將皇后放入
這個快寫好了表情

2. 用程式呈現放棋子的步驟並計算排出的時間
放棋子的迴圈與判斷我還沒想

3. 程式語言不限
在排VB畫面中表情
我那個讀幼稚園的女兒說
能不能寫成讓她可以玩的表情 努力中

呵呵呵...
寫成讓她可以玩的不錯哦... 表情
這個遊戲有點像8x8的數獨

獻花 x0
引用 | 編輯 三仙
2008-11-06 06:11
3樓
  
下面是引用aa於2008-11-06 05:50發表的 :
呵呵呵...
寫成讓她可以玩的不錯哦... 表情
這個遊戲有點像8x8的數獨


不好意思表情 因為在排畫面的時候
她剛好看到我在畫圖
不過我覺得這個給小朋友玩有一點難說表情

獻花 x0
引用 | 編輯 笑笑
2008-11-06 10:59
4樓
  
下面是引用三仙於2008-11-06 06:11發表的 :
 

不好意思表情 因為在排畫面的時候
她剛好看到我在畫圖
不過我覺得這個給小朋友玩有一點難說表情

下次可以弄個華容道來玩玩.... 表情

獻花 x0
引用 | 編輯 晴雲秋月
2008-11-10 14:07
5樓
  
請問一下
題目的第2項. 用程式呈現放棋子的步驟並計算排出的時間

可以在說明清楚一點嗎?
指的是??
1.由程式自動呈現出所有解嗎?
2.由使用者指定第一顆位置,再由程式呈現出所有解?
3.使用者自行排列出所有解?

獻花 x0
引用 | 編輯 三仙
2008-11-10 21:15
6樓
  
下面是引用晴雲秋月於2008-11-10 14:07發表的 :
請問一下
題目的第2項. 用程式呈現放棋子的步驟並計算排出的時間

可以在說明清楚一點嗎?
指的是??
1.由程式自動呈現出所有解嗎?
2.由使用者指定第一顆位置,再由程式呈現出所有解?
3.使用者自行排列出所有解?


1.由程式自動呈現出所有解嗎?
ANS.1.1由程式自重解出 8 * 8 的所有組合。
       1.2至於排出時間是一組秀一次,還是所有組數的總時間,應該是沒有很大的關係吧??
            我想分類版主的意思,可能是要看程式解題的時間吧表情

2.由使用者指定第一顆位置,再由程式呈現出所有解? 
3.使用者自行排列出所有解?
ANS.如果您想寫成遊戲,是可以試試加上去表情

獻花 x0
引用 | 編輯 andyz
2008-11-10 22:04
7樓
  
下面是引用晴雲秋月於2008-11-10 14:07發表的 :
請問一下
題目的第2項. 用程式呈現放棋子的步驟並計算排出的時間

可以在說明清楚一點嗎?
指的是??
1.由程式自動呈現出所有解嗎?
2.由使用者指定第一顆位置,再由程式呈現出所有解?
3.使用者自行排列出所有解?

以上3種都可以

舉辦此活動的目的最主要是要讓大家提升程式功力

所以並不會拘泥於字面上的意思

只要符合八后棋的規則

都是可以加入比賽的

獻花 x0
引用 | 編輯 andyz
2008-11-10 22:10
8樓
  
附件是我用C寫出來的八后棋92種解

沒有仔細去驗證過
不知道有無錯誤的解

(我也好想參賽啊......XD)

改天改用javascript寫...變成網頁遊戲...XD

本帖包含附件
檔名: txt nqueen.txt   (2022-06-09 14:06 / 65 KB)  
下載次數:46


獻花 x0
引用 | 編輯 三仙
2008-11-10 22:42
9樓
  
 
下面是引用andyz於2008-11-10 22:04發表的 :


以上3種都可以

舉辦此活動的目的最主要是要讓大家提升程式功力

所以並不會拘泥於字面上的意思

只要符合八后棋的規則

都是可以加入比賽的


不好意思表情 誤解要解出所有的組合

我可以參賽嗎表情
獎品......表情

獻花 x0
引用 | 編輯 WindinCloud
2008-11-11 23:54
10樓
  
喵~
這是說我可以把我大學作業上傳上去嘛?

獻花 x0
引用 | 編輯 三仙
2008-11-12 10:27
11樓
  
下面是引用WindinCloud於2008-11-11 23:54(11樓)發表的 :
喵~
這是說我可以把我大學作業上傳上去嘛?


歡迎參予這次的活動
只要能符合八后棋的規則
都是可以加入比賽的

獻花 x0
引用 | 編輯 leacks
2008-11-18 23:47
12樓
  
vc要怎計時?
我是採用windows forms

如果給他一個time,每1 ms的刻度好像不大準(誤差蠻大的)
還是是因為其實東西都跑完了,電腦顯示比較慢?

獻花 x0
引用 | 編輯 fox3000
2008-11-22 20:09
13樓
  
請求技術支援......

目前小弟遇到瓶頸,希望能有高手指點一二
---------------------------------
首先,操作者可以將 Queen 圖示拖曳到 8x8 的任一個位置
按下按鈕後,由程式將另外七個 Queen 的位置算出並顯示
(根據可擺放的位置,逐一由亂數生成)
---------------------------------
問題是,程式目前最多只能算出 7 個 Queen (包含操作者指定的一個)
第 8 個 Queen 就難產了(因為第 8 個 Queen 不管怎麼擺放都不符合規定)

希望各位先進可以給小弟一些指點,感激不盡! 表情

獻花 x0
引用 | 編輯 三仙
2008-11-22 21:50
14樓
  
下面是引用fox3000於2008-11-22 20:09(13樓)發表的 :
請求技術支援......

目前小弟遇到瓶頸,希望能有高手指點一二
---------------------------------
首先,操作者可以將 Queen 圖示拖曳到 8x8 的任一個位置
按下按鈕後,由程式將另外七個 Queen 的位置算出並顯示
(根據可擺放的位置,逐一由亂數生成)
---------------------------------
問題是,程式目前最多只能算出 7 個 Queen (包含操作者指定的一個)
第 8 個 Queen 就難產了(因為第 8 個 Queen 不管怎麼擺放都不符合規定)

希望各位先進可以給小弟一些指點,感激不盡! 表情


在8x8陣列
隨意擺放求餘解
所以不管Q放哪裡 A(X,Y)
都須有左右求解的迴圈A(1 TO X-1,1 TO 8),A(X-1 TO 8,1 TO 8)
但不知你的程式邏輯
所以無法再給建議

獻花 x0
引用 | 編輯 fox3000
2008-11-23 09:01
15樓
  
下面是引用三仙於2008-11-22 21:50(14樓)發表的 :
在8x8陣列
隨意擺放求餘解
所以不管Q放哪裡 A(X,Y)
都須有左右求解的迴圈A(1 TO X-1,1 TO 8),A(X-1 TO 8,1 TO 8)
但不知你的程式邏輯
所以無法再給建議

謝謝三仙大大的回應
-----程式邏輯------
第一個Q1放好,將Q1本身座標及「水平、垂直、斜線」全部做記號
隨機產生Q2,但Q2的位置不能落在已做記號的位置上
Q3~Q8以此類推........問題是,Q7產生完畢後,所有座標都做了記號,無法再產生Q8了
-----------------------

剛剛看到三仙大大有放了範例了 表情

小弟再自行研究一下 表情

獻花 x0
引用 | 編輯 三仙
2008-11-23 22:23
16樓
  
下面是引用fox3000於2008-11-23 09:01(15樓)發表的 :


謝謝三仙大大的回應
-----程式邏輯------
第一個Q1放好,將Q1本身座標及「水平、垂直、斜線」全部做記號
隨機產生Q2,但Q2的位置不能落在已做記號的位置上
Q3~Q8以此類推........問題是,Q7產生完畢後,所有座標都做了記號,無法再產生Q8了
-----------------------

剛剛看到三仙大大有放了範例了 表情

小弟再自行研究一下 表情


如果你想看慢動作播放
我有重新放一個執行檔
你可以參考看看

獻花 x0
引用 | 編輯 leacks
2008-11-24 10:13
17樓
  
難道你是因為放到第7個實已經滿了?
理論上是會這樣沒錯,因此你要有取消動作

獻花 x0
引用 | 編輯 fox3000
2008-11-24 21:20
18樓
  
下面是引用leacks於2008-11-24 10:13(17樓)發表的 :
難道你是因為放到第7個實已經滿了?
理論上是會這樣沒錯,因此你要有取消動作

原本的寫法是使用者把 Q1 拖曳至任意處,再由程式隨機產生 Q2~Q8,
但遇到的問題是,幾乎到 Q7 就死路了,Q8 已經塞不下去了。

參考了三仙大大的範例後,改寫成:
1.使用者把 Q1 拖曳至任意處
2.從最左邊的開始隨機產生 Q2~Q8 <==這是重點,也就是我之前解不出來的罩門
舉例說明,Q1=D5,Q2落在Ax,Q3落在Bx,Q4落在Cx,Q5落在Ex,Q6落在Fx,Q7落在Gx,Q8落在Hx (x 由程式解出)

把 Q2~Q8 的產生順序控制在由左至右,就可以順利解出正確答案(隨機產生)了   表情

獻花 x0
引用 | 編輯 三仙
2008-11-24 22:19
19樓
  
下面是引用fox3000於2008-11-24 21:20(18樓)發表的 :


原本的寫法是使用者把 Q1 拖曳至任意處,再由程式隨機產生 Q2~Q8,
但遇到的問題是,幾乎到 Q7 就死路了,Q8 已經塞不下去了。

參考了三仙大大的範例後,改寫成:
1.使用者把 Q1 拖曳至任意處
2.從最左邊的開始隨機產生 Q2~Q8 <==這是重點,也就是我之前解不出來的罩門
舉例說明,Q1=D5,Q2落在Ax,Q3落在Bx,Q4落在Cx,Q5落在Ex,Q6落在Fx,Q7落在Gx,Q8落在Hx (x 由程式解出)

把 Q2~Q8 的產生順序控制在由左至右,就可以順利解出正確答案(隨機產生)了   表情


很高興能幫你解出罩門
希望你能一起參加活動表情 

獻花 x0
引用 | 編輯 s3748679
2008-12-02 21:56
20樓
  
= =a,似乎時間到了...,前兩天才有控上來看一下=           =
(變成只能分享不能參賽了ˊˋ")

獻花 x0
引用 | 編輯 arterlantis
2008-12-11 11:21
21樓
  
OH 居然是用投票的沒注意到 表情
早知道應該把介面弄的炫一點
表情

獻花 x0
引用 | 編輯 三仙
2008-12-16 13:06
22樓
  
下面是引用arterlantis於2008-12-11 11:21發表的 : 到引言文
OH 居然是用投票的沒注意到 表情
早知道應該把介面弄的炫一點
表情


下次請你一定要加油
這樣才能把獎品拿回家表情

獻花 x0