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

施勢帆老師的教學網站

 找回密碼
 註冊
搜索
熱搜: 活动 交友 discuz
12
返回列表 發新帖
樓主: shie

期中程式報告

[複製鏈接]
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
1059C103103311 發表於 2015-1-12 00:16:30 | 顯示全部樓層
*************************************************************
* 文 件 名:103103311 五子棋.cpp
* 功    能: 用鍵盤玩五子棋
*
* 注    意:
*
* 版    本:V1.0
* 作    者:
* 日    期:2015年1月12號
* 我的主頁:
* 聯絡我:
****************************************************************/
#include <iostream>  
#include <conio.h>  

#define clr system("cls")  
#define inside(x,y) ((x>0)&&(y>0)&&(x<16)&&(y<16))  

using namespace std;  

int pan[16][16],nums[4],x,y,oldx,oldy;  
bool isBlack;  

void instruction(int i)  
{  
    if(i==1)   
    {  
        cout<<"Dev-C++ 五子棋 - Welcome"<<endl;   
        cout<<"---------------------------"<<endl;  
        cout<<"· 該程序為雙人五子棋,無人機對戰"<<endl;   
        cout<<"· 輸入“S”開始遊戲"<<endl;  
        cout<<"· 需要指令控制遊戲,輸入“?”獲取幫助"<<endl;  
        cout<<"                    powered by Lytning"<<endl;  
    }  
    if(i==2)   
    {  
        cout<<"---------------------------"<<endl;  
        cout<<"Dev-C++ 五子棋 - 指令"<<endl;  
        cout<<"---------------------------"<<endl;  
        cout<<"由于是控制台程序,需要?入指令控制遊戲"<<endl;  
        cout<<"指令列表:"<<endl;  
        cout<<"·N(空格)x(空格)y   :將棋子下在(x,y)位置。"<<endl;  
        cout<<"棋盤中坐標以16進制顯示,輸入時請輸入10進制坐標。(A=10,F=15)"<<endl;  
        cout<<"·A(空格)指令(空格)n:將棋子下在單前棋子附近n個單位"<<endl;  
        cout<<"指令: R-右側  L-左側  U-上方  D-下方"<<endl;  
        cout<<"RD-右下 RU-右上 LD-左下 LU-左上"<<endl;   
        cout<<"例如:A R 1:?棋子下在?前棋子 右? 1 個單位"<<endl;  
        cout<<" A LD 3:將棋子下在當前棋子左下方 3 個單位"<<endl;   
        cout<<"tips:開局時可隨意輸入一個n為0的指令在棋盤中央下棋"<<endl;   
        cout<<"         例如: A L 0"<<endl;   
    }  
}  

char makech(int n)  
{  
    if(n<10)  
        return (char)n+48;  
    return (char)n+55;  
}  

void print()  
{  
    cout<<"   ";  
    for(int i=1;i<16;i++)  
        cout<<makech(i)<<" ";  
    cout<<endl<<"  ------------------------------"<<endl;  
    for(int i=1;i<16;i++)  
    {  
        for(int j=1;j<16;j++)  
        {  
            if(j==1)  
                cout<<makech(i)<<"| ";  
            switch(pan[i][j])  
            {  
                case 9:  
                    cout<<"- ";  
                    break;  
                case 0:  
                    cout<<"0 ";  
                    break;  
                case 1:  
                    cout<<"1 ";  
                    break;  
            }  
        }  
        cout<<endl;  
    }  
}  

void dfs2(int x,int y,int fx)  
{  
    int trues=isBlack?1:0;  
    if(pan[x][y]==trues)  
        {nums[fx]++; }  
    else  
        {return;}  
    switch(fx)  
    {  
        case 0:  
            if(inside(x+1,y))  
                {dfs2(x+1,y,0);}  
            else  
                {return;}  
            break;  
        case 1:  
            if(inside(x,y+1))  
                {dfs2(x,y+1,1);}  
            else  
                {return;}  
            break;  
        case 2:  
            if(inside(x+1,y+1))  
                {dfs2(x+1,y+1,2);}  
            else  
                {return;}  
            break;  
        case 3:  
            if(inside(x+1,y-1))  
                {dfs2(x+1,y-1,3);}  
            else  
                {return;}  
            break;  
    }  
}  

void dfs1(int x,int y,int fx)//0 上下 1 左右 2 \  3/   
{  
    int trues=isBlack?1:0;  
    switch(fx)  
    {  
        case 0:  
            if((pan[x-1][y]==trues)&&inside(x-1,y))  
            {  
                dfs1(x-1,y,0);  
                return;  
            }else  
            {  
                dfs2(x,y,0);  
            }  
            break;  
        case 1:  
            if((pan[x][y-1]==trues)&&inside(x,y-1))  
            {  
                dfs1(x,y-1,1);  
                return;  
            }else  
            {  
                dfs2(x,y,1);  
            }  
            break;  
        case 2:  
            if((pan[x-1][y-1]==trues)&&inside(x-1,y-1))  
            {  
                dfs1(x-1,y-1,2);  
                return;  
            }else  
            {  
                dfs2(x,y,2);  
            }  
            break;  
        case 3:  
            if((pan[x-1][y+1]==trues)&&inside(x-1,y+1))  
            {  
                dfs1(x-1,y+1,3);  
                return;  
            }else  
            {  
                dfs2(x,y,3);  
            }  
            break;  
    }  
}  

