目前分類:程式設計 (5)

瀏覽方式: 標題列表 簡短摘要
這幾天不慎感冒了 ~ 咳咳咳 ...
腦袋漲得又痛又暈 (腦壓升高吧 ?)
還好,在寫完 這篇 (如何安裝 Android Apps 開發工具) 之後,感冒的威力才發作

由於這邊的格友們屬性大部份屬 "木"
而電腦這方面的呢 ~ 應該是屬 "金" 吧 ! XD
金-木-水-火-土  你是哪一型 ? XD
我也不清楚要不要在 Yahoo 這邊做連結
充充文章數也好 ! 或是腦袋不清也罷 XD
除非  你對寫手機程式有興趣,否則  不建議你們刻意去看那篇文章

達仔 發表在 痞客邦 留言(2) 人氣()

以前有個夢想
想從事遊戲軟體設計

原因很單純
喜歡玩

學校沒教的
自己想辦法學

了解越多
才發現

想要完成的夢想遠超過自己所想像
企劃、美術、程式設計、音樂 ...
不是一個人就能完成的事

現實與夢想的差距
因人而異

至少
我碰觸到了夢想的邊緣
......

該不該繼續 ?
想的總是比說的容易
說的卻又比做的簡單

現實絆住前進的步伐
成了懶人的藉口



這是以前自我挑戰的作品  俄羅斯方塊
如果當時有更好的創意   可能就會寫出不一樣的東西
這款只能算是 "剽竊" 他人的創意而已
(DOS 作業系統   使用 Turbo C 撰寫)




一個小遊戲還是需要衍生出一些檔案來做其他工作
例如 : 儲存紀錄  存放圖型 ....




使用 Visual C++ 來觀看程式原始碼
架構看起來還算 OK    但寫法卻不怎麼漂亮

獨自寫點小規模的 GAME 就蠻吃力的了
絞盡腦汁   十分傷神   更費時

達仔 發表在 痞客邦 留言(2) 人氣()

#include <stdio.h>
#include<stdlib.h>

int main()
{
     int x , y , i ;

    for(x=1 ; x<=7 ; x++)
   {

       if (x % 2 !=0)                               //當 x 無法被 2 整除時往下執行 , 即 x = 1,3,5,7
      {
           for(i=0 ; i<(7-x)/2 ; i++)    //計算前方有多少個空白
                printf(" ");
           for(y=1 ; y<=x ; y++)         // y 值代表該行應印出多少 * 號的數量
                printf("*");
      }
      else
           printf("\n");
   }
   printf("\n");
   system("pause");
}


執行結果 :



這是你要的 ~ 不知是否符合你的需求 ! 希望你加油  多用心學喔 ! 學程式設計不要怕花時間去思考 ~




下面是我自行修改的   加強版

可以輸入要顯示幾列 (以 1024 X 768 解析度  最大可顯示 40 列)

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int x , y , i , n;

    printf("請輸入欲顯示幾列 ");
    scanf("%d",&n);

    for(x=1 ; x<=n*2-1 ; x++)
    {
       if (x % 2 !=0)                                         //當 x 無法被 2 整除時往下執行 , 即 x = 1,3,5,7
       {
          for(i=0 ; i<((n*2-1)-x)/2 ; i++)   //計算前方有多少個空白
             printf(" ");
          for(y=1 ; y<=x ; y++)                   // y 值代表該行應印出多少 * 號的數量
             printf("*");
       }
       else
          printf("\n");
    }
    printf("\n");
system("pause");
}


加強版的執行結果 :



以上程式使用 Dev - C++  編寫    執行

達仔 發表在 痞客邦 留言(4) 人氣()

充其量這只是個 [自動瀏覽網頁] 的小程式 , 只對一些簡單的計數器有作用而已 !
想用來灌 Blog 的人數 ?ㄎㄎㄎ 起不了任何作用的啦 !
之前奇摩Blog的人次計數方式還沒改變時 .... 可能有用 ! 現在就不行囉 ~

讓我想不通的是 ~ 為何會有一堆人那麼在意Blog的累計人數啊 ?
啥米 ? 你問我在不在意 ? (這問題有點 ... 小白 )
我如果真想 [自肥] .... 老早就用程式猛灌了 ! 還需要等到現在嗎 ?

