請選擇 進入手機版 | 繼續訪問電腦版

施勢帆老師的教學網站

 找回密碼
 註冊
搜索
熱搜: 活动 交友 discuz
查看: 2906|回復: 41

期中程式報告

[複製鏈接]
shie 發表於 2014-12-8 17:12:23 | 顯示全部樓層 |閱讀模式
1. C/C++ 工具與遊戲類程式

2. 需有原始程式碼, 並可在Dev-C++中執行

3. 投影片十張, 說明該程式之邏輯和重點部分

4. Youtube 影片報告時間約6分鐘
example : https://www.youtube.com/watch?v=S86AYOyj0Lg
                https://www.youtube.com/watch?v=LC-QVQ-cy8E
1059C103103332 發表於 2014-12-14 14:34:42 | 顯示全部樓層
本帖最後由 1059C103103332 於 2015-1-6 01:10 編輯

#include<stdio.h>
#include<stdlib.h>
#include <math.h>
int main()

{
float a,b,c;   //設a被加數 b加數 c答案
char d;       //設+-*/的符號
printf("簡易計算機\n");
scanf("%g%c%g",&a,&d,&b); //輸入兩個數和運算符號   %g為小數%c為字元
if(d=='+')
  {
          c=a+b ;
          printf("答案為=%g\n",c);
  }        
else if(d=='-')
  {
          c=a-b ;
          printf("答案為=%g\n",c);
  }
else if(d=='*')
  {
          c=a*b ;
          printf("答案為=%g\n",c);
  }
else if(d== '/')
  {
          c=a/b ;
          printf("答案為=%g\n",c);
  }
else if(d=='^')   
  {
  c=pow(a,b);  //倍數
  printf("答案為=%g\n",c);     
  }
  system("pause");
}

http://youtu.be/lZeNXX0e0GQ
[url=http://youtu.be/lZeNXX0e0GQ][/url]

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1059C103103306 發表於 2014-12-14 18:52:29 | 顯示全部樓層
本帖最後由 1059C103103306 於 2015-1-13 00:42 編輯


1. 本作業為如何製作簡單的月曆以及年歷。
2. 投影片中有C++的程式碼,並且可以執行。
3. 投影片內容總共17張,扣除完整的程式碼,還有15張。
4. 報告時間約3~5分鐘
5.youtube: http://youtu.be/5C4_kbCf808

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1059C103103321 發表於 2014-12-14 20:22:47 | 顯示全部樓層
本帖最後由 1059C103103321 於 2014-12-28 14:15 編輯

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int x=5678;     //被猜的數字
    int a=0,b=0;        //用來統計A、B數量
    int y;      //儲存使用者輸入的值
    while(x!=y)
{
        a=0;b=0;
        cout<<"請輸入你要猜的數字:";
        cin>>y;
        cout<<endl;

        //計算A
        for(int i=1;i<=1000;i*=10)     
{      
            if((x/i%10)==(y/i%10))   //如果x與y兩變數,在相同位置上有相同的數字,則a+1
{      
                    a+=1;
}
}

        //計算B
        for(int ii=1;ii<=1000;ii*=10)
{
            for(int i=1;i<=1000;i*=10)
{
                if(i==ii){i*=10;}
                    if((x/i%10)==(y/ii%10))
{
                        b+=1;
                        break;            
}
}
}

        cout<<"Result:"<<a<<"A"<<b<<"B"<<endl;
}

    cout<<"恭喜您答對了"<<endl;
    system("pause");
    return EXIT_SUCCESS;
}

https://www.youtube.com/watch?v=iyG1id7EARU&feature=youtu.be



本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1059C103103346 發表於 2014-12-15 18:26:12 | 顯示全部樓層
本帖最後由 1059C103103346 於 2015-1-11 14:17 編輯

#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;


int game1(void)
{
  int ans;
  srand(time(NULL));
  ans=rand()%3+1;

  return ans ;
}

