※ 引述《weywey (愛毛頭的威..@_@)》之銘言:
: ※ 引述《Big (人人快樂又開心!)》之銘言:
: : 對呀
: : 對呀
: : 火火火火火
: : 氣死我了
: : 靠................
: 嗯......人家寫程式
: 你別那麼火大嘛.....
實在是看不太去了,沒想到大家居然忘了我的存在……
n-queen 實在是非常高中的問題啊……用Java寫當然也
是不錯啦,但是還是要養成好習慣啊,尤是縮排、變數
名稱啦,都要有固定的風格,要不然別人怎看得下去呢?
比較起來,我們的Java作業真的是比較有挑戰性多了……
我們要寫一個數位電路的模擬程式,就是有很多and or xor
gate的模擬器,有點像電機系說……放在web上……大家可以
自己設計一些電路玩玩看喔……選取各種gate後在空白處按
下就可以放一個,用wire可以連接每一個gate喔……還有燈
炮、電源、加法器等有趣的東東……但是你的browser要支援
Java 1.1.5以上才可以看得到喔!!
http://www.csie.ntu.edu.tw/~b6506064/Circuits
此外……給大家看一下我高一時寫的n-queen...非遞迴版的……
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <mem.h>
void step_forward(void);
void show_result(void);
void save_result(void);
#define COUNT_QUEEN 8
#define USED 0
#define UN_USED -1
#define ATTACKING 1
#define NON_ATTACKING 0
char *cheak_LT_RB;
char *cheak_RT_LB;
char *result;
char *data[100];
char row=0;
int count_result=1;
void main(void)
{
char i;
cheak_LT_RB=(char *)malloc(sizeof(char)*COUNT_QUEEN*2);
cheak_RT_LB=(char *)malloc(sizeof(char)*COUNT_QUEEN*2);
result=(char *)malloc(sizeof(char)*COUNT_QUEEN);
for(i=0;i<COUNT_QUEEN;i++)
result[i]=UN_USED;
for(i=0;i<(COUNT_QUEEN*2);i++)
{
cheak_LT_RB[i]=NON_ATTACKING;
cheak_RT_LB[i]=NON_ATTACKING;
}
printf("\nStart to find the solution(s) of Non-attacking queens!");
step_forward();
printf("\nProgram finished!");
getch();
}
void step_forward(void)
{
char i,c1,c2;
for(i=0;i<COUNT_QUEEN;i++)
{
if(result[i]!=UN_USED) continue;
if((cheak_RT_LB[c2=(i+row)]==ATTACKING)||(cheak_LT_RB[c1=(i-row+COUNT_QUEEN)]==ATTACKING))
continue;
result[i]=row;
row++;
cheak_LT_RB[c1]=ATTACKING;
cheak_RT_LB[c2]=ATTACKING;
if(row==COUNT_QUEEN)
{
show_result();
count_result++;
}
else
step_forward();
cheak_LT_RB[c1]=NON_ATTACKING;
cheak_RT_LB[c2]=NON_ATTACKING;
row--;
result[i]=UN_USED;
}
}
void show_result(void)
{
char i;
clrscr();
for(i=0;i<COUNT_QUEEN;i++)
{
gotoxy(i+3,1);
printf("%i",i);
gotoxy(1,i+2);
printf("%i",i);
gotoxy(i+3,result[i]+2);
printf("*");
}
gotoxy(1,COUNT_QUEEN+3);
printf("%i",count_result);
}
void save_result(void)
{
data[count_result]=(char *)malloc(sizeof(char)*COUNT_QUEEN);
movmem(result,data[count_result],sizeof(char)*COUNT_QUEEN);
}
--
------------------------------------------------------------------
James Chou-Han Yang Email : chyang@robot.csie.ntu.edu.tw
------------------------------------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.m8.ntu.edu.tw)
◆ From: t196-230.dialup