Re: [wizs] 巫師升等測驗題目二

看板mud_sanc (Sanctuary - 聖殿)作者 (龍娃娃)時間17年前 (2008/11/20 20:11), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
都最後一天了看起來應沒其他人要寫我就直接發了。 程式位置: /u/d/dragondoll/question/q2.c 程式行數: 算這幹嘛? 執行結果: 略 這題大概花了我看兩節生理共筆的時間完成。 有些地方寫的有點不滿意,不過我也不想多花時間改了。 另,原則上不多做題目要求以外的容錯判定。 inherit ROOM; void create() { ::create(); seteuid(getuid()); set("light",1); set("short","Test2"); set("long",@PLAIN PLAIN ); } void init() { add_action("test41","test2"); } mixed show_rearrange(mixed fa2) { int i,j; string msg=""; for(i=0;i<sizeof(fa2);i++) { for(j=0;j<sizeof(fa2[i]);j++) { if(j==4) { if(fa2[i][j]==" 爆!"){ msg = msg + HIR + fa2[i][j]+NOR; fa2[i][j]= HIR + fa2[i][j]+NOR;} else if(fa2[i][j]==" HOT"){ msg = msg + HIW + fa2[i][j]+NOR; fa2[i][j]= HIW + fa2[i][j]+NOR;} else msg = msg + fa2[i][j]; } else msg = msg + fa2[i][j]; } msg = msg + "\n"; } write(msg); return fa2; } int test41(string str) { string file,ss,msg; int i; mixed fa,fa2; file = read_file("/d/test2.txt"); fa = explode(file,"\n"); fa2=allocate(sizeof(fa)); msg = ""; for(i=0;i<sizeof(fa);i++) { ss = fa[i]; fa2[i]=allocate(6); fa2[i][0] = ss[0..9]; fa2[i][2] = ss[10..22]; fa2[i][1] = ss[23..27]; fa2[i][3] = ss[28..61]; fa2[i][4] = ss[62..66]; fa2[i][5] = ss[67..strlen(fa[i])-1]; //在這裡只要改變數字的順序就可以變 換顯示了, 此處僅變換2, 3項 } fa2 = show_rearrange(fa2); fa2 = sort_array(fa2,"ig1",this_object()); write("依人氣排序顯示:\n"); show_rearrange(fa2); fa2 = sort_array(fa2,"ig2",this_object()); write("依類別排序顯示:\n"); show_rearrange(fa2); fa2 = sort_array(fa2,"ig3",this_object()); write("依板名排序顯示:\n"); show_rearrange(fa2); return 1; } int ig1(mixed a,mixed b) { int ax,bx; if(a[4]==HIR+" 爆!"+NOR)ax = 999; else if(a[4]==HIW+" HOT"+NOR)ax = 101; else ax=atoi(a[4]); if(b[4]==HIR+" 爆!"+NOR) bx = 999; else if(b[4]==HIW+" HOT"+NOR) bx = 101; else bx = atoi(b[4]); if(ax>bx)return 1; else if(ax<bx)return -1; else return 0; } int ig2(mixed a,mixed b) { if(a[1]=="類別 ")return -1; else if(b[1]=="類別 ")return 1; if(a[1]>b[1])return 1; else if(a[1]<b[1])return -1; else return 0; } int ig3(mixed a,mixed b) { string ax,bx; if(a[2]=="看 板 ")return -1; else if(b[2]=="看 板 ")return 1; ax = capitalize(a[2]); bx = capitalize(b[2]); if(ax>bx)return 1; else if(ax<bx)return -1; else return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.194.152.155
文章代碼(AID): #199LFbX- (mud_sanc)
文章代碼(AID): #199LFbX- (mud_sanc)