# data[].attributes.wish_content.attachment_props.text
2018年6月，有學生在社會網絡分析的期末報告中分析「臺南市議會誰與誰一起提案的網絡」。當時一個讓大家感到有趣的發現是：郭信良怎麼會出現在那個位置？

半年後，郭信良退黨與國民黨合作選上議長，當人們感到驚訝時，社會網絡分析家只覺得：果然有跡可尋啊。

# data[].attributes.wish_content.attachment_props.original_text
2018年6月，有學生在社會網絡分析的期末報告中分析「臺南市議會誰與誰一起提案的網絡」。當時一個讓大家感到有趣的發現是：郭信良怎麼會出現在那個位置？

半年後，郭信良退黨與國民黨合作選上議長，當人們感到驚訝時，社會網絡分析家只覺得：果然有跡可尋啊。 https://t.co/kAvq10GekY

# data[].attributes.attachment_link.embed_code
2018年6月，有學生在社會網絡分析的期末報告中分析「臺南市議會誰與誰一起提案的網絡」。當時一個讓大家感到有趣的發現是：郭信良怎麼會出現在那個位置？

半年後，郭信良退黨與國民黨合作選上議長，當人們感到驚訝時，社會網絡分析家只覺得：果然有跡可尋啊。 pic.twitter.com/kAvq10GekY
— Ko-Hua Yap (@KohuaYap) December 25, 2022

# data[].attributes.attachment_link.metadata.attachment_props_source.data.text
2018年6月，有學生在社會網絡分析的期末報告中分析「臺南市議會誰與誰一起提案的網絡」。當時一個讓大家感到有趣的發現是：郭信良怎麼會出現在那個位置？

半年後，郭信良退黨與國民黨合作選上議長，當人們感到驚訝時，社會網絡分析家只覺得：果然有跡可尋啊。 https://t.co/kAvq10GekY

# data[].attributes.attachment_link.metadata.attachment_props.original_text
2018年6月，有學生在社會網絡分析的期末報告中分析「臺南市議會誰與誰一起提案的網絡」。當時一個讓大家感到有趣的發現是：郭信良怎麼會出現在那個位置？

半年後，郭信良退黨與國民黨合作選上議長，當人們感到驚訝時，社會網絡分析家只覺得：果然有跡可尋啊。 https://t.co/kAvq10GekY

# data[].attributes.attachment_link.metadata.attachment_props.text
2018年6月，有學生在社會網絡分析的期末報告中分析「臺南市議會誰與誰一起提案的網絡」。當時一個讓大家感到有趣的發現是：郭信良怎麼會出現在那個位置？

半年後，郭信良退黨與國民黨合作選上議長，當人們感到驚訝時，社會網絡分析家只覺得：果然有跡可尋啊。

# data[].attributes.headline
專題名稱: TNFSH各處室忙碌值比較 

# data[].attributes.subject
專題名稱: TNFSH各處室忙碌值比較 

# data[].attributes.body
以爬蟲抓取學校各處室公告，統計歷年各處室公告內容，以圖表顯示各項資訊

# data[].attributes.body
as title

# data[].attributes.body
202220101 王小明
202220203 王大明

# data[].attributes.body
202110410林昱翔
202111024曾耀德

# data[].attributes.body
202110702王翦
202110704吳柏佑

# data[].attributes.body
202111624陳崇聿
202111610周羿凱

# data[].attributes.body
202111716陳奕亨
202111732蘇子奕

# data[].attributes.body
２０２１１１８１４張峻碩
２０２１１１８１９楊曦磊

# data[].attributes.body
202110907 余佳峻
202111521 陳威廷

# data[].attributes.body
202221003王柏盛
202221235蘇靖恩
題目：近10年青少年自殺率與高樓建築物核發執照使用棟數關係

# data[].attributes.body
組員
202110911林昭輝
202111215徐振庭

# data[].attributes.body
202110220陳弈綸
202111729戴睿佑

# data[].attributes.body
202110626黃睿綸
202110707李承翰
202110722陳俊達

# data[].attributes.attachment_link.title
利用Python製作簡易五子棋

# data[].attributes.body
Wordle

# data[].attributes.body
分析近1週台南空氣品質變化趨勢

# data[].attributes.body
Happy Penguin

# data[].attributes.headline
臺南市交通號誌(路口紅綠燈)4G WiFi點位之分布

# data[].attributes.subject
臺南市交通號誌(路口紅綠燈)4G WiFi點位之分布

# data[].attributes.body
Discord 機器人

