第三届 程式设计赛之系列挑战赛 问题讨论

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