void resetAll()  
{  
    for(int i=1;i<16;i++)  
        for(int j=1;j<16;j++)  
            pan[i][j]=9;  
    x=8;  
    y=8;  
    isBlack=true;  
}  

int main()  
{  
    instruction(1);  
    resetAll();  
    while(1)  
    {  
        char t;  
        cin>>t;  
        oldx=x;oldy=y;  
        if(t=='N')  
        {  

            cin>>x>>y;  
        }  
        else if(t=='A')  
        {  
            string act;  
            int num;  
            cin>>act>>num;  
            if(act=="R")  
                y+=num;  
            if(act=="L")  
                y-=num;  
            if(act=="U")  
                x-=num;  
            if(act=="D")  
                x+=num;  
            if(act=="RU")  
                x-=num,y+=num;  
            if(act=="RD")  
                x+=num,y+=num;  
            if(act=="LU")  
                y-=num,x-=num;  
            if(act=="LD")  
                y-=num,x+=num;   
        }  
        else if(t=='S')  
        {  
            print();  
            continue;  
        }  
        else if(t=='?')  
        {  
            instruction(2);   
            continue;   
        }   
        else if(t=='i')  
        {  
            instruction(3);  
            continue;   
        }   
        else  
        {  
            cout<<"未知指令."<<endl;  
            continue;   
        }  
        if((inside(x,y))&&(pan[x][y]==9) )  
        {  
            pan[x][y]=(isBlack)?1:0;  
            clr;  
            print();  
            for(int i=0;i<4;i++)  
            {  
                nums[i]=0;  
                dfs1(x,y,i);  
                if(nums[i]>=5)  
                {  
                    string winner=!isBlack?"白棋":"黑棋";  
                    cout<<winner<<"?得胜利!"<<endl<<"是否重新?始?(?入Y/N)";  
                    string temp;cin>>temp;  
                    if(temp=="Y")   
                    {  
                        resetAll();  
                        continue;  
                    }else{break;}  
                }  
            }  
            isBlack=!isBlack;  
            continue;  
        }else  
        {  
            cout<<"坐?有?或??已有棋子。"<<endl;  
            x=oldx;y=oldy;  
            continue;  
        }  
    }  
    return 0;  
}  

本帖子中包含更多資源

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

x
1059C103103317 發表於 2015-1-12 14:26:35 | 顯示全部樓層
本帖最後由 1059C103103317 於 2015-1-12 14:27 編輯

*************************************************************
* 文 件 名:103103317貪吃蛇.cpp
* 功    能: 用鍵盤玩貪吃蛇
*
* 注    意:
*
* 版    本:V1.0
* 作    者:
* 日    期:2015年1月12號
* 我的主頁:
* 聯絡我:
****************************************************************/

#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;                           
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);
    }
}

本帖子中包含更多資源

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

x
1059C103103319 發表於 2015-1-12 19:16:37 | 顯示全部樓層
本帖最後由 1059C103103319 於 2015-1-12 19:21 編輯

/*************************************************************
* 文 件 名:103103319 打飛機小遊戲
* 功    能:
*         
*      
*
* 注    意:
*
*         
*
* 版    本:V1.0
* 作    者:施勢帆
* 日    期:2015年1月12號
* 我的主頁:
* 聯絡我: mailto : vxvv1120@gamil.com
****************************************************************/
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#define N 35

void print(int [][N]);//輸出函數
void movebul(int [][N]);//子彈移動函数
void movepla(int [][N]);//敵機移動函数
void setting(void);//設置函数
void menu(void);//菜單函数
int scr[22][N]={0},pl=9,width=24,speed=3,density=30,score=0,death=0;//全局變量:界面、我機初始位、界面寬度、敵機速度、敵機密度、得分、死亡