# data[].attributes.body
https://colab.research.google.com/drive/1JTFEuE4ngwvhQ2RrUpsaRdZOmyj1uqmL?usp=sharing

# data[].attributes.attachment_link.description
Check out this presentation designed by b010584.

# data[].attributes.body
1. 部份程式碼可參考網路資源
2. 專題程式碼自行撰寫比例不得低於50%
3. 期末展示可採事先錄影或現場即時DEMO為之
4. 期末報告時需詳細解說程式運作原理

# data[].attributes.body
1. 投影片

2. 程式檔

3. 報告及展示影片網址

# data[].attributes.body
程式碼內容: 註解的詳細程度、是否使用教學內容以外的功能(optional)

功能性

人機介面設計: 外觀/使用者互動設計

簡報

# data[].attributes.body
以螢幕錄影+錄音方式呈現，影片需事先上傳至Youtube並開敫分享

影片長度不得超過10分鐘

影片內容包括投影片簡報及專題展示

螢幕錄影工具:

https://www.apowersoft.tw/free-online-screen-recorder

也可直接下載 Apowersoft單機版直接錄影(校內的MacOS系統已事先安裝好，請至Application folder)

# data[].attributes.attachment_link.readable_text
螢幕中的一切活動，諸如個人演示、教學影片、即時聊天、電競遊戲、線上影片等

操作簡單，方便快捷

只需輕輕點擊一下，您就可以輕鬆錄製多種多樣的影片內容（演講影片、搞笑影片、教學影片等）。Apowersoft線上螢幕錄影簡潔的介面能夠指導您迅速掌握錄製螢幕的方法。

免費無限制

與其他產品不同的是，本款免費線上錄屏軟體沒有錄影時長的限制，您可以完整地錄製電視節目、線上課程等，以便之後觀看。

螢幕錄影區域多樣

您可以根據自己的需求對某一區域的活動進行錄製，也可以錄製整個電腦螢幕及網路攝像頭。

# data[].attributes.attachment_link.description
Apowersoft免費線上螢幕錄影為您提供了免費線上服務來錄製電腦桌面上的所有操作活動。使用它，您可以錄製線上直播影片，也可以錄製語音視訊聊天。通過使用其內置的編輯工具，您還可以對影片進行簡單的編輯。此外，該軟體還提供了多種錄製模式，能夠給您帶來不一樣的螢幕錄製體驗。

# data[].attributes.body
小組成員（班級、座號、姓名）

各成員負責項目

撰寫此程式的目的

簡介程式執行流程(以流程圖或是畫面擷圖說明)

簡介程式碼內容

# data[].attributes.body
https://colab.research.google.com/drive/10MZprrGiaxZ7U5zT5_UFmQjm2xcFqIgW?usp=sharing

# data[].attributes.body
包含程式碼、用到的圖片檔案
需要下載模組：pygame, pymunk, numpy

# data[].attributes.attachment_link.readable_text
#導入Discord.py
import discord
#要求權限
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
@client.event
#當機器人啟動
async def on_ready():
    print('目前登入身份：', client.user)
    game = discord.Game('人生ㄤ賴')
    await client.change_presence(status=discord.Status.idle, activity=game) #自訂狀態
@client.event
#有訊息時
async def on_message(message):
    #排除機器人自己的訊息
    if message.author == client.user:
        return
    if message.content.startswith('說'):
        m = message.content.split(" ", 2)
        if len(m) == 1:
            await message.channel.send("你要我說什麼啦")
        else:
            await message.channel.send(m[1])
    # 辨識關鍵字並回應
    f = open('test.txt', 'r')
    list1 = f.readlines()
    for i in range(len(list1)):
        list1[i] = list1[i].split(" ", 2)
        if list1[i][0] == message.content:
            await message.channel.send(list1[i][1])
            break
    f.close()
    #學習回應組合、儲存資料
    if message.content.startswith('學'):
        flag = False
        tmp = message.content.split(" ", 3)
        f = open('test.txt', 'r')
        list1 = f.readlines()
        for i in range(len(list1)):
            list1[i] = list1[i].split(" ", 2)
            if list1[i][0] == tmp[1]:
                flag = True
                break
        f.close()
        if flag == True:
            await message.channel.send("學過了啦換其他的")
        else:
            f = open('test.txt', 'a+')
            print(tmp[1],tmp[2], file=f)
            f.close()
            await message.channel.send("知道了啦")

    #查看已儲存的關鍵字
    if message.content ==('你學了啥'):
        await message.channel.send('以下是我腦袋的關鍵字:')
        f = open('test.txt', 'r')
        list1 = f.readlines()
        for i in range(len(list1)):
            list1[i] = list1[i].split(" ", 2)
            await message.channel.send(list1[i][0])
        f.close()
    #功能列表
    if message.content ==('/GGhelp'):
        await message.channel.send("叫我說話功能格式: 說(空格)(你要說的話)\n"
                                   "教我說話功能格式: 學(空格)(關鍵字)(空格)(回應)\n"
                                   "查看已學的關鍵字: 你學了啥\n")