int main(void)
{
        int c ;
        cout << "選擇模式:\n1單人\n2雙人" << endl ;
        cin >> c;

        if(c==2)
            
                {                        
                        int a,b;
               
               
                        cout <<"\n1p\n請選擇:\n1.剪刀\n2.石頭\n3.布\n"<< endl;
                        cin >> a ;
                        
            if(a ==1) cout << "1p出剪刀 " << endl;
                          if(a ==2) cout << "1p出石頭 " << endl;
                          if(a ==3) cout << "1p出布 " << endl;
                                                                              
                        cout <<"\n2p\n請選擇:\n1.剪刀\n2.石頭\n3.布\n"<< endl;
                        cin >> b ;

                          
                          if(b ==1) cout << "2p出剪刀 " << endl;
                          if(b ==2) cout << "2p出石頭 " << endl;
                          if(b ==3) cout << "2p出布 " << endl;
                           
                        
                                
                          if(a== 1 && b ==1) cout << "平手" << endl;
                          if(a== 1 && b ==2) cout << "2p贏" << endl;
                          if(a== 1 && b ==3) cout << "1p贏" << endl;
                          if(a== 2 && b ==1) cout << "1p贏" << endl;
                          if(a== 2 && b ==2) cout << "平手" << endl;
                          if(a== 2 && b ==3) cout << "2p贏" << endl;
                          if(a== 3 && b ==1) cout << "2p贏" << endl;
                         if(a== 3 && b ==2) cout << "1p贏" << endl;
                          if(a== 3 && b ==3) cout << "平手" << endl;
                           
                           
                           

                }
                else if(c==1)
                        {

                                int you,computer;
                                cout <<"請選擇:\n1.剪刀\n2.石頭\n3.布\n"<< endl;
                                cin >> you ;

                                  if(you ==1) cout << "玩家出剪刀 " << endl;
                                  if(you ==2) cout << "玩家出石頭 " << endl;
                                  if(you ==3) cout << "玩家出布 " << endl;


                                  computer=game1();   
                                  cout<< "換電腦 " << endl;

                                  if(computer ==1) cout << "電腦出 1=剪刀 " << endl;
                                  if(computer ==2) cout << "電腦出 2=石頭 " << endl;
                                  if(computer ==3) cout << "電腦出 3=布 " << endl;


                                  if(you== 1 && computer ==1) cout << "平手" << endl;
                                  if(you== 1 && computer ==2) cout << "電腦贏" << endl;
                                  if(you== 1 && computer ==3) cout << "玩家贏" << endl;
                                  if(you== 2 && computer ==1) cout << "玩家贏" << endl;
                                  if(you== 2 && computer ==2) cout << "平手" << endl;
                                  if(you== 2 && computer ==3) cout << "電腦贏" << endl;
                                  if(you== 3 && computer ==1) cout << "電腦贏" << endl;
                                  if(you== 3 && computer ==2) cout << "玩家贏" << endl;
                                  if(you== 3 && computer ==3) cout << "平手" << endl;

                        }
                else if(c!=1,2)
                        {
                                cout << "錯誤" << endl ;
                        }
        

  return 0 ;

}


講解投影片

講解影片https://www.youtube.com/watch?v=g799GL0fr7k


猜拳遊戲

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1059C103103309 發表於 2014-12-15 20:24:31 | 顯示全部樓層
本帖最後由 1059C103103309 於 2015-1-10 12:02 編輯

// 程式名稱:GuessNum.cpp
// 程式功能:猜數字遊戲

#include <iostream>
#include <ctime>
using namespace std;

class Gnum
{
       int ans[4];
public:
       Gnum();
       int Gnum_ans(int,int,int,int);
};

int main()
{
       Gnum a1;
    int num[4];

       cout<<"====現在是猜數字時間===="<<endl;
       cout<<"請輸入四個數字...(0~9)"<<endl;
       for(int c=1;;c++)
       {
              for(int i=0;i<=3;i++)
              {
                     cout<<"第"<<i+1<<"個數字 :"; cin>>num;
                     if(num>9 || num<0)
                     {
                            cout<<"\n請重新輸入!!\n\n"; i--;
                     }
              }
              cout<<"\n您輸入的數字是 :"<<num[0]<<num[1]<<num[2]<<num[3]<<endl;

              if(a1.Gnum_ans(num[0],num[1],num[2],num[3]) == 0)
              {
                     cout<<"總次數 :"<<c<<endl;
                     system("pause");
                     return 0;
              }
       }
}
int Gnum::Gnum_ans(int n1,int n2,int n3,int n4)
       {
              int r=0,f=0;
              if(ans[0] == n1 && ans[1] == n2 && ans[2] == n3 && ans[3] == n4)
              {
                     cout<<"\n賓果!! 正確答案"<<endl;
                     return 0;
              }
              else
              {
                     if(ans[0] == n1)       r++;
                     else if (ans[0] == n2 || ans[0] == n3 || ans[0] == n4)       f++;
                     if(ans[1] == n2)       r++;
                     else if (ans[1] == n1 || ans[1] == n3 || ans[1] == n4)       f++;
                     if(ans[2] == n3)       r++;
                     else if (ans[2] == n2 || ans[2] == n1 || ans[2] == n4)       f++;
                     if(ans[3] == n4)       r++;
                     else if (ans[3] == n2 || ans[3] == n3 || ans[3] == n1)       f++;

                     cout<<"結果 :"<<r<<'A'<<f<<'B'<<endl;
                     return 1;
              }
       }
Gnum::Gnum()
       {
              srand( (unsigned)time( NULL ) );
              for(int n=0;n<=3;n++)
              {
                     int j=1;
                     do
                     {
                            j=0;
                            ans[n]=rand()%10;
                            for(int m=0;m<n;m++)
                                   if(ans[n] == ans[m])
                                          j=1;
                     }while(j);
              }
       }

https://www.youtube.com/watch?v=AMlPqX1pOrw

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1059C103103310 發表於 2014-12-15 22:50:53 | 顯示全部樓層
本帖最後由 1059C103103310 於 2015-1-12 22:40 編輯

/*************************************************************
* 文 件 名:103103310 溫度換算器.cpp
* 功    能: 輸入一個數字,可以換算成攝氏和華氏。
*
* 注    意:
*
* 版    本:V1.0
* 作    者:
* 日    期:2014年12月15號
* 我的主頁:
* 聯絡我:
****************************************************************/
#include <iostream>
#include <cstdlib>
using namespace std;
float oc(float i)   
{
    i = i * 9 / 5 + 32;
    return i;
}
float fc(float i)   
{
    i = (i - 32) * 5 / 9;
    return i;
}
int main()
{
    float fltInput,fltOutput;
    cout<<"輸入轉換數字"<<"\t";
    cin>>fltInput;
    fltOutput=oc(fltInput);
    cout<<"攝氏轉華氏 "<<fltOutput<<"\n";
    fltOutput=fc(fltInput);
    cout<<"華氏轉攝氏 "<<fltOutput<<"\n";

    system("pause");
    return 0;
}