main(void)
{
        menu();
        int i=0,j=0;
        scr[21][pl]=1;
        scr[0][5]=3;
        while(1)
        {
                if(kbhit())switch(getch())//控制左右移動和進入菜單
                {
                        case 'a':case 'A':if(pl>0)scr[21][pl]=0,scr[21][--pl]=1;break;
                        case 'd':case 'D':if(pl<width-2)scr[21][pl]=0,scr[21][++pl]=1;
                        break;
                        case 'w':case 'W':scr[20][pl]=2;break;case 27 :setting();
                        break;
                }
                if(++j%density==0)//控制生產敵機的速度
                {
                        j=0;srand(time(NULL));
                        scr[0][rand()%width]=3;
                }
        if(++i%speed==0)//控制敵機移動速度,相對於子弹移動速度
        movepla(scr);
        movebul(scr);
        print(scr);
        if(i==30000)i=0;//以免i 越界
        }
}
void print(int a[][N])
{
        system("cls");
        int i,j;
        for(i=0;i<22;i++)
        {
                a[width-1]=4;
                for(j=0;j<width;j++)
                {
                        if(a[j]==0)printf(" ");
                        if(a[j]==1)printf("\5");//输出我機的符號
                        if(a[j]==2)printf(".");//子彈
                        if(a[j]==3)printf("\3"); //输出敵機符號
                        if(a[j]==4)printf("|");
                        if(i==0&&j==width-1)printf("得分:%d",score);//右上角顯示得分
                        if(i==1&&j==width-1)printf("死亡:%d",death);
                        if(i==2&&j==width-1)printf("設置:Esc");
                        if(i==3&&j==width-1)printf("Copyright:王攀");
                }
        printf("\n");
        }
}
void movebul(int a[][N])
{
        int i,j;
        for(i=0;i<22;i++)
        for(j=0;j<width;j++)
        {
                if(i==0&&a[j]==2)a[j]=0;if(a[j]==2)
                {
                        if(a[i-1][j]==3)score+=10,printf("\7");
                        a[j]=0,a[i-1][j]=2;
                }
        }
}
void movepla(int a[][N])
{
        int i,j;
        for(i=21;i>=0;i--)//從最後一行往上是為了避免把敵機直接衝出數組
        for(j=0;j<width;j++)
        {
                if(i==21&&a[j]==3)a[j]=0;//底行賦值0 以免越界。
                if(a[j]==3)a[j]=0,a[i+1][j]=3;
        }
        if(a[20][pl]==3&&a[21][pl]==1)death++;
}
void setting(void)
{
        int sw=0,i,j;
        system("cls");
        do
        {
                sw=0;printf("\n 遊戲界面的大小:1.大2.小>> ");
                switch(getche())
                {
                        case '1':width=34;break;
                        case '2':width=24;break;
                        default:printf("\n 錯誤,請重新選擇...\n");
                        sw=1;
                }
        }
        while(sw);
        do
        {
                sw=0;
                printf("\n 請選擇敵機密度:1.大2.中3.小>> ");
                switch(getche())
                {
                        case '0':density=10;
                        break;
                        case '1':density=20;
                        break;case '2':density=30;
                        break;case '3':density=40;break;
                        default:printf("\n 錯誤,請重新選擇...\n");
                        sw=1;
                }
        }
        while(sw);
        do
        {
                sw=0;
                printf("\n 敵機的飛行速度:1.快2.中3.慢>> ");
                switch(getche())
                {
                        case '1':speed=2;
                        break;
                        case '2':speed=3;
                        break;
                        case '3':speed=4;
                        break;
                        default:printf("\n 錯誤,請重新選擇...\n");
                        sw=1;
                }
        }
        while(sw);
        for(i=0;i<22;i++)
        for(j=0;j<45;j++)
        scr[j]=0;
        scr[21][pl=9]=1;
        printf("\n 按任意鍵保存...");
        getch();
}
void menu(void)
{
        printf("說明:按A D 控制我機左右飛行,W 發射子彈\n 設置:请按Esc\n 開始遊戲:任意鍵\n");
        if(getch()==27)setting();
}



本帖子中包含更多資源

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

x
1059C100109107 發表於 2015-1-12 21:52:03 | 顯示全部樓層
/***********************************************************
* 文 件 名:100109107 進製轉換.cpp
* 功    能: 輸入數字做進製轉換
*
* 注    意:
*
* 版    本:V1.0
* 作    者:
* 日    期:2015年1月12號
* 我的主頁:
* 聯絡我:
****************************************************************/
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
   int i,j,m,r,d,k,sum1,sum2;                   // 設定變數名稱
   printf("請輸入兩個數字m,k,並將m轉成k進位\n");
   printf("請輸入m:");
   scanf("%d",&m);
   printf("請輸入k:");
   scanf("%d",&k);
   for(i=1,j=1,sum1=0,sum2=0;m>=1;i=i*k,j=j*10)   // 設定i,j從1開始,並累乘k和10,m除到比1小.停止迴圈
   {                                                                              // 求m的k進位即是將m用k因式分解保留餘數(為k進位之個位數),繼續除商再保留餘數,依此除到商小於1
      r=m/k;                                                                // 將輸入的數值m除以k
      d=m%k;                                                            // m除以k的餘數=d
      sum1=sum1+d*i;                                             // k進位之總和
      sum2=sum2+d*j;                                            // k進位之數值
      m=r;                                                               // 用除出來的商取代m
//      printf("%d\n",d);                                        // 檢驗輸出的餘數是否正確
   }
   printf("%d 轉成 %d 進位 = %d\n",sum1,k,sum2);  // 印出結果
   system("pause");
   return 0;
}



本帖子中包含更多資源

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

x
1059C103103345 發表於 2015-1-12 21:53:04 | 顯示全部樓層
本帖最後由 1059C103103345 於 2015-1-12 22:05 編輯

