home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 March / VPR9703A.ISO / FFILLY / FTILE400 / FTILE400.TFY < prev    next >
Text File  |  1996-12-19  |  16KB  |  686 lines

  1. #info INAM    ふらっとタイル
  2. #info ISBJ    パズルゲーム ふらっとタイル Ver 4.00+
  3. #info IART    迎 亮
  4. #info ICOP    迎 亮
  5. #info IKEY    flat
  6. #info GENR    joy
  7. #info MDFY    Ask me
  8. #info TRNS    Ask me
  9. #info JINT    Ask me
  10. #info INST    Other
  11. #info VIDO    640x480;256
  12. #info GRPC    迎 亮,"MXE05170@niftyserve.or.jp"
  13. #info EFCT    迎 亮,"MXE05170@niftyserve.or.jp"
  14. #info PROD    迎 亮,"MXE05170@niftyserve.or.jp"
  15. #info CONT    迎 亮,"MXE05170@niftyserve.or.jp"
  16.  
  17. #define VER 4.00+
  18.  
  19. #define XWIDTH 80
  20. #define YWIDTH 20
  21. #define XSTPOS 60
  22. #define YSTPOS 90
  23. #define XNO 6
  24. #define YNO 10
  25. #define MAXGAMENO 29
  26.  
  27. int openwinno,basewinno,reportwinno,sortwinno,helpwinno,profilewinno,movewinno;
  28. int rulewinno,aboutwinno,clearwinno,endingwinno;
  29. int openingpic,basepic,reportpic,reportclspic,sortpic,rulepic;
  30. int bigflatpic,uppic,rightpic,leftpic,downpic;
  31. int whitepic,greenpic,bluepic,redpic,yellowpic;
  32. int bottunpic;
  33. int helppic,helpprofilepic,helpmovepic,helprulepic,helpaboutpic,clearpic,clearokpic,endingpic;
  34. int color;
  35. int placeX,placeY,dir;
  36. int count,clearsum,stepsum,check,redocheck;
  37. int dirsave,placeXsave,placeYsave,p2save,p3save,countsave,openwinnosave;
  38. int saveflag;
  39. int tile[],redo[],save[],sortarray[],stagearray[];
  40.  
  41.  
  42. #include "wave.tfy"
  43. #include "picture.tfy"
  44. #include "question.tfy"
  45. #include "flatman.tfy"
  46. #include "help.tfy"
  47. #include "report.tfy"
  48. #include "cotton.tfy"    
  49.  
  50. dummy(){
  51.     return;
  52. }
  53.  
  54. reverse(){
  55.     int i;
  56.     i=placeX+9*placeY;
  57.  
  58.     if(dir==0){        //下向きタイル戻し
  59.         if(check==1){
  60.             movewave();
  61.             tile[i+9]=tile[i+9]+1;
  62.             tile[i+18]=tile[i+18]-1;
  63.             MovePic(tile[i+9]-48,0,0,32,32,basepic,12+35*placeX,12+35*(placeY+1));
  64.             MovePic(tile[i+18]-48,0,0,32,32,basepic,12+35*placeX,12+35*(placeY+2));
  65.             countstep();
  66.             check=0;
  67.         }
  68.         else{
  69.             warnwave();
  70.             MsgBox("  ルール違反です",0x30);
  71.         }
  72.     }
  73.  
  74.     if(dir==1){        //右向きタイル戻し
  75.         if(check==1){
  76.             movewave();
  77.             tile[i+1]=tile[i+1]+1;
  78.             tile[i+2]=tile[i+2]-1;
  79.             MovePic(tile[i+1]-48,0,0,32,32,basepic,12+35*(placeX+1),12+35*placeY);
  80.             MovePic(tile[i+2]-48,0,0,32,32,basepic,12+35*(placeX+2),12+35*placeY);
  81.             countstep();
  82.             check=0;
  83.         }
  84.         else{
  85.             warnwave();
  86.             MsgBox("  ルール違反です",0x30);
  87.         }
  88.     }
  89.     if(dir==2){        //上向きタイル戻し
  90.         if(check==1){
  91.             movewave();
  92.             tile[i-9]=tile[i-9]+1;
  93.             tile[i-18]=tile[i-18]-1;
  94.             MovePic(tile[i-9]-48,0,0,32,32,basepic,12+35*(placeX),12+35*(placeY-1));
  95.             MovePic(tile[i-18]-48,0,0,32,32,basepic,12+35*(placeX),12+35*(placeY-2));
  96.             countstep();
  97.             check=0;
  98.         }
  99.         else{
  100.             warnwave();
  101.             MsgBox("  ルール違反です",0x30);
  102.         }
  103.     }
  104.     if(dir==3){        //左向きタイル戻し
  105.         if(check==1){
  106.             movewave();
  107.             tile[i-1]=tile[i-1]+1;
  108.             tile[i-2]=tile[i-2]-1;
  109.             MovePic(tile[i-1]-48,0,0,32,32,basepic,12+35*(placeX-1),12+35*placeY);
  110.             MovePic(tile[i-2]-48,0,0,32,32,basepic,12+35*(placeX-2),12+35*placeY);
  111.             countstep();
  112.             check=0;
  113.         }
  114.         else{
  115.             warnwave();
  116.             MsgBox("  ルール違反です",0x30);
  117.         }
  118.     }
  119. }
  120.  
  121. move(stageno){
  122.     real x,y;
  123.     int i,j,msgno;
  124.     int p2,p3;
  125.     str string;
  126.  
  127.     p2=46;    p3=46;        //ふらっとマンの初期位置
  128.  
  129.     mes(LBDOWN){
  130.  
  131.         p2=11+placeX*35;    p3=11+placeY*35;
  132.  
  133.  
  134.         //やり直し
  135.         if((MesP2>360 && MesP3>275 && MesP2<420 && MesP3<295) && MesP1==(basewinno)){
  136.             MovePic(bottunpic,59,133,59,19,basepic,360,275);
  137.  
  138.             openwave();
  139.             msgno=MsgBox("やり直してもいいですか?",0x20+1);
  140.  
  141.             if(msgno==1){
  142.                 for(i=0;i<81;i=i+1){
  143.                     j=i/9;
  144.                     MovePic(yellowpic,0,0,32,32,basepic,12+35*(i-9*j),12+35*j);
  145.                 }
  146.             stageredo();
  147.             check=0;
  148.             count=-1;
  149.             countstep();
  150.             startwave();
  151.             }
  152.             MovePic(bottunpic,0,133,59,19,basepic,360,275);    
  153.  
  154.             if(msgno==2)    closewave();
  155.  
  156.         }
  157.  
  158.         //一手戻し
  159.         if((MesP2>450 && MesP3>275 && MesP2<510 && MesP3<295) && MesP1==(basewinno)){
  160.             MovePic(bottunpic,59,171,59,19,basepic,450,275);
  161.             reverse();
  162.             MovePic(bottunpic,0,171,59,19,basepic,450,275);
  163.             closewave();
  164.         }
  165.  
  166.         //セーブ
  167.         if((MesP2>360 && MesP3>300 && MesP2<420 && MesP3<320) && MesP1==(basewinno)){
  168.             MovePic(bottunpic,59,209,59,19,basepic,360,300);
  169.  
  170.             openwave();
  171.             msgno=MsgBox("セーブしました",0x40);
  172.  
  173.             if(msgno==1){
  174.                 saveflag=1;
  175.                 for(i=0;i<81;i=i+1){
  176.                     save[i]=tile[i];
  177.                 }
  178.                 dirsave=dir;
  179.                 placeXsave=placeX;
  180.                 placeYsave=placeY;
  181.                 p2save=p2;
  182.                 p3save=p3;
  183.                 countsave=count;
  184.                 check=0;
  185.             }
  186.  
  187.             MovePic(bottunpic,0,209,59,19,basepic,360,300);
  188.             closewave();
  189.         }
  190.  
  191.         //ロード
  192.         if((MesP2>450 && MesP3>300 && MesP2<510 && MesP3<320) && MesP1==(basewinno)){
  193.             MovePic(bottunpic,59,228,59,19,basepic,450,300);
  194.  
  195.             if(saveflag==1){
  196.                 openwave();
  197.                 msgno=MsgBox("ロードしてもいいですか?",0x20+1);
  198.                 if(msgno==1){
  199.                     for(i=0;i<81;i=i+1){
  200.                         for(i=0;i<81;i=i+1){
  201.                             j=i/9;
  202.                             MovePic(yellowpic,0,0,32,32,basepic,12+35*(i-9*j),12+35*j);
  203.                             tile[i]=save[i];
  204.                         }
  205.                     }
  206.                     dir=dirsave;
  207.                     placeX=placeXsave;
  208.                     placeY=placeYsave;
  209.                     p2=p2save;
  210.                     p3=p3save;
  211.                     count=countsave-1;
  212.                     countstep();
  213.                     check=0;
  214.                     tiledraw();
  215.  
  216.                     if(dir==0)    MovePic(downpic,0,0,33,33,basepic,p2,p3,0,color);
  217.                     if(dir==1)    MovePic(rightpic,0,0,33,33,basepic,p2,p3,0,color);
  218.                     if(dir==2)    MovePic(uppic,0,0,33,33,basepic,p2,p3,0,color);
  219.                     if(dir==3)    MovePic(leftpic,0,0,33,33,basepic,p2,p3,0,color);
  220.                 }
  221.             }
  222.             else{
  223.                 warnwave();
  224.                 MsgBox("セーブデータがありません",0x10+1);
  225.             }
  226.  
  227.             MovePic(bottunpic,0,228,59,19,basepic,450,300);
  228.             closewave();
  229.         }
  230.  
  231.         //ヘルプ
  232.         if((MesP2>360 && MesP3>325 && MesP2<420 && MesP3<345) && MesP1==(basewinno)){
  233.             MovePic(bottunpic,59,19,59,19,basepic,360,325);
  234.             CapTitle("ふらっとタイル Ver 3.00 ヘルプ");
  235.             helpwinno=OpenWin(helppic,60,60);
  236.             help();
  237.             MovePic(bottunpic,0,19,59,19,basepic,360,325);
  238.         }
  239.  
  240.         //ステージ終了
  241.         if((MesP2>450 && MesP3>325 && MesP2<510 && MesP3<345) && MesP1==(basewinno)){
  242.             MovePic(bottunpic,59,152,59,19,basepic,450,325);
  243.             openwave();
  244.             MovePic(bottunpic,0,152,59,19,basepic,450,325);
  245.             CloseWin(basewinno);
  246.             for(i=0;i<81;i=i+1){
  247.                 j=i/9;
  248.                 MovePic(yellowpic,0,0,32,32,basepic,12+35*(i-9*j),12+35*j);
  249.             }
  250.             redocheck=0;
  251.             saveflag=0;
  252.             openwinno=openwinnosave;
  253.             openingwave();
  254.             del_me;
  255.         }
  256.  
  257.         if((MesP2>p2 && MesP3>p3+35 && MesP2<p2+33 && MesP3<281+33) && MesP1==(basewinno)){
  258.             if(check=1)    check=0;
  259.             countstep(stageno);
  260.             if(dir==0)    flatmanmovedown(p2,p3);    //下
  261.             else{
  262.                 dir=0;
  263.                 flatmanchange(p2,p3);
  264.             }
  265.         }
  266.         if((MesP2>p2+35 && MesP3>p3 && MesP2<281+33 && MesP3<p3+33) && MesP1==(basewinno)){
  267.             if(check=1)    check=0;
  268.             countstep(stageno);
  269.             if(dir==1)    flatmanmoveright(p2,p3);    //右
  270.             else{
  271.                 dir=1;
  272.                 flatmanchange(p2,p3);
  273.             }
  274.         }
  275.         if((MesP2>p2 && MesP3>11 && MesP2<p2+33 && MesP3<p3-2) && MesP1==(basewinno)){
  276.             if(check=1)    check=0;
  277.             countstep(stageno);
  278.             if(dir==2)    flatmanmoveup(p2,p3);    //上
  279.             else{
  280.                 dir=2;
  281.                 flatmanchange(p2,p3);
  282.             }
  283.         }    
  284.         if((MesP2>11 && MesP3>p3 && MesP2<p2-2 && MesP3<p3+35) && MesP1==(basewinno)){
  285.             if(check=1)    check=0;
  286.             countstep(stageno);
  287.             if(dir==3)    flatmanmoveleft(p2,p3);    //左
  288.             else{
  289.                 dir=3;
  290.                 flatmanchange(p2,p3);
  291.             }
  292.         }
  293.     }
  294.  
  295.     mes(RBDOWN){
  296.         tilemovecheck(stageno);
  297.     }
  298.  
  299.     mes(RBDBLCLK){
  300.         dummy();
  301.     }    
  302. }
  303.  
  304.  
  305. tilemovecheck(stageno){
  306.     int i;
  307.     i=placeX+placeY*9;
  308.     
  309.     if(dir==0){    //下向きチェック
  310.         if(i<63){
  311.             tilemove(i,stageno);
  312.         }
  313.     }
  314.     if(dir==1){    //右向きチェック
  315.         if(i%9!=7 && i%9!=8){
  316.             tilemove(i,stageno);
  317.         }
  318.     }
  319.     if(dir==2){    //上向きチェック
  320.         if(i>17){
  321.             tilemove(i,stageno);
  322.         }
  323.     }
  324.     if(dir==3){    //左向きチェック
  325.         if(i%9!=0 && i%9!=1){
  326.             tilemove(i,stageno);
  327.         }
  328.     }
  329. }
  330.  
  331. tilemove(i,stageno){
  332.     if(dir==0 && tile[i+9]-tile[i]==1 && tile[i+18]<tile[i+9]){    //下向きタイル移動
  333.         movewave();
  334.         tile[i+9]=tile[i+9]-1;
  335.         tile[i+18]=tile[i+18]+1;
  336.         MovePic(tile[i+9]-48,0,0,32,32,basepic,12+35*placeX,12+35*(placeY+1));
  337.         MovePic(tile[i+18]-48,0,0,32,32,basepic,12+35*placeX,12+35*(placeY+2));
  338.         countstep();    
  339.         clearcheck(stageno);
  340.         check=1;
  341.     }
  342.     if(dir==1 && tile[i+1]-tile[i]==1 && tile[i+2]<tile[i+1]){    //右向きタイル移動
  343.         movewave();
  344.         tile[i+1]=tile[i+1]-1;
  345.         tile[i+2]=tile[i+2]+1;
  346.         MovePic(tile[i+1]-48,0,0,32,32,basepic,12+35*(placeX+1),12+35*placeY);
  347.         MovePic(tile[i+2]-48,0,0,32,32,basepic,12+35*(placeX+2),12+35*placeY);
  348.         countstep();
  349.         clearcheck(stageno);
  350.         check=1;
  351.     }
  352.     if(dir==2 && tile[i-9]-tile[i]==1 && tile[i-18]<tile[i-9]){    //上向きタイル移動
  353.         movewave();
  354.         tile[i-9]=tile[i-9]-1;
  355.         tile[i-18]=tile[i-18]+1;
  356.         MovePic(tile[i-9]-48,0,0,32,32,basepic,12+35*(placeX),12+35*(placeY-1));
  357.         MovePic(tile[i-18]-48,0,0,32,32,basepic,12+35*(placeX),12+35*(placeY-2));
  358.         countstep();
  359.         clearcheck(stageno);
  360.         check=1;
  361.     }
  362.     if(dir==3 && tile[i-1]-tile[i]==1 && tile[i-2]<tile[i-1]){    //左向きタイル移動
  363.         movewave();
  364.         tile[i-1]=tile[i-1]-1;
  365.         tile[i-2]=tile[i-2]+1;
  366.         MovePic(tile[i-1]-48,0,0,32,32,basepic,12+35*(placeX-1),12+35*placeY);
  367.         MovePic(tile[i-2]-48,0,0,32,32,basepic,12+35*(placeX-2),12+35*placeY);
  368.         countstep();
  369.         clearcheck(stageno);
  370.         check=1;
  371.     }
  372. }
  373.  
  374. ending()
  375. {
  376.  
  377.     mes(TIME){
  378.         step(20){,,,,,
  379.             CapTitle("");
  380.             endingwinno=OpenWin(endingpic,200,150);
  381.  
  382.  
  383.  
  384.             ,,,,,
  385.             CloseWin(endingwinno);
  386.             end_step;
  387.             del_me;
  388.         }
  389.     }
  390.  
  391.  
  392.  
  393.  
  394. }
  395.  
  396. clearcheck(stageno){        //クリアーチェック
  397.     int i,j,n;
  398.     str stagestring;
  399.  
  400.     for(i=0;i<81;i=i+1){
  401.         if(tile[i]>49)    return;
  402.     }
  403.  
  404.     stagestring=StrPrint("stage_%ld",stageno+1);
  405.     n=GetIniInt("report",stagestring,-1,"flattile.ini");
  406.  
  407.     CapTitle("");
  408.     clearwave();
  409.     if(n>count || n==0)    clearwinno=OpenWin(clearpic,200,150);
  410.     else            clearwinno=OpenWin(clearpic,200,150,240,100);
  411.     mes(TIME){
  412.         step(20){,,,
  413.             if(n>count || n==0){
  414.                 WriteIniInt("report",stagestring,count,"flattile.ini");
  415.                 clearbmp();
  416.                 stagewrite();
  417. //                clearwinno=OpenWin(clearpic,200,150);
  418.                 MovePic(reportclspic,0,0,540,335,reportpic,0,0);
  419.                 MovePic(reportclspic,0,0,540,335,sortpic,0,0);
  420.                 MovePic(bottunpic,0,76,59,19,reportpic,450,300);    //成績表OKボタン
  421.                 MovePic(bottunpic,0,76,59,19,sortpic,450,300);    //成績表ソートOKボタン
  422.                 reporttitle();                    //成績表新規作成
  423.                 sorttitle(stepsum,clearsum);                //成績表ソート新規作成
  424.             }
  425. //            else    clearwinno=OpenWin(clearpic,200,150,240,100);
  426.  
  427.             CloseWin(clearwinno);
  428.             for(i=0;i<81;i=i+1){
  429.                 j=i/9;
  430.                 MovePic(yellowpic,0,0,32,32,basepic,12+35*(i-9*j),12+35*j);
  431.             }
  432.         CloseWin(basewinno);
  433.         basewinno=-1;
  434.         openwinno=openwinnosave;
  435.         end_step;
  436.         del_me;
  437.         }
  438.     }
  439.  
  440.     if(stageno==59)
  441.         ending();
  442.  
  443. }
  444.  
  445. stagewrite()
  446. {
  447.     int stageno;
  448.     int i,j;
  449.     str string;
  450.     
  451.     stageno=0;
  452.  
  453.     for(i=0;i<6;i=i+1){
  454.         for(j=0;j<10;j=j+1){
  455.             stageno=stageno+1;
  456.             SetLineSize(2);
  457.             DrawRect(openingpic,60,90,541,291,0,1);
  458.             SetLineSize(1);
  459.             DrawLine(openingpic,60,90+20*j,541,90+20*j);
  460.             DrawLine(openingpic,140+80*i,90,140+80*i,291);
  461.             BackMode(1);
  462.             SetFont(16, "MS ゴシック",128,0,0,0,400);
  463.             TextColor(0,0,0);
  464.             string=StrPrint("%2d",stageno);
  465.             TextWrite("STAGE",openingpic,68+80*i,92+20*j);
  466.             TextWrite(string,openingpic,118+80*i,92+20*j);
  467.         }
  468.     }
  469. }
  470.  
  471. opening(){
  472.     int i,j;
  473.  
  474.     SetLineSize(2);
  475.     DrawRect(openingpic,60,90,541,291,0,1);
  476.     SetLineSize(1);
  477.     SetPaintColor(0x000000);
  478.  
  479.     stagewrite();
  480.  
  481.     SetFont(16, "MS ゴシック",128,0,0,0,800);
  482.     TextColor(0,0,255);
  483.     TextWrite("Filly data by 迎  亮",openingpic,360,330);
  484.     SetFont(44, "MS ゴシック",128,0,0,0,500);
  485.     TextColor(255,0,0);
  486.     TextWrite("ふらっとタイル",openingpic,40,10);
  487.     SetFont(20, "MS ゴシック",128,0,0,0,500);
  488.     TextColor(255,0,255);
  489.     TextWrite("遊びたいステージを選択して下さい",openingpic,140,60);
  490.     SetFont(24, "MS ゴシック",0,0,0,0,600);
  491.     TextColor(255,0,0);
  492.     TextWrite("Ver 4.00+",openingpic,400,25);
  493. }
  494.  
  495. clearbmp()
  496. {
  497.     int i,j,k,size,stageno,stepsum,clearsum;
  498.     str string,nostring,stagestring,stepstring,clearstring;
  499.     j=0;    stageno=0;    stepsum=0;    clearsum=0;
  500.  
  501.     for(j=0;j<6;j=j+1){
  502.         for(i=0;i<10;i=i+1){
  503.             stageno=stageno+1;
  504.             stagestring=StrPrint("stage_%ld",stageno);
  505.             k=GetIniInt("report",stagestring,100,"flattile.ini");
  506.             if(k>0)
  507.             {
  508.                 MovePic(clearokpic,j*80,i*20,80,20,openingpic,60+j*80,90+i*20);
  509.             }
  510.         }
  511.     }
  512. }
  513.  
  514. select(){
  515.     int msgno,stageno;
  516.  
  517.     mes(LBDOWN){
  518.  
  519.         stageno=retgameno(MesP1,MesP2,MesP3);
  520.  
  521.         if((MesP2>230 && MesP3>300 && MesP2<290 && MesP3<320) && MesP1==(openwinno)){
  522.             MovePic(bottunpic,59,190,59,19,openingpic,230,300);
  523.             CapTitle("ふらっとタイル Ver 4.00+ 成績表");
  524.             reportwinno=OpenWin(reportpic,40,40);
  525.             MovePic(bottunpic,0,190,59,19,openingpic,230,300);
  526.             report();
  527.  
  528.         }
  529.         if((MesP2>320 && MesP3>300 && MesP2<380 && MesP3<320) && MesP1==(openwinno)){
  530.             MovePic(bottunpic,59,57,59,19,openingpic,320,300);
  531.             CapTitle("ふらっとタイル Ver 4.00+ 操作方法");
  532.             movewinno=OpenWin(helpmovepic,80,80);
  533.             MovePic(bottunpic,0,57,59,19,openingpic,320,300);
  534.             helpmove();
  535.         }
  536.  
  537.         if((MesP2>410 && MesP3>300 && MesP2<470 && MesP3<320) && MesP1==(openwinno)){
  538.             MovePic(bottunpic,59,95,59,19,openingpic,410,300);
  539.             CapTitle("ふらっとタイル Ver 4.00+ ルール");
  540.             rulewinno=OpenWin(helprulepic,80,80);
  541.             MovePic(bottunpic,0,95,59,19,openingpic,410,300);
  542.             helprule();            
  543.         }
  544.  
  545.  
  546.         if((MesP2>500 && MesP3>300 && MesP2<560 && MesP3<320) && MesP1==(openwinno)){
  547.             openwave();
  548.             MovePic(bottunpic,59,152,59,19,openingpic,500,300);
  549.             msgno=MsgBox("ふらっとタイルを終了してもいいですか?",0x20+1);
  550.             MovePic(bottunpic,0,152,59,19,openingpic,500,300);
  551.             if(msgno==1){
  552.                 CloseWin(openwinno);
  553.                 ExitTitle();
  554.             }
  555.             if(msgno==2)    closewave();
  556.         }
  557.  
  558.         if(stageno!=(-1)){        //選択画面の領域内である
  559.             if(stageno<=MAXGAMENO){
  560.             //登録されているゲームの面数以内である
  561.                 if(stageno<58){
  562.                     game(stageno);
  563.                 }
  564.                 else{
  565.                     if(stageno==58){
  566.                         if(clearsum>=58){
  567.                             game(58);
  568.                         }
  569.                         else{
  570.                             warnwave();
  571.                             MsgBox("ステージ58までを全部クリアしてください",0x30);
  572.                         }
  573.                     }
  574.                     if(stageno==59){
  575.                         if(clearsum>=59){
  576.                             game(59);
  577.                         }
  578.                         else{
  579.                             warnwave();
  580.                             MsgBox("ステージ59をクリアしてください",0x30);
  581.                         }
  582.                     }
  583.                 }
  584.             }
  585.             else{
  586.             //登録されていないゲーム面の場合
  587.                 warnwave();
  588.                 MsgBox("このバージョンでは遊べません m(_ _)m",0x30);
  589.             }
  590.         }
  591.     }
  592. }
  593.  
  594. game(stageno){
  595.     del_all;
  596.     int i,fileno;
  597.     str string;
  598.  
  599.     saveflag=0;            //セーブフラグ初期化
  600.     openwinnosave=openwinno;        //オープニング画面番号待避
  601.     openwinno=-2;
  602.     count=-1;        //カウント数のリセット
  603.     check=0;            //チェックの初期値
  604.     countstep();
  605.  
  606.     SetFont(24, "MS ゴシック",128,0,0,0,600);
  607.     TextColor(255,0,0);
  608.     TextWrite("ふらっとタイル",basepic,350,10);
  609.     string=StrPrint("STAGE %2d",stageno+1);
  610.     MovePic(yellowpic,0,0,50,30,basepic,450,40);
  611.     SetFont(30, "MS ゴシック",128,0,0,0,500);
  612.     TextColor(0,255,0);
  613.     TextWrite(string,basepic,375,40);
  614.  
  615.     fileno=OpenF("question.dat");    
  616.     tiledataread(stageno,fileno);
  617.  
  618.     tiledraw();
  619.     CloseF(fileno);
  620.  
  621.     placeX=1;placeY=1;dir=2;    //スタートのふらっとマンの場所、向き
  622.     MovePic(uppic,0,0,33,33,basepic,46,46,0,color);
  623.  
  624.     CapTitle("ふらっとタイル Ver 4.00+ ゲーム盤");
  625.     basewinno=OpenWin(basepic,40,40);
  626.     startwave();
  627.  
  628.     move(stageno);
  629. }
  630.  
  631.  
  632. countstep(){
  633.     real i;
  634.     str string;
  635.  
  636.     count=count+1;
  637.     string=StrPrint("STEP = %4ld",count);
  638.     MovePic(yellowpic,0,0,50,18,basepic,440,252);
  639.     SetFont(20, "MS ゴシック",0,0,0,0,600);
  640.     TextColor(0,0,255);
  641.     BackMode(1);
  642.     TextWrite(string,basepic,390,252);
  643. }
  644.  
  645.  
  646.  
  647. openmainwindow(){
  648.     openwinno=OpenWin(openingpic,20,20);
  649.     PlayWAVE("opening.wav");
  650. }
  651.  
  652.  
  653.  
  654. inifilecheck(){
  655.     int i;
  656.     str stagestring;
  657.  
  658.     if(GetIniInt("check","flag",0,"flattile.ini")==0){
  659.         WriteIniInt("check","flag",1,"flattile.ini");
  660.         for(i=0;i<60;i=i+1){
  661.             stagestring=StrPrint("stage_%d",i+1);
  662.             WriteIniInt("report",stagestring,0,"flattile.ini");
  663.         }
  664.     }
  665. }
  666.  
  667. main(){
  668.  
  669.     inifilecheck();
  670.  
  671.     CapTitle("ふらっとタイル Ver 4.00+");
  672.     loadpicture();            //画像の読み込み
  673.     color=GetColor(yellowpic,1,1);
  674.  
  675.     clearbmp();
  676.  
  677.     drawpic();            //画像の描き込み
  678.     opening();            //オープニング関係の描き込み
  679.  
  680.     openmainwindow();
  681.     select();
  682.  
  683. }
  684.  
  685.  
  686.