[url=]計算機.rar[/url]
http://youtu.be/NMAGderNsDM

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1059C103103304 發表於 2014-12-15 23:21:25 | 顯示全部樓層
投影片檔與原始碼皆存放於壓縮檔內。
(為了尊重作者,因此指令碼部分有留下他的大名。)

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1059C103103347 發表於 2014-12-15 23:55:16 | 顯示全部樓層
#include <iostream>
using namespace std;

int main()
{
        double kilogram, pound, ounce;  //公斤、磅、盎司
        cout<<"輸入入重量(公斤):";
        cin >> kilogram;
        pound=kilogram/0.4536;
        ounce=pound*16;
        cout<<"轉換為用磅表示的重量(磅):"<<pound<<endl;
        cout<<"轉換為用盎司表示的重量(盎司):"<<ounce<<endl;
       
        system("pause");
        return 0;
}


本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1059C103103320 發表於 2014-12-16 10:56:10 | 顯示全部樓層
本帖最後由 1059C103103320 於 2015-1-12 18:51 編輯

台幣與美金匯率轉換
#include <stdio.h>
#include <stdlib.h>
double rateExchange(double tai)
{
   return tai*0.034554;
}
int main()
{ double taiwan;

  printf("假設 1 美元 = 28.9402095 台幣");
  printf("\n輸入台幣:");
  scanf("%lf",&taiwan);
  printf("%.2f台幣=%.2f美元\m",taiwan,rateExchange(taiwan));

  system("PAUSE");        
  return 0;
}

https://www.youtube.com/watch?v=lPFOP2TRObA

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1059C103103329 發表於 2014-12-29 20:01:14 | 顯示全部樓層
本帖最後由 1059C103103329 於 2015-1-6 17:57 編輯

#include<iostream>
#include<cstdlib>
#include<fstream>
using namespace std;
main()
{
        char k;//記錄輸入的英文字母
        int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0;//紀錄位置a~i的值
        int j=0;//儲存玩的次數
        cout<<"開關燈遊戲"<<endl;
        cout<<"玩法:"<<endl;
        cout<<"1.輸入相對應的鍵,周圍的燈都會改變"<<endl;
        cout<<"2.把所有的燈打開您就贏了!"<<endl;
        cout<<"位置: "<<endl;
        cout<<"a"<<"\t"<<"b"<<"\t"<<"c"<<endl;//告訴玩家相對應的位置
        cout<<"d"<<"\t"<<"e"<<"\t"<<"f"<<endl;
        cout<<"g"<<"\t"<<"h"<<"\t"<<"i"<<endl;
        system("pause");
        cout<<"遊戲開始"<<endl;
        gotoline:
        cout<<a%2<<"\t"<<b%2<<"\t"<<c%2<<endl;//顯示初始值
        cout<<d%2<<"\t"<<e%2<<"\t"<<f%2<<endl;
        cout<<g%2<<"\t"<<h%2<<"\t"<<i%2<<endl;
        cout<<"請輸入a~i中的任意英文字母: ";
        cin>>k;
        switch(k)//打開(或關掉)本身和附近的燈泡
        {
                case 'a':
                        a++;
                        b++;
                        d++;
                        break;
                case 'b':
                        a++;
                        b++;
                        c++;
                        e++;
                        break;
                case 'c':
                        c++;
                        b++;
                        f++;
                        break;
                case 'd':
                        a++;
                        d++;
                        e++;
                        g++;
                        break;
                case 'e':
                        b++;
                        d++;
                        e++;
                        f++;
                        h++;
                        break;
                case 'f':
                        c++;
                        e++;
                        f++;
                        i++;
                        break;
                case 'g':
                        d++;
                        g++;
                        h++;
                        break;
                case 'h':
                        e++;
                        g++;
                        h++;
                        i++;
                        break;
                case 'i':
                        f++;
                        h++;
                        i++;
                        break;
                default:
                        goto endline;
        }
        j++;//猜的次數加1
        cout<<endl;
        if(a%2==1&&b%2==1&&c%2==1&&d%2==1&&e%2==1&&f%2==1&&g%2==1&&h%2==1&&i%2==1)//判斷有沒有贏
        {
                cout<<a%2<<"\t"<<b%2<<"\t"<<c%2<<endl;
                cout<<d%2<<"\t"<<e%2<<"\t"<<f%2<<endl;
                cout<<g%2<<"\t"<<h%2<<"\t"<<i%2<<endl;
                cout<<"恭喜您贏了!您總共走了"<<j<<"步"<<endl;
                system("pause");
                endline:
                return 0;
        }
                else
                {
                goto gotoline;
                }
}


本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1059C103103325 發表於 2015-1-4 15:06:21 | 顯示全部樓層
本帖最後由 1059C103103325 於 2015-1-4 15:42 編輯

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