#include<iostream>  //當用到標準輸入與輸出時,需插入此標題檔  
#include<cstdlib>   //當用到亂數函數時,需插入此標題檔
#include<ctime>     //當用到時間函數時,需插入此標題檔
using namespace std;
int main()
{
    int computer;   //電腦出的拳
    int player;     //玩家出的拳
    int tryagain;   //是否再玩一次
    int win=0, lose=0, draw=0;     //用來累計輸贏或平手的次數
    start:
    srand(time(NULL));   //設定亂數種子
    computer=rand()%3+1;  //產生介於1~3的隨機亂數, 以決定電腦出的拳
    cout<<"請輸入你要出的拳 1=剪刀 2=石頭 3=布"<<endl;
    cin>>player;
    if(computer==1)
    {
          if(player==1)
          {
               cout<<"你出剪刀, 電腦也出剪刀!"<<endl<<"平手!";
               draw++;
          }else if(player==2)
          {
               cout<<"你出石頭, 電腦出剪刀!"<<endl<<"你贏了!";
               win++;
          }else if(player==3)
          {
               cout<<"你出布, 電腦出剪刀!"<<endl<<"你輸了!";
               lose++;
          }else
          {
               cout<<"輸入錯誤!";   
          }
    }
    if(computer==2)
    {
          if(player==1)
          {
               cout<<"你出剪刀, 電腦出石頭!"<<endl<<"你輸了!";
               lose++;
          }else if(player==2)
          {
               cout<<"你出石頭, 電腦也出石頭!"<<endl<<"平手!";
               draw++;
          }else if(player==3)
          {
               cout<<"你出布, 電腦出石頭!"<<endl<<"你贏了!";
               win++;
          }else
          {
               cout<<"輸入錯誤!";   
          }   

    }
    if(computer==3)
    {
          if(player==1)
          {
               cout<<"你出剪刀, 電腦出布!"<<endl<<"你贏了!";
               win++;
          }else if(player==2)
          {
               cout<<"你出石頭, 電腦出布!"<<endl<<"你輸了!";
               lose++;
          }else if(player==3)
          {
               cout<<"你出布, 電腦也出布!"<<endl<<"平手!";
               draw++;
          }else
          {
               cout<<"輸入錯誤!";   
          }   

    }
    cout<<endl;
    cout<<"再玩一次嗎? 1=是 2=否"<<endl;
    cin>>tryagain;
    if(tryagain==1)
    {
         goto start;
    }else
    {
         goto end;
    }
    end:
        cout<<"總共贏了"<<win<<"次, 輸了"<<lose<<"次, 平手"<<draw<<"次!"<<endl;
    system("pause");
    return 0;
}



本帖子中包含更多資源

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

x
1059C103103326 發表於 2015-1-12 21:53:51 | 顯示全部樓層
本帖最後由 1059C103103326 於 2015-1-13 00:04 編輯


*************************************************************
* 文 件 名:103103328 期末報告.cpp
* 功    能:開關燈遊戲
*
* 注    意:
*
* 版    本:V1.0
* 作    者:
* 日    期:2015年1月12號
* 我的主頁:
* 聯絡我:
****************************************************************/#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;
        }
}


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

本帖子中包含更多資源

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

x
1059C103103328 發表於 2015-1-12 22:53:49 | 顯示全部樓層
本帖最後由 1059C103103328 於 2015-1-12 22:56 編輯

*************************************************************
* 文 件 名:103103328 期末報告.cpp
* 功    能:多人互動益智猜數字遊戲
*
* 注    意:
*
* 版    本:V1.0
* 作    者:
* 日    期:2015年1月12號
* 我的主頁:
* 聯絡我:
****************************************************************/
#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=ZXEKIXJHhls&feature=youtu.be
1059C103103344 發表於 2015-1-12 23:57:03 | 顯示全部樓層
#include <iostream.h>

#include <conio.h>

#include <windows.h>



main()