呵呵 ~ 如果你們的計數器曾遭受過我無聊的攻擊
請你們一定要原諒我啊 ! (反正又沒有任何證據)

如何使用這個程式呢 ?

1 . 請複製 分隔線(分隔線那行不要複製) 以下的程式碼 (由 <HTML> 此行開始)

2 . 打開 WordPad , 貼上

3 . 儲存檔案 --> 檔名請自行設定 , 注意 ! 副檔名需為 .html 例如 (ex) : auto.html

4 . 存檔類型 : 請以 [Unicode文字文件] 存檔

5 . 連上線 , 開啟瀏覽器 , 左上方 [檔案] - [開啟檔案] , 選擇剛才存好的那個檔名

6 . 成功後可以見到如下畫面 ↓

7 . 每 3 秒會反覆在網址一與網址二自動切換瀏覽 , 所以可能在該網頁還未完全開啟時就又切換了

8 . 無毒 ! 請安心服用 ~ 操作方式就不介紹囉 !

◎若想更改切換網頁秒數 , 請改這行 (由 <HTML> 往下數第 30 行) : 
tID = setTimeout("counter()",3000);
可更改 3000 這個數字 (以千分之一秒為單位 , 3000 即為 3 秒)
調太快計數器可能會來不及運作 ! 更改後記得需重新存檔 (重覆步驟 3 ~ 6)
此程式的設定是灌滿 20000 次會自動停止 ! 看這行 --> var tot2 = 20000; 也可自行修改 !

該程式並未做太多的輸入錯誤條件判斷 , 不是非常完整 !
粗製濫造 ~ 見笑了 !

◎因使用該程式 ,而導致硬體或系統軟體發生問題及其他損壞皆與本人無關 !

======= (分隔線) =======

<HTML>
<HEAD>
<TITLE>灌水小程式</TITLE>
<SCRIPT LANGUAGE="JavaScript">
var ct = 0;
var tot = 0;
var tot2 = 20000;
var wID = null;
var strurl1 = "";
var strurl2 = "";

   function openwindow()
  {
         wID = window.open("http://tw.yahoo.com/");
  }

  function counter()
  {
        if (ct == 0)
                   wID.location.href = strurl1;
          
       if (ct == 1)
                  wID.location.href = strurl2;
        
       ct++;
       tot++;
       F1.T3.value = tot;
       if (ct > 1) ct=0;
       if (tot == tot2) clearTimeout(tID);
       tID = setTimeout("counter()",3000);
  }

  function take()
  {
      strurl1 = F1.T1.value;
      strurl2 = F1.T2.value;
  }
 
  function check()
  {
      if (F1.T1.value =="" || F1.T2.value =="")
      {
          if (F1.T1.value == "")   F1.T1.value = "請輸入網址";
          if (F1.T2.value == "")   F1.T2.value = "請輸入網址";
      }
      else
      { take(); openwindow();   counter(); }
  }
</SCRIPT>
</HEAD>

<BODY>
<font size=6 color=red><strong>灌水小程式</strong></font>
<hr size=3 color=green><br>
<form name="F1">
網址一 : <br>
<input type="text" name="T1" value=""> <input type="button" value="清除網址" onclick="F1.T1.value='';"> <br>
網址二 : <br>
<input type="text" name="T2" value=""> <input type="button" value="清除網址" onclick="F1.T2.value='';"> <br>
已灌水次數 :
<input type="text" name="T3" value=""> <br>
<input type="button" value="開始灌水" onclick="check()">
<input type="button" value="停止" onclick="clearTimeout(tID);">
</form>
</BODY>
</HTML>

達仔 發表在 痞客邦 留言(1) 人氣()

       

//猜數字遊戲 ? A ? B
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#define MAX 4

