Try   HackMD

遊戲程式設計:貪吃蛇

Code

https://github.com/MaxWutw/snake

$ git clone https://github.com/MaxWutw/snake.git

功能

  • 按按鈕之後會頭尾交換
  • 顯示題目
    • 出現ABCD四種蘋果
    • 吃到錯誤的蘋果會顯示廣告
    • 顯示RGB蘋果

變數宣告

想法

  • 我希望按下w可以進行頭尾交換,而交換後的行徑方向會和原行徑方向相反,例如原本是向左,按下w之後會向右。
  • 題目的部分我想要用json來存,然後藉由random的方式從json裡面挑題目出來

進度

  • 2023/10/28 閱讀Gaspared的範例code 吳振榮
  • 2023/10/29 調整視窗大小以及紅色蛇頭
    snake_head()
    ,開始撰寫按按鈕後頭尾交換吳振榮
  • 2023/11/12 製作按下w會頭尾交換、題目顯示code 吳振榮
  • 2023/12/01 增加游戲畫面(Home, About Us, Help)韓欣劭
  • 2023/12/02 更改結束畫面,多個膨果生成 韓欣劭
  • 2023/12/03 膨果的正確性判斷 韓欣劭
  • 2023/12/04 game:44加入函式
  • 2023/12/04 更改速度機制,增加技能面版及技能冷卻機制 韓欣劭
  • 2023/12/06 新增廣告機制 韓欣劭、吳振榮
  • 2023/12/07 新增障礙物機制,新增技能「净化」 韓欣劭
  • 2023/12/09 新增問答反饋機制,新增 RGB 蛇 韓欣劭

目前遇到的問題

  • 膨果有時候明明觸碰到了,但沒被判定到,也就是說可能要做一個range,如果蛇頭落在這個range就要被判定說吃到膨果。
  • 頭尾交換後我們下一步要運行的方向是哪裡,可以藉由變數direction去調整方向。
  • 題目要放在哪個位置
  • (12/01 新增)目前蛇撞到自己并不會死亡,并且可以往自己的反方向走

Debug或遇到的問題

  • Iterating over ArrayList:
ArrayList<Integer> x = new ArrayList<Integer>(); // ... some process ... for(int i = 0;i < x.size();i++) print(x.get(i) + " ");
  • 我在儲存json的時候遇到RuntimeException: A JSONArray text must start with '['的錯誤,後來知道說當我們要將json儲存成array list的時候json的檔案需要用中括號包住,如果用大括號包住可能要用parser去處理會比較麻煩

Reference

https://github.com/Gaspared/Snake-Pro

Java ArrayList Reference: https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html