{

  char map[20][20];    //棋盤的二維陣列記憶體

  char ch1,ch2,c1,c2,c3,c4,c5,c6,c,letter;     //輸入與圖案用字元變數

  int  i,j,q,x,y,z,row,col;    //迴圈與陣列用變數

  int  a,b,n1,n2,count=0;    //a,b:選棋變數 n1,n2:玩家總棋數  count:總下棋數



  c1=1,c2=3,c3=3,c4=4,c5=5,c6=6;  //設定編號1~6的棋子圖案(ASCll碼)

  printf("☆玩家A:\n\n請從下方選擇一種喜歡的棋子:\n");

  printf("*************************\n");

  printf("*   1:%c    2:%c    3:%c   *\n",c1,c2,c3);

  printf("*   4:%c    5:%c    6:%c   *\n",c4,c5,c6);

  printf("*************************\n");

  cin>>a;  //玩家A選的棋子編號代入變數a中

  system("cls");  //清除畫面



  for(i=0;i<1;)  //先設定一個無限執行的迴圈(因i永遠為0)

  {printf("☆玩家B:\n\n請從下方選擇一種喜歡的棋子:\n");

   printf("*************************\n");

   printf("*   1:%c    2:%c    3:%c   *\n",c1,c2,c3);

   printf("*   4:%c    5:%c    6:%c   *\n",c4,c5,c6);

   printf("*************************\n");

   cin>>b;  //玩家B選的棋子編號代入變數b中

   if(b==a){printf("此棋子已被玩家A使用,請重新選擇!\n\n");}

   else{i++;}   //兩個玩家棋子不重覆,便將i加上1中止這個迴圈!

  }

  ch1=a,ch2=b,n1=0,n2=0; //將玩家選的棋編號代入變數ch1,ch2中,並設記錄棋數的變數n1,n2為零



  system("cls");

  cout<<"   ";

  for(i=1;i<10;i++)

  {cout<<i<<" ";}

  for(i=10;i<21;i++)

  {cout<<i;}

  cout<<endl;



  for(x=1;x<21;x++)

  {printf("%2d ",x);

     for(y=1;y<21;y++)

     {map[x][y]='.';

      cout<<map[x][y]<<" ";}

   cout<<endl;}   

  printf("******************************************\n");

  printf("*       %c玩家A:%3d     %c玩家B:%3d        *\n",ch1,n1,ch2,n2);

  printf("******************************************\n");

  

for(q=1;q>0;count++)

{



   if(count%2==0){c=ch1; letter='A';}

   else{c=ch2; letter='B';}



   for(j=0;j<1;)

   {  

    for(i=0;i<1;)

    {printf("%c玩家%c:\n請輸入棋子的X座標(1~20):",c,letter);

     cin>>row;

     if((row<1)||(row>20)){printf("您輸入的X坐標已超出棋盤,請重新輸入!\n");}

     else {i++;}

    }  

    for(i=0;i<1;)

    {printf("請輸入棋子的y座標(1~20):");

    cin>>col;

    if((col<1)||(col>20)){printf("您輸入的y坐標已超出棋盤,請重新輸入!\n");}

    else {i++;}

    }

   if(map[col][row]!='.'){printf("此格已有棋子,請重新輸入!\n");}

   else{j++;}

   }

  

   map[col][row]=c;

   if(count%2==0){n1++;}

   else{n2++;}

  

   system("cls");

   cout<<"   ";

   for(i=1;i<10;i++)

   {cout<<i<<" ";}

   for(i=10;i<21;i++)

   {cout<<i;}

   cout<<endl;



   for(x=1;x<21;x++)

   {printf("%2d ",x);

     for(y=1;y<21;y++)

     {cout<<map[x][y]<<" ";}

    cout<<endl;}   

   printf("******************************************\n");

   printf("*       %c玩家A:%3d     %c玩家B:%3d        *\n",ch1,n1,ch2,n2);

   printf("******************************************\n");

  

  for(x=1;x<21;x++)

  { for(y=1;y<21;y++)

    { //直的連線判斷式

      if((map[x][y]==map[x+1][y])&&(map[x][y]==map[x+2][y])&&(map[x][y]==map[x+3][y])

      &&(map[x][y]==map[x+4][y])&&(map[x][y]!='.'))

      {map[x][y]=15,map[x+1][y]=15,map[x+2][y]=15,map[x+3][y]=15,map[x+4][y]=15; q--;}

      //橫的連線判斷式

      if((map[x][y]==map[x][y+1])&&(map[x][y]==map[x][y+2])&&(map[x][y]==map[x][y+3])

      &&(map[x][y]==map[x][y+4])&&(map[x][y]!='.'))

      {map[x][y]=15,map[x][y+1]=15,map[x][y+2]=15,map[x][y+3]=15,map[x][y+4]=15; q--;}

      //左斜的連線判斷式

      if((map[x][y]==map[x+1][y+1])&&(map[x][y]==map[x+2][y+2])&&(map[x][y]==map[x+3][y+3])

      &&(map[x][y]==map[x+4][y+4])&&(map[x][y]!='.'))

      {map[x][y]=15,map[x+1][y+1]=15,map[x+2][y+2]=15,map[x+3][y+3]=15,map[x+4][y+4]=15; q--;}

      //右斜的連線判斷式

      if((map[x][y]==map[x-1][y+1])&&(map[x][y]==map[x-2][y+2])&&(map[x][y]==map[x-3][y+3])

      &&(map[x][y]==map[x-4][y+4])&&(map[x][y]!='.'))

      {map[x][y]=15,map[x-1][y+1]=15,map[x-2][y+2]=15,map[x-3][y+3]=15,map[x-4][y+4]=15; q--;}

    }

  }



if(q==0)

{system("cls");

  cout<<"   ";

  for(i=1;i<10;i++)

  {cout<<i<<" ";}

  for(i=10;i<21;i++)

  {cout<<i;}

  cout<<endl;



  for(x=1;x<21;x++)

  {printf("%2d ",x);

    for(y=1;y<21;y++)

    {cout<<map[x][y]<<" ";}

   cout<<endl;}   

  printf("******************************************\n");

  printf("*       %c玩家A:%3d     %c玩家B:%3d        *\n",ch1,n1,ch2,n2);

  printf("******************************************\n");

  printf("*            恭喜玩家%c-%c勝利!            *\n\a",letter,c);

  printf("******************************************\n");}

}

   

getch();

}
http://youtu.be/5wVumYlYoUs