int main(void)
{
    char cn[5]="",un[5]=""; //cn:電腦數字, un:玩家猜的數字
    int i,j,na,nb,times=10;
    srand(time(NULL));

    puts("===猜數字遊戲===\n程式作者:黎軒佑 \n\n請輸入四位數字例如2178)");
    for(i=0;i<4&&(cn=rand()%10+48);i++) //產生電腦數字
        for(j=0;j<i;j++) cn[j]==cn&&i--; //檢查重複
    do{
        na=nb=i=scanf("%4s",un)&0; fflush(stdin);
        for(;i<4;i++) for(j=0;j<4;j++) un==cn[j]&&(i==j?na++:nb++); //計算幾A幾B
        na-4&&--times&&printf("結果:%dA%dB,還有%d次機會...\n", na,nb,times);
    }while(na-4&×); //迴圈猜times次
    na==4?puts("您猜對了!"):printf("失敗,猜超過10次,答案是%s\n",cn);
    return system("pause");
}

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1059C103103323 發表於 2015-1-5 19:55:53 | 顯示全部樓層
本帖最後由 1059C103103323 於 2015-1-11 17:02 編輯

/*************************************************************
* 文 件 名:103103323.cpp
* 功    能: 猜四位數的遊戲
*
* 注    意:
*
* 版    本:Dev-Cpp_Portable_5.8.3
* 作    者:
* 日    期:2015年1月5號
* 我的主頁:
* 聯絡我:
****************************************************************/
#include <stdio.h>  
#include <stdlib.h>
#include <time.h>   

int main()  
{
  int i,n;  
  int ans,iFlag=0;

  /*產生一個1000到9999之整數謎底*/
  srand( time(NULL) );      
  ans = 1000 + rand()%9000;

  /*猜謎*/
  printf("請猜一個1000到9999的數字...\n");
  while( iFlag == 0 )
  {
     scanf("%d",&n);  
     if( n == ans )   
     {
        printf("恭喜,猜對了...\n");
        iFlag = 1;                    
     }
     else if( n > ans )  
        printf("太大,請繼續...\n");  
     else               
        printf("太小,請繼續...\n");  
  }

  system("PAUSE");   
  return 0;         
}


影片網址:https://www.youtube.com/watch?v=VhsSmXwIOzo&feature=youtu.be

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1059C103103349 發表於 2015-1-5 23:48:52 | 顯示全部樓層
/*************************************************************
* 文 件 名:103103349.cpp
* 功    能:剪刀石頭布的遊戲
*
* 注    意:
*
* 版    本:
* 作    者:楊家竣
* 日    期:2015年1月5號
* 我的主頁:
* 聯絡我:
****************************************************************/
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
    re:
    int player,computer,again;
    string name[]={"剪刀","石頭","布"};
        cout<<"請出拳! (1)剪刀(2)石頭(3)布 ";
            cin>>player;
    srand(time(NULL));
    computer=rand()%3+1;
        cout<<"玩家出: "<<name[player-1]<<endl;
            cout<<"電腦出: "<<name[computer-1]<<endl;
    if(player==computer)
    {
        cout<<"平手!"<<endl;
    }else if((player==1 && computer==3)||(player==2 && computer==1)||(player==3 && computer==2))
        {
            cout<<"玩家贏了!"<<endl;  
    }else
            {
                cout<<"電腦贏了!"<<endl;
    }
    cout<<"在玩一次? (1)是 (2)否 ";
    cin>>again;
    if(again==1)
        goto re;
    system("pause");   
    return 0;   
}


影片網址:https://www.youtube.com/watch?v=I84jL2lggiU&feature=youtu.be

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1059C103103336 發表於 2015-1-10 14:29:43 | 顯示全部樓層
本帖最後由 1059C103103336 於 2015-1-10 14:31 編輯

/*************************************************************
* 文 件 名:103103336.cpp
* 功    能:3顆骰子骰500次的測試
*
* 注    意:
*
* 版    本:
* 作    者:蔡明宏
* 日    期:2015年1月10號
* 我的主頁:
* 聯絡我:
****************************************************************/
#include <stdio.h>
#include <time.h>
#include <stdlib.h> // RAND_MAX
int main()
{
    int RunTimes = 500  ; // 測試次數
    int SumTimes[20]={0}; // 紀錄點數出現的次數, 全歸零
    int i, sum, rnd;

    // 進行測試
    for(i=0; i<RunTimes; ++i) {// 測試 RunTimes 次
        rnd = rand() % 6 + 1 ; // 第一顆骰子出現點數
        sum = rnd;             // 紀錄總合
        rnd = rand() % 6 + 1 ; // 第二顆骰子出現點數
        sum = sum + rnd;       // 紀錄總合
        rnd = rand() % 6 + 1 ; // 第三顆骰子出現點數
        sum = sum + rnd;       // 紀錄總合

        // 將出現 sum 點數之次數加1
        SumTimes[sum] = SumTimes[sum]+1;
    }

    // 輸出結果
    sum = 0;
    for(i=3; i<=18; ++i) {
        printf(" %2d 點出現了 %3d 次\n", i, SumTimes);
        sum = sum + SumTimes; // 再驗證總合是不是500次
    }
    printf("共  %3d 次 \n", sum);
    getchar();
    return 0;
}

http://youtu.be/JpdxrqfrMvg

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1059C103103322 發表於 2015-1-10 15:03:54 | 顯示全部樓層
本帖最後由 1059C103103322 於 2015-1-13 08:18 編輯

