# 小恐龍第三周進度 ## git clone - cd "預存放資料夾位置"  - git init  - git clone "儲存庫的URL"  - 這樣就完成了  ## 小恐龍第三周進度 1. 完成 is_bumped 的函式 - 用於判斷小恐龍是否撞到牆壁 X 2. 分數增加 <!-- score --> ## 對 Github 的 push 發現大家不太會推送, 執行這些若使用學校電腦,則每次請記得告訴電腦 Github 的 username 以及 email 基本的操作,但可能大家操作不同,所以遇上的問題都會不一樣,像是要求你要 pull 之類的  - 基本指令 - `cd "預存放資料夾位置"` - `git add .` (不用在 git init 了因為已經有執行過並有 .git 檔案了) - `git commit -m "is_bumped && score"` - `git remote add origin "Github 的 URL"` - `git push origin main` - 刪除遠端分支 - git push origin -\-delete "分支名字" - 可參考的資料 - [新手也能懂的Git教學](https://medium.com/@flyotlin/%E6%96%B0%E6%89%8B%E4%B9%9F%E8%83%BD%E6%87%82%E7%9A%84git%E6%95%99%E5%AD%B8-c5dc0639dd9) - [寫給 Git 初學者的入門 4 步驟](https://www.maxlist.xyz/2018/11/02/git_tutorial/) ## 課堂 Code ```c= //20240321 //標頭檔案 #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <Windows.h> #include <time.h> //定義常數 #define ROAD_LENGTH 50 //路面長度 #define DINO_PLACE 6 //小恐龍在路面上的第幾格 struct dino { char road[ROAD_LENGTH + 1]; //字串結尾需要'\0' int jump_Time_Left; //小恐龍掉到地面的時間 int score; //得到的分數 int wait_Time; //每次迴圈等待的時間 int barrier_Chance; //放置障礙物的機率 //剩下看各位有需要甚麼 }; typedef struct dino Dino; //初始化一個物件 Dino* init(void) { //Dino MyDino; //Dino* MyDinoPtr = &MyDino; Dino* MyDinoPtr = (Dino*)malloc(sizeof(Dino)); if (MyDinoPtr != NULL) { MyDinoPtr->jump_Time_Left = 0; MyDinoPtr->barrier_Chance = 10; MyDinoPtr->score = 0; MyDinoPtr->wait_Time = 150; for (int i = 0; i < ROAD_LENGTH; i++) { MyDinoPtr->road[i] = '_'; } MyDinoPtr->road[ROAD_LENGTH - 1] = 'X'; MyDinoPtr->road[ROAD_LENGTH] = '\0'; } return MyDinoPtr; } //呈現畫面 void display(Dino* MyDinoPtr) { system("cls"); printf("\n\n\t"); for (int i = 0; i < ROAD_LENGTH; i++) { if (i == DINO_PLACE && MyDinoPtr->jump_Time_Left > 0) printf("o"); else printf(" "); } printf("\n\t"); //地面 for (int i = 0; i < ROAD_LENGTH; i++) { if (i == DINO_PLACE && MyDinoPtr->jump_Time_Left == 0) printf("o"); else printf("%c", MyDinoPtr->road[i]); } printf("\n\n\n"); printf("\t\tyour socre is: %d", MyDinoPtr->score); return; } //小恐龍移動 void move(Dino* MyDinoPtr) { for (int i = 0; i < ROAD_LENGTH - 1; i++) { MyDinoPtr->road[i] = MyDinoPtr->road[i + 1]; } MyDinoPtr->road[ROAD_LENGTH - 1] = '_'; } //判斷按鍵是否有觸發 bool space_pressed(void) { return _kbhit() != 0 && _getch() == 32; } //判斷是否小恐龍撞到'X' bool is_bumped(Dino* MyDinoPtr) { return MyDinoPtr->jump_Time_Left == 0 && MyDinoPtr->road[DINO_PLACE] == 'X'; } //主程式 int main() { Dino* MyDinoPtr = init(); display(MyDinoPtr); while (true) { if (space_pressed() && MyDinoPtr->jump_Time_Left == 0) MyDinoPtr->jump_Time_Left = 7; move(MyDinoPtr); if (MyDinoPtr->jump_Time_Left > 0) MyDinoPtr->jump_Time_Left -= 1; //如果撞到我們要離開迴圈 if (is_bumped(MyDinoPtr)) { display(MyDinoPtr); break; } display(MyDinoPtr); MyDinoPtr->score++; Sleep(MyDinoPtr->wait_Time); } return 0; } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up