1059C103103315 發表於 2015-1-13 00:07:00 | 顯示全部樓層
/*************************************************************
* 文 件 名:103103315.cpp
* 功    能: 21點樸克牌
* 版    本:Dev-Cpp_Portable_5.8.3
* 注 意  :賭博有礙健康 請適量遊玩
* 日    期:2015年1月12號
* 聯絡我:a28285678@gmail.com
****************************************************************/
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
class CCard
{
  private:
    int naPip[5];//一共5張牌
    int nNumber;//發了多少張牌
    int nDollar;//有多少錢
    int nGamble;//賭注
    int nWin;//贏的局數
    int nLose;//輸的局數
    int nDraw;//平局數

  public:
    CCard();//構造函數初始化
    void FirstPlayTwo();//最初兩張牌
    int GetNumber();//返回牌數
    int GetPip();//返回點數
    void DisplayPip();//顯示全部牌面
    void DisplayPip(int);//除了第一張,依次全部牌面點數(針對計算機的牌顯示)
    void TurnPlay();//出一張牌
    void Win();//贏了計算賭注
    void Lose();//輸了
    void Draw();//平局
    int SetGamble(int);//設置賭注
    int GetMoney();//返回錢數
    void DisplayInfo();//打印必要信息
    int GetCurrentCard();//返回當前牌點數
};

CCard::CCard()//構造函數初始化class CCard
{
  nNumber = 0;
  nDollar = 100;//設賭注為100塊錢
  for(int i = 0;i<5;i++)
    naPip = 0;
  nGamble = 0;
  nWin = 0;
  nLose = 0;
  nDraw = 0;

}
int CCard::GetMoney()//
{
  return nDollar;
}

void CCard:isplayInfo()
{
  cout<<"您一共玩了"<<nWin+nLose+nDraw<<"局,"<<"贏了"<<nWin<<"局,"<<"輸了"<<nLose<<"局,"<<"平局"<<nDraw<<"局"<<endl;
  cout<<"您的賭資共計有:$"<<nDollar<<".\n";

}

int CCard::SetGamble(int gamble)//設賭注
{
  if(nDollar - gamble<0)
  return -1;
  if(gamble<0)
  {
    if(nDollar - 20 <0)
      return -1;
    nGamble = 20;
  }
  else
    nGamble =gamble;
  nDollar -= nGamble;
  return 0;
}

void CCard::FirstPlayTwo()//獲得最初的兩張牌
{
  naPip[0] = rand()%13+1;
  naPip[1] = rand()%13+1;
  nNumber = 2;
}

int  CCard::GetCurrentCard()//返回已經得到的兩張牌
{
  return naPip[nNumber-1];
}


int CCard::GetNumber()//返回已經發的牌數
{
  return nNumber;
}
int CCard::GetPip()//返回當前點數
{
  int nPip = 0;
  for(int i = 0;i<nNumber;i++)
  {
    if(naPip>=10)
    {
      nPip +=10;
    }

    else
    nPip+=naPip;
  }
  return nPip;
}

void CCard:isplayPip()//依次顯示牌點數
{
  for(int i=0;i<nNumber;i++)
    cout<<naPip<<"\t";
  cout<<endl;
}

void CCard::TurnPlay()//出一張牌
{
  nNumber++;
  naPip[nNumber-1] = rand()%13+1;

}

void CCard::Win()//贏了計算賭資
{
  cout<<"贏家牌面:";
  DisplayPip();
  cout<<"牌面點數: "<<GetPip()<<endl;
  nDollar = nDollar +2*nGamble;
  nWin++;
  cout<<"賭本:$"<<nDollar<<" 贏了"<<nWin<<"次"<<"輸了"<<nLose<<"次 "<<"平局"<<nDraw<<"次"<<endl;
  cout <<endl<<endl;
}
void CCard:ose()//輸了計算賭資
{
  nLose ++;
  cout<<"輸家牌面:";
  DisplayPip();
  if(GetPip()>21)
    cout<<"爆了!\n";
  else
    cout<<"牌面點數: "<<GetPip()<<endl;
  cout<<"賭本:$"<<nDollar<<" 贏了"<<nWin<<"次"<<"輸了"<<nLose<<"次 "<<"平局 "<<nDraw<<"次 "<<endl;
  cout<<endl<<endl;
}

void CCard:raw()//平局
{
  nDraw++;
  nDollar+=nGamble;
  cout<<"平局牌面:";
  DisplayPip();
  if(GetPip()>21)
    cout<<"爆了! \n";
  else
    cout<<"牌面點數:"<<GetPip()<<endl;
  cout<<"賭本:$"<<nDollar<<" 贏了"<<nWin<<"次"<<"輸了"<<nLose<<"次 "<<"平局 "<<nDraw<<"次 "<<endl;
  cout<<endl<<endl;
}