#include <windows.h>
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <time.h>
using namespace std ;
const int N = 23;
struct Point {
    int x,y;
    void set(int X, int Y) {x=X; y=Y;}
};
HANDLE hIn, hOut;                           //I/O 控制器
Point  body[32], cookie, v = {-2,0};        //體塊, 食物, 移動向量,
char   room[N][N*2+4];                      //房間
int    delay_time = 100;                    //延遲時間
int    x1=2,y1=1,x2=(N-1)*2,y2=N-1, len=2;  //房間邊界, 身長
bool   bExit = false;                       //是否持續遊戲
void gotoxy (int x, int y)
{
    static COORD c;  
    c.X = x; c.Y = y;
    SetConsoleCursorPosition (hOut, c);
}
void draw (int x, int y, char* s)
{
    gotoxy (x,y);
    cout << s;
}
void drawList (char* a, char* b, char* c, int w, int h=1)
{
    static char* p = room[0];
    for (int i; h--; *p++=*c, *p++=c[1], *p++=0, p++)
        for (*p++='\n', *p++=*a, *p++=a[1], *p++=a[2],
            i=w-2; i--;) *p++=*b, *p++=b[1];  
}
void put_cookie ()
{
    cookie.x = 3 + rand()%(N-2) * 2;
    cookie.y = 2 + rand()%(N-3);
   
}
void init()
{
    srand (time(0));
    hOut = GetStdHandle (STD_OUTPUT_HANDLE);
    hIn  = GetStdHandle (STD_INPUT_HANDLE);
    HANDLE err = INVALID_HANDLE_VALUE;
    if (hIn == err || hOut == err) {
        puts ("handle failed");
        getch ();
        exit (1);
    }
    drawList (" ┌","─","┐", N);   
    drawList (" │","  ","│", N, N-2);
    drawList (" └","─","┘", N);
    gotoxy (0,0);
    for (int i=0; i<N; i++) cout << room;
    put_cookie ();
   
    body[0].set ((x2-x1)/2, (y2-y1)/2);
    body[1].set (body[0].x+1, body[0].y);
}
void key_control()
{
    static DWORD count;
    static INPUT_RECORD ir;
        
    ReadConsoleInput (hIn, &ir, 1, &count);
    if (!ir.Event.KeyEvent.bKeyDown) return;                       
    switch (ir.Event.KeyEvent.wVirtualKeyCode) {                    
        case VK_UP   : if (v.y !=  1) v.set(0,-1); break;
        case VK_DOWN : if (v.y != -1) v.set(0, 1); break;
        case VK_LEFT : if (v.x !=  2) v.set(-2,0); break;                        
        case VK_RIGHT: if (v.x != -2) v.set( 2,0); break;
        case VK_ESCAPE: bExit = true;
    }        
}
void move_snack()
{   
    int i;
    int& x = body[0].x;
    int& y = body[0].y;
    for (i=1; i<len; i++)                   //檢查自身碰撞
        if (body[0].x == body.x &&
            body[0].y == body.y ) break;
    if (i!=len || x<=x1 || x>x2 || y<=y1 || y>y2) {
        draw (14,10,"G a m e    O v e r");
        getch(); bExit = true;
        return;
    }
    if (x == cookie.x && y == cookie.y) {   //吃到食物
        delay_time -= 2;
        if (++len > 30) {
            draw (16,10, "Y o u    W i n");
            getch(); bExit = true;
            return;
        }put_cookie();
    }
    else draw (body[len-1].x, body[len-1].y, "  ");
    for (i=len-1; i>0; --i)
        body = body[i-1];
    x += v.x;
    y += v.y;
    for (i=0; i<len; ++i)
        draw (body.x, body.y, "█");
}

int main ()
{
    init();
    while (!bExit)
    {        
        Sleep (delay_time); if (kbhit()) key_control();
        draw (cookie.x, cookie.y, "◎");
        move_snack();
        Sleep (delay_time); if (kbhit()) key_control();            
        gotoxy (10,24);
        printf ("cookie: (%2d,%2d)  head: (%2d,%2d)",
            cookie.x, cookie.y, body[0].x, body[0].y);
    }
}

http://youtu.be/yQYQRT-OaiM