#執行機器人的token
client.run('MTA2MDE1ODAxOTgyNjA5NDE1MQ.GWVOLk.HdEPUQBaXo4Z8yvJx7k5YLk-id7AgssdPHsytg')

# data[].attributes.attachment_link.title
python第七組期末專題

# data[].attributes.body
https://colab.research.google.com/drive/18xXUsgf8btn0zWAK9mY2HDT9w5vN52ud?usp=sharing

# data[].attributes.body
https://drive.google.com/file/d/1id9qh4vHmuDxUzdCo56SA1euqtuqKSE4/view?usp=sharing

# data[].attributes.attachment_link.readable_text
'''導入必須庫'''
import keyboard
import math
import threading
import time
from colorama import Fore,Style

'''定義函數'''

#清除螢幕
def clear_screen():
  print('\033c',end='')

#計算分數
def score():
  global eaten
  global beaten
  return eaten*10+beaten*200

#遊戲結束
def end_game():
  print(Fore.GREEN+"Score:",score(),Fore.RESET,end="")
  exit()

#印出地圖
def print_map(map):
  global state
  clear_screen()
  for i in range(len(map)):
    for j in range(len(map[i])):
      if [i,j] == loc['pl'] and state == 0:
        print(Fore.YELLOW+"O"+Fore.RESET,end="")
      elif [i,j] == loc['pl']:
        print(Fore.LIGHTWHITE_EX+"O"+Fore.RESET,end="")
      elif [i,j] == loc['MobR']:
        print(Fore.RED+"ඞ"+Fore.RESET,end="")
      elif [i,j] == loc['MobG']:
        print(Fore.GREEN+"ඞ"+Fore.RESET,end="")
      elif [i,j] == loc['MobB']:
        print(Fore.BLUE+"ඞ"+Fore.RESET,end="")
      elif [i,j] == loc['MobM']:
        print(Fore.MAGENTA+"ඞ"+Fore.RESET,end="")
      elif map[i][j]==0:
        print(Fore.LIGHTYELLOW_EX+"."+Fore.RESET,end="")
      elif map[i][j]==22:
        print(Fore.LIGHTRED_EX+"★"+Fore.RESET,end="")
      else:
        print(Fore.CYAN+dictionary[map[i][j]]+Fore.RESET,end="")
    if i == 0:
      print(Fore.GREEN+"Score:",score(),Fore.RESET,end="")
    print()

#偵測鍵盤
def readkey():
    while True:
        global plDir
        if keyboard.read_key()=="w" or keyboard.read_key()=="W":
            plDir="up"
        if keyboard.read_key()=="a" or keyboard.read_key()=="A":
            plDir="left"
        if keyboard.read_key()=="s" or keyboard.read_key()=="S":
            plDir="down"
        if keyboard.read_key()=="d" or keyboard.read_key()=="D":
            plDir="right"

#玩家移動
def pl_moving():
  global plDir
  object='pl'
  while True:
    if plDir=='up' and map[loc[object][0]-1][loc[object][1]]!=33:
        move('pl',plDir)
        plDir=0
    if plDir=='left' and map[loc[object][0]][loc[object][1]-1]!=33:
        move('pl',plDir)
        plDir=0
    if plDir=='down' and map[loc[object][0]+1][loc[object][1]]!=33:
        move('pl',plDir)
        plDir=0
    if plDir=='right' and map[loc[object][0]][loc[object][1]+1]!=33:
        move('pl',plDir)
        plDir=0
    time.sleep(0.1)

#移動指令
def move( object , dir ):
  if dir=="up" and map[loc[object][0]-1][loc[object][1]]%11 == 0:
    loc[object][0]-=1
  if dir=="left" and map[loc[object][0]][loc[object][1]-1]%11 == 0:
    loc[object][1]-=1
  if dir=="down" and map[loc[object][0]+1][loc[object][1]]%11 == 0:
    loc[object][0]+=1
  if dir=="right" and map[loc[object][0]][loc[object][1]+1]%11 == 0:
    loc[object][1]+=1