void CCard:isplayPip(int n)//除了第一張牌,其他的顯示
{
  cout<<"
  • "<<'\t';
      for(int i = 1;i<nNumber;i++)
        cout<<naPip<<'\t';
      cout<<endl;
    }

    void DisplayRule(void)
    {
      cout<<"\t歡迎進入21點遊戲世界!\n\n";
      cout<<"\t遊戲規則:\n";
      cout<<"\t1.玩家最多可以要5張牌;";
      cout<<"\t2.如果牌點的總數大於21則爆點,自動判輸;";
      cout<<"\t3.贏家可得雙倍賭注;";
      cout<<"\t3.電腦方在牌點大於等於16時不再要牌。";
      cout<<"\t4.祝您好運!\n";
      cout<<endl<<endl;
    }




    void Judge(CCard &cpu,CCard &player)//判斷輸贏
    {
      cout<<endl;
      if((cpu.GetPip()>21&&player.GetPip()>21) || cpu.GetPip() == player.GetPip())
      {
        cout<<"\n\n平局!\n";
        cout<<"電腦數據:\t";
        cpu.DisplayPip();
        cout<<"牌面點數:"<<cpu.GetPip()<<endl;
        cout<<"\n您的數據\t";
        player.Draw();
        cout<<endl;
      }
      else if((cpu.GetPip()>21)||(player.GetPip()>cpu.GetPip() && player.GetPip()<=21))
      {
        cout<<"\n\n恭喜您,您贏了!\n";
        cout<<"電腦數據:\t";
        cpu.DisplayPip();
        cout<<"牌面點數:"<<cpu.GetPip()<<endl;
        cout<<"\n您的數據\t";
        player.Win();
        cout<<endl;

      }
      else
      {
        cout<<"\n\n很遺憾,您輸了!\n";
        cout<<"電腦數據:\t";
        cpu.DisplayPip();
        cout<<"牌面點數:"<<cpu.GetPip()<<endl;
        cout<<"\n您的數據\t";
        player.Lose();
        cout<<endl;

      }

    }


    void PlayTurn(CCard &cpu,CCard &player)//玩一局
    {
      char chChoice;
      int blCpu = 1,blPlayer = 1;
      cpu.FirstPlayTwo();
      player.FirstPlayTwo();
      do
      {
        cout<<"您的牌點:\t";
        player.DisplayPip();
        cout<<"電腦牌點:\t";
        cpu.DisplayPip(1);
        cout<<"您的牌點數是:"<<player.GetPip()<<endl;
        if(blPlayer)
        {
          cout<<"\n\n您是否繼續要牌(Y/N)";
          cin >>chChoice;
          if((chChoice == 'Y'||chChoice == 'y'))
          {
            if(player.GetNumber()<5)
            {
              player.TurnPlay();
              cout<<"這是您想要的牌:"<<player.GetCurrentCard()<<endl;
              if(player.GetPip()>21)
                blPlayer = 0;
            }
      else
            {
              cout<<"對不起,您已經要了5張牌了,不能在要牌了!";
              blPlayer = 0;
            }
          }
        }

        if((chChoice =='N') ||(chChoice == 'n'))
        {
          blPlayer = 0;
        }

        if(cpu.GetPip()<16 && cpu.GetNumber()<5)
        {
          cpu.TurnPlay();
          cout<<"電腦要牌,牌點是:"<<cpu.GetCurrentCard()<<endl;
        }
        else
           blCpu = 0;

        if(blCpu&&player.GetNumber()<5&&player.GetPip()<21)
           blPlayer = 1;

      }while(blCpu||blPlayer);
      Judge(cpu,player);
    }
    int main()
    {
      srand((unsigned )time(NULL));//初始化隨機數種子
      CCard cpu,player;
      int blLogic;
      int nMoney;
      DisplayRule();//打印規則
      char chChoice;
      cout<<"是否開始遊戲(Y/N)?";
      cin >>chChoice;
      while(chChoice == 'Y'||chChoice =='y')
      {
        do
        {
          cout<<"您現在有賭本:$"<<player.GetMoney();
          cout<<"\n請下注(賭注不能超過賭本)";
          cin>>nMoney;
          blLogic = player.SetGamble(nMoney);
          if(blLogic)
            cout<<"您的賭本不夠,請重新下注!\n";
        }
        while(blLogic);
        PlayTurn(cpu,player);
        cout<<"是否繼續21點游戲(Y/N)?\n";
        cin>>chChoice;
      }
      player.DisplayInfo();
      cout<<"\n\n您是明智的,賭博有礙家庭和睦!\n";
      cout<<"歡迎再次使用本程序\n\n\n";
      return 0;

    }




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

  • 本帖子中包含更多資源

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

    x
    1059C103103303 發表於 2015-1-13 00:27:37 | 顯示全部樓層
    /*************************************************************
    * 文 件 名:103103303 計算機.cpp
    * 功    能: 會進行+、-、*、/的運算。
    *
    * 注    意:
    *
    * 版    本:V1.0
    * 作    者:
    * 日    期:2014年1月13號
    * 我的主頁:
    * 聯絡我:
    ****************************************************************/
    #include <stdio.h>

    int main(void)
    {    char    op;
        double    num1, num2, ans;

    printf("請輸入第1個數:");
    scanf("%lf", &num1);

    printf("請輸入第2個數:");
    scanf("%lf", &num2);

    do
    {    printf("請輸入 (+,-,*,/,或%): ");
        scanf("%c", &op);

        switch (op)
        {    case '+':    ans    =        num1 +         num2;    break;
            case '-':    ans    =        num1 -         num2;    break;
            case '*':    ans    =        num1 *         num2;    break;
            case '/':    ans    =        num1 /         num2;    break;
            default:    op    = ' ';                        break;
        }
    } while (op == ' ');

    printf("%f %c %f = %f\n", num1, op, num2, ans);

    return 0;
    }

    網址:[size=12.7272720336914px] [size=12.7272720336914px]http://youtu.be/v3OKb0uBik4

    1059C103103327 發表於 2015-1-13 00:55:33 | 顯示全部樓層
    貪吃蛇小遊戲

    #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;
    講解影片https://www.youtube.com/watch?v=MmDurGoz5kY&feature=youtu.be
    1059C103103327 發表於 2015-1-13 00:55:33 | 顯示全部樓層
    貪吃蛇小遊戲

    #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;
    講解影片https://www.youtube.com/watch?v=MmDurGoz5kY&feature=youtu.be
    1059C103103338 發表於 2015-1-13 00:56:12 | 顯示全部樓層
    /*************************************************************
    * 文 件 名:103103338
    * 功    能:
    * 版    本:Dev-Cpp_Portable_5.8.3
    * 注 意  :
    * 日    期:2015年1月13號
    * 聯絡我:
    ****************************************************************/
    #include<iostream>
    using namespace std;
    int main ()
    {
    int value;
    int a=2;
    int nice=0;

    cout <<">./ex4-2"<<endl;
    cout <<"Enter a integer value: "<<endl;
    cin >> value;
    cout <<value<<"\'s prime factors :"<<endl;
    if((value>1)&(value%1==0))//判斷是否為正整數
    {
        while(a<=value)
        {
            switch(nice)
            case 0:
            {
                if(value%a==0)
                  {
                    while(value%a==0)
                     {
                        value=value/a;                                          
                     }
                     cout << a<<" ";
                  }
                else
                  {
                     a+=1;
                  }
            break;
            default:
            break;  
            }   
        }
    cout <<endl<<">.";
    }
    else if((value<1)&(value%1==0))
    {
        cout << "無質因數or非正整數" <<endl;
    }

    return 0;

    }

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

    本帖子中包含更多資源

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

    x
    1059C103103303 發表於 2015-1-13 02:16:34 | 顯示全部樓層
    我是103103337 帳號被鎖先用別人的po
    #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); 2
      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");https://www.youtube.com/watch?v=alykej5HMWg&feature=youtu.be
    1059C103103301 發表於 2015-1-13 02:43:51 | 顯示全部樓層
    本帖最後由 1059C103103301 於 2015-1-13 02:53 編輯

    /*************************************************************
    * 文 件 名:103103301 貪食蛇
    * 功    能: 玩
    * 注    意:不能撞牆
    * 作    者: 吳晉宇
    * 日    期:2015年1月13號
    * 我的主頁:無
    * 聯絡我: jin002204@yahoo.com.tw
    ****************************************************************/
    影片網址:https://www.youtube.com/watch?v=AaoShehsgDs&feature=youtu.be

    // 先打開編譯程式 貼上以下的程式碼 進行編譯或是除錯 並且執行檔案


    #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);
        }
    }

    本帖子中包含更多資源

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

    x
    1059C103103302 發表於 2015-1-13 22:30:11 | 顯示全部樓層
    /*
    === 猜數字遊戲 (幾A幾B) ===
    程式作者:許哲誌
    學號:103103302
    日期:2015/01/13
    */
    #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程式作者:Neil\n網誌:http://neilchennc.blogspot.com \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); //迴圈猜times次
          na==4?puts("您猜對了!"):printf("失敗,猜超過10次,答案是%s\n",cn);
        return system("pause");
    }
    /*
    === 猜數字遊戲 (幾A幾B) ===
    程式作者:許哲誌
    學號:103103302
    日期:2015/01/13
    */
    #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程式作者:Neil\n網誌:http://neilchennc.blogspot.com \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); //迴圈猜times次
          na==4?puts("您猜對了!"):printf("失敗,猜超過10次,答案是%s\n",cn);
        return system("pause");
    }
    /*
    === 猜數字遊戲 (幾A幾B) ===
    程式作者:許哲誌
    學號:103103302
    日期:2015/01/13
    */
    #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程式作者:Neil\n網誌:http://neilchennc.blogspot.com \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); //迴圈猜times次
          na==4?puts("您猜對了!"):printf("失敗,猜超過10次,答案是%s\n",cn);
        return system("pause");
    }
    https://www.youtube.com/watch?v=uxzH1gnjnGo

    本帖子中包含更多資源

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

    x
    1059C103103313 發表於 2015-1-17 17:02:52 | 顯示全部樓層
    本帖最後由 1059C103103313 於 2015-1-17 17:05 編輯

    本帖最後由 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;
    }


    本帖子中包含更多資源

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

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

    本版積分規則

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

    GMT+8, 2018-12-16 05:40 , Processed in 0.107376 second(s), 14 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

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