本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1059C103103316 發表於 2015-1-10 15:22:04 | 顯示全部樓層
/*************************************************************
* 文 件 名:103103316.cpp
* 功    能: 猜拳遊戲
*
* 注    意:
*
* 版    本:V1.0
* 作    者:
* 日    期:2014年1月10號
* 我的主頁:
* 聯絡我:
****************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
  int i,b,a,x=0,y=0;
  printf("=============================================================\n");
  printf("| 這是一個和電腦玩剪刀,石頭,布的程式 |\n");
  printf("| 您可以選擇你要出的,電腦也會自動出一個,並判斷輸贏 |\n");
  printf("| 先贏 3 場即獲勝 |\n");
  printf("=============================================================\n");
  L01:
  printf("選擇你要出的 1.剪刀 2.石頭 3.布\n");
  printf("你選擇的是: ");
  scanf("%d",&i);
  srand(time(NULL));
  b=rand()%3;
  if (b%3==1)
  {
     if (i==1)
     {
     printf("您出剪刀 電腦出剪刀 = 平手\n");
     printf("\n");
     goto L01;
     }
     else if (i==2)
     {
     printf("您出石頭 電腦出剪刀 = 您贏\n");
     x++;
     if (x<3 && y<3)
     {
     printf("\n");
     goto L01;
     }
     else
{
     goto L02;
     }
     }
     else if(i==3)
     {
     printf("您出布 電腦出剪刀 = 電腦贏\n");
     y++;
     if (x<3 && y<3)
     {
     printf("\n");
     goto L01;
     }
     else
{
     goto L02;
     }
     }
  }
  else if (b%3==2)
  {
     if (i==1)
     {
     printf("您出剪刀 電腦出石頭 = 電腦贏\n");
     y++;
     if (x<3 && y<3)
     {
     printf("\n");
     goto L01;
     }
     else
{
     goto L02;
     }
     }
     else if (i==2)
     {
     printf("您出石頭 電腦出石頭 = 平手\n");
     printf("\n");
     goto L01;
     }
     else if(i==3)
     {
     printf("您出布 電腦出石頭 = 您贏\n");
     x++;
     if (x<3 && y<3)
     {
     printf("\n");
     goto L01;
     }
     else
{
     goto L02;
     }
     }
  }
  else
{
     if (i==1)
     {
     printf("您出剪刀 電腦出布 = 您贏\n");
     x++;
     if (x<3 && y<3)
     {
     printf("\n");
     goto L01;
     }
     else
{
     goto L02;
     }
     }
     else if (i==2)
     {
     printf("您出石頭 電腦出布 = 電腦贏\n");
     y++;
     if (x<3 && y<3)
     {
     printf("\n");
     goto L01;
     }
     else
{
     goto L02;
     }
     }
     else if(i==3)
     {
     printf("您出布 電腦出布 = 平手\n");
     printf("\n");
     goto L01;
     }
  }
  L02:
  if (x<3 && y<3)
  {
     printf("您輸入的數超出範圍,請重新輸入 1 ~ 3 的數\n\n");
     goto L01;
  }
  else
{
     printf("\n\n===========\n");
     printf("| 結果 |\n");
     printf("===========\n");
     if (x==3)
     {
     printf("您勝 %d 場 電腦勝 %d 場 = 您贏\n",x,y);
     }
     else if (y==3)
     {
     printf("電腦勝 %d 場 您勝 %d 場 = 電腦贏\n",y,x);
     }
     system("PAUSE");        
     return 0;
  }
}

影片網址:https://www.youtube.com/watch?v=En0S0SCJg5o
1059C103103331 發表於 2015-1-10 16:22:31 | 顯示全部樓層
本帖最後由 1059C103103331 於 2015-1-10 16:23 編輯

/***********************************************************
* 文 件 名:103103331 猜拳遊戲.cpp
* 功    能: 輸入1或2或3和電腦猜拳
*
* 注    意:
*
* 版    本:V1.0
* 作    者:
* 日    期:2015年1月10號
* 我的主頁:
* 聯絡我:
****************************************************************/
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
  int i,b,a,x=0,y=0;
  printf("=============================================================\n");
  printf("| 這是一個和電腦玩剪刀,石頭,布的程式 |\n");
  printf("| 您可以選擇你要出的,電腦也會自動出一個,並判斷輸贏 |\n");
  printf("| 先贏 3 場即獲勝 |\n");
  printf("=============================================================\n");
  L01:
  printf("選擇你要出的 1.剪刀 2.石頭 3.布\n");
  printf("你選擇的是: ");
  scanf("%d",&i);
  srand(time(NULL));
  b=rand()%3;
  if (b%3==1)
  {
     if (i==1)
     {
     printf("您出剪刀 電腦出剪刀 = 平手\n");
     printf("\n");
     goto L01;
     }
     else if (i==2)
     {
     printf("您出石頭 電腦出剪刀 = 您贏\n");
     x++;
     if (x<3 && y<3)
     {
     printf("\n");
     goto L01;
     }
     else
{
     goto L02;
     }
     }
     else if(i==3)
     {
     printf("您出布 電腦出剪刀 = 電腦贏\n");
     y++;
     if (x<3 && y<3)
     {
     printf("\n");
     goto L01;
     }
     else
{
     goto L02;
     }
     }
  }
  else if (b%3==2)
  {
     if (i==1)
     {
     printf("您出剪刀 電腦出石頭 = 電腦贏\n");
     y++;
     if (x<3 && y<3)
     {
     printf("\n");
     goto L01;
     }
     else
{
     goto L02;
     }
     }
     else if (i==2)
     {
     printf("您出石頭 電腦出石頭 = 平手\n");
     printf("\n");
     goto L01;
     }
     else if(i==3)
     {
     printf("您出布 電腦出石頭 = 您贏\n");
     x++;
     if (x<3 && y<3)
     {
     printf("\n");
     goto L01;
     }
     else
{
     goto L02;
     }
     }
  }
  else
{
     if (i==1)
     {
     printf("您出剪刀 電腦出布 = 您贏\n");
     x++;
     if (x<3 && y<3)
     {
     printf("\n");
     goto L01;
     }
     else
{
     goto L02;
     }
     }
     else if (i==2)
     {
     printf("您出石頭 電腦出布 = 電腦贏\n");
     y++;
     if (x<3 && y<3)
     {
     printf("\n");
     goto L01;
     }
     else
{
     goto L02;
     }
     }
     else if(i==3)
     {
     printf("您出布 電腦出布 = 平手\n");
     printf("\n");
     goto L01;
     }
  }
  L02:
  if (x<3 && y<3)
  {
     printf("您輸入的數超出範圍,請重新輸入 1 ~ 3 的數\n\n");
     goto L01;
  }
  else
{
     printf("\n\n===========\n");
     printf("| 結果 |\n");
     printf("===========\n");
     if (x==3)
     {
     printf("您勝 %d 場 電腦勝 %d 場 = 您贏\n",x,y);
     }
     else if (y==3)
     {
     printf("電腦勝 %d 場 您勝 %d 場 = 電腦贏\n",y,x);
     }
     system("PAUSE");        
     return 0;
  }
}