#吃豆
def eat():
  global eaten
  global state
  if map[loc['pl'][0]][loc['pl'][1]]==0:
    map[loc['pl'][0]][loc['pl'][1]]=11
    eaten+=1
  if map[loc['pl'][0]][loc['pl'][1]]==22:
      map[loc['pl'][0]][loc['pl'][1]]=11
      state=150

#玩家遭遇怪物
def try_to_beat():
  global state
  global beaten
  if state>0:

    if loc['pl']==loc['MobM']:
     beaten+=1
     loc['MobM']=[1,1]

    if loc['pl']==loc['MobR']:
     beaten+=1
     loc['MobR']=[2,2]

    if loc['pl']==loc['MobB']:
     beaten+=1
     loc['MobB']=[1,2]

    if loc['pl']==loc['MobG']:
     beaten+=1
     loc['MobG']=[2,1]

#好結局
def If_good_end():
  global eaten
  if eaten==158:
    clear_screen()
    print(Fore.YELLOW+Style.BRIGHT+"U R WINNER!!"+Fore.RESET+Style.RESET_ALL)
    end_game()

#壞結局
def If_bad_end():
  global state #強化狀態計數器
  if (loc['pl']==loc['MobM'] or loc['pl']==loc['MobR'] or loc['pl']==loc['MobB'] or loc['pl']==loc['MobG']) and state==0:
    clear_screen()
    print(Fore.RED+Style.BRIGHT+"GAME OVER"+Fore.RESET+Style.RESET_ALL)
    end_game()

#怪物迴圈
def mob_loop():
  global eaten
  while True:
      if eaten>=95 and loc['MobM']!=loc['MobB'] and loc['MobM']!=loc['MobG'] and loc['MobM']!=loc['MobR']:
          mob_moving("MobM")
      if eaten>=65 and loc['MobB']!=loc['MobG'] and loc['MobB']!=loc['MobR']:
          mob_moving("MobB")
      if eaten>=35 and loc['MobG']!=loc['MobR']:
          mob_moving("MobG")
      if eaten>=5:
          mob_moving("MobR")
      time.sleep(0.5)

#怪物移動
def mob_moving(object):
    minD=999999
    upD=math.sqrt(
        (loc[object][0]-1-loc['pl'][0])*(loc[object][0]-1-loc['pl'][0])+
        (loc[object][1]-loc['pl'][1])*(loc[object][1]-loc['pl'][1])
    )
    leftD=math.sqrt(
        (loc[object][0]-loc['pl'][0])*(loc[object][0]-loc['pl'][0])+
        (loc[object][1]-1-loc['pl'][1])*(loc[object][1]-1-loc['pl'][1])
    )
    downD=math.sqrt(
        (loc[object][0]+1-loc['pl'][0])*(loc[object][0]+1-loc['pl'][0])+
        (loc[object][1]-loc['pl'][1])*(loc[object][1]-loc['pl'][1])
    )
    rightD=math.sqrt(
        (loc[object][0]-loc['pl'][0])*(loc[object][0]-loc['pl'][0])+
        (loc[object][1]+1-loc['pl'][1])*(loc[object][1]+1-loc['pl'][1])
    )

    if map[loc[object][0]-1][loc[object][1]]%11!=0:
        upD=999999
    if map[loc[object][0]][loc[object][1]-1]%11!=0:
        leftD=999999
    if map[loc[object][0]+1][loc[object][1]]%11!=0:
        downD=999999
    if map[loc[object][0]][loc[object][1]+1]%11!=0:
        rightD=999999

    if upD==min(minD,upD,leftD,downD,rightD):
        move(object,'up')
    elif leftD==min(minD,upD,leftD,downD,rightD):
        move(object,'left')
    elif downD==min(minD,upD,leftD,downD,rightD):
        move(object,'down')
    elif rightD==min(minD,upD,leftD,downD,rightD):
        move(object,'right')