int main()
{
     char gn[MAX],rn[MAX];
     int i,j,chk,temp,a,b,t=0,g=0;
     int score=0;
    
     do
     {  
         system("cls");
         t++;  //計算局數
         g=0;  //g 為計算猜了幾次,在此歸零 
         printf("猜數字遊戲 (按Esc鍵放棄該局)   第 %d 局   總積分: %d\n",t,score);
         srand((unsigned)time(NULL));
         for(i=0;i<MAX;i++)
         {
              do
              {
                   chk=0;       
                   //temp 以亂數方式產生 ASCII 碼(1~9)的對應數值
                   temp=rand()%9+49;     
                   //檢查亂數產生的字元是否重複
                   for(j=0;j<i;j++)
                       if(rn[j]==temp) chk=1;         
              } while(chk==1);
              rn[i]=temp;
         }
        
         /* printf("答案 : "); // 答案顯示
         for(i=0;i<MAX;i++) printf("%c",rn[i]);
         printf("\n");  */
        
         //輸入及判斷資料區塊    
         do
         {
              a=0;b=0; 
              g++;  //變數 g 為累計此局共猜了幾次             
              for(i=0;i<MAX;i++)
              {
                   do
                   {
                        chk=0;
                        temp=getch();
                        //按 Esc 放棄猜,顯示答案
                        if(temp==27) { chk=2; break; }
                        //檢查輸入的字元是否介於 1~9 
                        if(temp<49 || temp>57) chk=1; 
                        //檢查輸入的字元是否重複
                        for(j=0;j<i;j++)
                            if(temp==gn[j]) chk=1;           
                   } while(chk==1);
                   if(chk==2) break;
                   gn[i]=temp;
                   printf("%c",gn[i]);
              }   
              if(chk==2) break;
              //比對並計算 ?A?B
              for(i=0;i<MAX;i++)
                  for(j=0;j<MAX;j++)
                  {
                       if(i==j && gn[i]==rn[j])
                           a++;                 
                       else
                           if(gn[i]==rn[j])   
                               b++;
                  }
              //下面的程式片段會以各別分離的方式來顯示 ?A?B   
              if(a==MAX)
              {
                   printf("  猜對了! 共猜了 %d 次\n",g);
                   break;
              }        
              if(a==0 && b==0)
                  printf("  沒猜中半個數字!\n");
              else       
              {
                  if(a==0 || b==0)
                  {
                      if(a==0)  printf("    %dB\n",b);
                      if(b==0)  printf("  %dA\n",a);
                  }  
                  else
                      printf("  %dA%dB\n",a,b);
              }     
         } while(a!=MAX);
         //顯示答案 (chk 為 2 則表示按了 Esc 鍵)
         if(chk==2)
         {
              score=score-50;  //放棄則倒扣 50 分    
              printf("\n");    
              printf("答案 : ");
              for(i=0;i<MAX;i++) printf("%c",rn[i]); 
              printf("\n");
              printf("此局放棄 : %d\n",-50);
         }    
         else  //計算得分
         {
              score=score+(120-g*5);
              printf("此局得分 : %d\n",120-g*5);
         }
         printf("繼續玩(y / n) ?");
         temp=getche();
     } while(temp=='y' || temp=='Y');
     printf("\n");
     system("pause");
     return 0;        
}

花了幾個小時把這個猜數字的小遊戲寫了出來 ~ 在此與大家分享一下 !
在知識 + 的程式設計 C/C++ 分類中 , 會問這一題的人為數不少 , 於此程式中 , 我強化了一些輸入資料時的判斷能力 (無法輸入重複的數字 例如: 2566 或 8888 , 以免玩家刻意以相同數字來判斷答案中的數字之有無 , 輸入非數字資料時也不會發生錯誤 , 會予以排除) , 並加入計分功能 , 而顯示幾A幾B的方式也稍作改變 (玩者能一目了然 , 方便判斷思考) ,  如果心血來潮會繼續增加存檔功能 (儲存得分紀錄) , 甚至讓電腦與玩家互猜 !

想直接 COPY 拿去交作業的同學們 ~ 達仔並不反對 , 但希望您們在參考之餘能從中理解並增進設計功力 , 才是達仔所樂見的 , 也非常歡迎各位行家的指教喔 ~

不懂程式設計的人也可以玩玩看 !
沒有編譯器 (用來將程式原始碼轉成可執行檔) 而有興趣想玩看看的人 , 請傳您們的 E-mail 給達仔 , 以便將可執行檔寄給您們 !


達仔 發表在 痞客邦 留言(3) 人氣()