本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1059C103103339 發表於 2015-1-10 16:48:15 | 顯示全部樓層


/*************************************************************
* 文 件 名:103103331 貪食蛇.cpp
* 功    能: 用鍵盤玩貪食蛇
*
* 注    意:
*
* 版    本:V1.0
* 作    者:
* 日    期:2015年1月10號
* 我的主頁:
* 聯絡我:
****************************************************************/
#include <windows.h>
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <time.h>
using namespace std ;

const int N = 23;

struct Point {
    int x,y;
    void set(int X, int Y) {x=X; y=Y;}
};

HANDLE hIn, hOut;                           //I/O 控制器
Point  body[32], cookie, v = {-2,0};        //體塊, 食物, 移動向量,
char   room[N][N*2+4];                      //房間
int    delay_time = 100;                    //延遲時間
int    x1=2,y1=1,x2=(N-1)*2,y2=N-1, len=2;  //房間邊界, 身長
bool   bExit = false;                       //是否持續遊戲

void gotoxy (int x, int y)
{
    static COORD c;  
    c.X = x; c.Y = y;
    SetConsoleCursorPosition (hOut, c);
}

void draw (int x, int y, char* s)
{
    gotoxy (x,y);
    cout << s;
}

void drawList (char* a, char* b, char* c, int w, int h=1)
{
    static char* p = room[0];
    for (int i; h--; *p++=*c, *p++=c[1], *p++=0, p++)
        for (*p++='\n', *p++=*a, *p++=a[1], *p++=a[2],
            i=w-2; i--;) *p++=*b, *p++=b[1];  
}
void put_cookie ()
{
    cookie.x = 3 + rand()%(N-2) * 2;
    cookie.y = 2 + rand()%(N-3);

}

void init()
{
    srand (time(0));
    hOut = GetStdHandle (STD_OUTPUT_HANDLE);
    hIn  = GetStdHandle (STD_INPUT_HANDLE);
    HANDLE err = INVALID_HANDLE_VALUE;
    if (hIn == err || hOut == err) {
        puts ("handle failed");
        getch ();
        exit (1);
    }
    drawList (" ┌","─","┐", N);   
    drawList (" │","  ","│", N, N-2);
    drawList (" └","─","┘", N);

    gotoxy (0,0);
    for (int i=0; i<N; i++) cout << room;
    put_cookie ();

    body[0].set ((x2-x1)/2, (y2-y1)/2);
    body[1].set (body[0].x+1, body[0].y);
}

void key_control()
{
    static DWORD count;
    static INPUT_RECORD ir;

    ReadConsoleInput (hIn, &ir, 1, &count);
    if (!ir.Event.KeyEvent.bKeyDown) return;                       
    switch (ir.Event.KeyEvent.wVirtualKeyCode) {                    
        case VK_UP   : if (v.y !=  1) v.set(0,-1); break;
        case VK_DOWN : if (v.y != -1) v.set(0, 1); break;
        case VK_LEFT : if (v.x !=  2) v.set(-2,0); break;                        
        case VK_RIGHT: if (v.x != -2) v.set( 2,0); break;
        case VK_ESCAPE: bExit = true;
    }        
}

void move_snack()
{   
    int i;
    int& x = body[0].x;
    int& y = body[0].y;
    for (i=1; i<len; i++)                   //檢查自身碰撞
        if (body[0].x == body.x &&
            body[0].y == body.y ) break;

    if (i!=len || x<=x1 || x>x2 || y<=y1 || y>y2) {
        draw (14,10,"G a m e    O v e r");
        getch(); bExit = true;
        return;
    }
    if (x == cookie.x && y == cookie.y) {   //吃到食物
        delay_time -= 2;
        if (++len > 30) {
            draw (16,10, "Y o u    W i n");
            getch(); bExit = true;
            return;
        }put_cookie();
    }
    else draw (body[len-1].x, body[len-1].y, "  ");

    for (i=len-1; i>0; --i)
        body = body[i-1];
    x += v.x;
    y += v.y;
    for (i=0; i<len; ++i)
        draw (body.x, body.y, "█");
}


int main ()
{
    init();
    while (!bExit)
    {        
        Sleep (delay_time); if (kbhit()) key_control();
        draw (cookie.x, cookie.y, "◎");
        move_snack();
        Sleep (delay_time); if (kbhit()) key_control();            
        gotoxy (10,24);
        printf ("cookie: (%2d,%2d)  head: (%2d,%2d)",
            cookie.x, cookie.y, body[0].x, body[0].y);
    }
}


youtube: https://www.youtube.com/watch?v=QNdPK8j_l9Y&feature=youtu.be

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1059C103103307 發表於 2015-1-11 05:51:46 | 顯示全部樓層
#include<iostream>

#include<time.h>

using namespace std;

int main ()