#地圖初始化
map=[
     [1,9,9,8,9,9,9,9,9,8,9,9,9,9,9,9,8,9,9,9,9,9,9,8,9,9,9,9,2],
     [10,11,11,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10],
     [10,11,11,33,0,0,0,0,0,0,0,0,0,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0,10],
     [6,9,9,2,0,10,0,0,0,10,0,0,1,9,9,9,2,0,9,9,9,9,2,0,0,9,9,9,5],
     [10,0,0,0,0,10,0,0,0,10,0,0,10,11,11,11,10,0,0,0,0,0,10,0,0,0,0,0,10],
     [10,0,0,0,0,3,9,9,9,5,0,0,10,11,11,11,10,0,0,9,9,9,5,0,0,9,9,9,5],
     [10,0,9,9,2,0,0,0,0,10,0,0,10,11,11,11,10,0,0,0,0,0,10,0,0,0,0,0,10],
     [10,0,0,0,10,0,0,0,0,10,0,0,3,9,9,9,4,0,9,9,9,9,4,0,0,10,0,0,10],
     [10,0,22,0,0,0,0,0,0,0,0,0,0,0,0,1,9,0,9,9,9,2,0,0,0,3,9,0,10],
     [10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10],
     [3,9,9,9,7,9,9,9,7,9,9,9,7,9,9,9,9,7,9,9,9,7,9,9,9,9,9,9,4]
    ]

#映照表初始化
dictionary=['.','╔','╗','╚','╝','╣','╠','╩','╦','═','║',' ','','','','','','','','','','','★','','','','','','','','','','','╎']

#位置初始化
loc={"pl":[2,15],"MobR":[2,2],"MobB":[2,1],"MobM":[1,1],"MobG":[1,2]}
#移動方向初始化
plDir=0
#狀態初始化
state=0
#吃豆數初始化
eaten=0
#擊敗敵人數初始化
beaten=0

#線程初始化
key_Thread=threading.Thread(target=readkey)
pl_Thread=threading.Thread(target=pl_moving)
mob_Thread=threading.Thread(target=mob_loop)

key_Thread.start()
pl_Thread.start()
mob_Thread.start()

while True:
    eat()
    if state>0:
      state-=1
    try_to_beat()
    If_bad_end()
    If_good_end()
    print_map(map)
    time.sleep(0.1)

# data[].attributes.body
分析99年畢業生於102年投入職場的薪水
和103年投入職場的薪水之差異

# data[].attributes.headline
老師我們題目有改 是薪水差異那個

# data[].attributes.subject
老師我們題目有改 是薪水差異那個

# data[].attributes.attachment_link.readable_text
Skip to content

More Repls

For a school project, in Programming Fundamentals. -Update Log - Update 1.0 |Beta Release| Update 2.0 |Full Release| Update 3.0 |Added End Credits| Update 4.0 |Added McDonalds| Update 5.0 |Added Saving| Update 6.9 |Egg| End. So far no more is being planned to be added, I'm working on a new game right now so if you want more, go play that

Hi again guys! This is my third game. I used the idea of database to make an online game and I thought a TicTacToe game could be funny. Let me know what you think and some suggestions in the comments!

For a school project, in Programming Fundamentals. -Update Log - Update 1.0 |Beta Release| Update 2.0 |Full Release| Update 3.0 |Added End Credits| Update 4.0 |Added McDonalds| Update 5.0 |Added Saving| Update 6.9 |Egg| End. So far no more is being planned to be added, I'm working on a new game right now so if you want more, go play that

# data[].attributes.attachment_link.description
Skip to content For a school project, in Programming Fundamentals. -Update Log - Update 1.0 |Beta Release| Update 2.0 |Full Release| Update 3.0 |Added End Credits| Update 4.0 |Added McDonalds| Update 5.0 |Added Saving| Update 6.9 |Egg| End.

# data[].attributes.body
東西快出來了

# data[].attributes.body
202110108林禹丞
202110133鄭清澤

# data[].attributes.attachment_link.description
Get access to files anywhere through secure cloud storage and file backup for your photos, videos, files and more with Google Drive.

# data[].attributes.body
程式簡介簡報

# data[].attributes.body
程式的部分

# data[].attributes.attachment_link.readable_text
We've looked for ways to make our team discussions and process more visible and accessible to all users. We recently switched from Google Docs to HackMD. HackMD offers a great unified Markdown editor/preview which is familiar and well-suited to our needs. Our meeting records have improved a lot over a short period and as a result we are able to be better accountable to each other as a team.

Bryan Van de Ven
Co-creator and Project Lead of Bokeh

# data[].attributes.attachment_link.title
HackMD - Collaborative Markdown Knowledge Base

# data[].attributes.attachment_link.description
We've looked for ways to make our team discussions and process more visible and accessible to all users. We recently switched from Google Docs to HackMD. HackMD offers a great unified Markdown editor/preview which is familiar and well-suited to our needs.

# data[].attributes.body
程式介紹影片