{
        int month, day, hour, minute, second; //現在時間   
    int sec = (int) time(NULL); //1970/1/1到現在的總秒數
        int secday;     // 2015/1/1到現在的天數 ((不包含時分秒

        int deadmonth, deadday,               
        deadhour, deadminute, deadsecond;   //指定時間                          
        int deaddays;    // 2015/1/1到指定日期的天數((不包含時分秒

    int leapday, leaphour, leapminute,leapsecond;
    int leapsecs;    //現在 到 指定日期的總秒數


     cout << "Hello! 我是 2015v倒數計時器。 " << endl;         
     sec += 8 * 60 * 60;
   second = sec%60;      // 秒 now
   minute = (sec/60)%60; // 分鐘 now
   hour = (sec/3600)%24; // 時 now

     sec-=(104-59-10)*365*24*3600+10*366*24*3600;
     // sec在此處被修改成2015/1/1到現在的總秒數      
     secday = sec/(3600*24);
     // secday 是  2015/1/1到現在的天數 ((不包含時分秒   


    cout << endl << "請輸入 指定時間"
         << "(以整數形式輸入)" << endl;
        cout << endl << "西元年:2015" << endl;   

    cout << "月: ";
                cin >> deadmonth;
            cout << "日: ";  
                cin >> deadday;
            cout << "時: ";
                cin >> deadhour;
            cout << "分: ";
                cin >> deadminute;
            cout << "秒: ";
                cin >> deadsecond;

    switch(deadmonth)
    {
        case 1:
            deaddays = deadday;
            break;
        case 2:
            deaddays = deadday +31;
            break;
        case 3:
            deaddays = deadday +60;
            break;
        case 4:
            deaddays = deadday + 91;
            break;
        case 5:
            deaddays = deadday + 121;
            break;
        case 6:
            deaddays = deadday + 152;
            break;
        case 7:
            deaddays = deadday + 182;
            break;
        case 8:
            deaddays = deadday + 213;
            break;
        case 9:
            deaddays = deadday + 244;
            break;
        case 10:
            deaddays = deadday + 274;
            break;
        case 11:
            deaddays = deadday + 305;
            break;
        case 12:
            deaddays = deadday + 335;   
            break;
        default:
            cout << "不正確月份輸入" << endl;        
    }
        leapsecs= ( deaddays*24*3600
                + deadhour*3600
                + deadminute*60
                + deadsecond )
            -(secday*24*3600
                + hour*3600
                + minute*60
                + second);
        leapsecond = leapsecs%60;
        leapminute = (leapsecs/60)%60;
        leaphour = (leapsecs/3600)%24;
        leapday = leapsecs/(3600*24);      

    cout << "距離指定時間還有" << endl
         << (leapday-1) << "天"
         << leaphour << "時"
         << leapminute << "分"
         << leapsecond << "秒" <<endl;   


            return 0;           
}

http://youtu.be/RUo6Y5vth4c

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1059C103103330 發表於 2015-1-11 14:42:42 | 顯示全部樓層
猜兩位數字遊戲
投影片存放於壓縮檔內

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1059C103103334 發表於 2015-1-11 18:34:51 | 顯示全部樓層
本帖最後由 1059C103103334 於 2015-1-13 22:14 編輯

#include <cstdlib>
#include <iostream>
#include <iomanip.h>

using namespace std;

//亂數產生器
int getRandom(int min,int max){
    int r;
    clock_t seed = clock();
    srand(seed);
    r= min + rand()%(max-min+1);
    return r;
}
//費式數列(Fibonacci)
double f(double n){   
    if(n<=2)return 1;   
    return f(n-1)+f(n-2);
}
int main(int argc, char *argv[]){
    int i;
    system("cls");
   
    cout << "亂數測試..." << endl;
    for(int i=1;i<=49;i++){
       f(31);    //減速器
        cout << setw(3) << setprecision(3) << getRandom(1,49) << " ";        
    }
    cout << endl;

    system("PAUSE");
    return }

https://www.youtube.com/watch?v=33mv_PQ5w1U&feature=youtu.be


本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1059C103103334 發表於 2015-1-11 18:34:55 | 顯示全部樓層
本帖最後由 1059C103103334 於 2015-1-11 18:47 編輯

#include <cstdlib>
#include <iostream>
#include <iomanip.h>

using namespace std;

//亂數產生器
int getRandom(int min,int max){
    int r;
    clock_t seed = clock();
    srand(seed);
    r= min + rand()%(max-min+1);
    return r;
}
//費式數列(Fibonacci)
double f(double n){   
    if(n<=2)return 1;   
    return f(n-1)+f(n-2);
}
int main(int argc, char *argv[]){
    int i;
    system("cls");

    cout << "亂數測試..." << endl;
    for(int i=1;i<=49;i++){
        f(31);    //減速器
        cout << setw(3) << setprecision(3) << getRandom(1,49) << " ";        
    }
    cout << endl;

    system("PAUSE");
    return EXIT_SUCCESS;
}影片太大傳不上來

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1059C103103340 發表於 2015-1-11 22:23:18 | 顯示全部樓層
YouTube:https://www.youtube.com/watch?v=8NOT9UWdGf0&feature=youtu.be
—#include <stdio.h>
—#include <stdlib.h>
—int main()
—{
—    for(int i=1;i<=9;i++)
—{
—    for(int j=1;j<=9;j++)
—{
—    printf("%dX%d=%d\t",i,j,i*j);
—}
—    printf("\n");
—}
—
—    system("PAUSE");
—    return 0;
—
—}


本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

小黑屋|手机版|Archiver|施勢帆老師的教學網站  

GMT+8, 2021-4-15 15:57 , Processed in 0.109188 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表