【文組寫程式】用 Google Gemini 做出自己的烘焙食譜比例換算器

更新 發佈閱讀 12 分鐘
raw-image

最近在試著學習寫程式,沒想到搭配Google Germini一下子就成功了,這篇就想來紀錄一下我寫的程式。

第一步驟:確認需求

最近在學著做甜點,但是常常因為某項材料份量跟網路食譜不一樣,所以要換算比例很麻煩,所以想來做一個可以自動貼上食譜,並且幫助我依照我有的材料換算全套食譜的程式。

第二步驟:下prompt

我逐一跟Google Germini下指示,以下是我歷次下的prompt,也一一修正了我的需求。

  • 我想要可以自動輸入某個食譜的比例,然後再跟它說我其中一項材料有多少,就可以幫我換算出整份食譜有的比例。
  • 我想要一口氣貼上所有的食譜比例,我不想要一個一個輸入每一個單項食譜比例。
  • 我可以用下拉式選單選其中一項材料,然後我只要輸入數字就好了。
  • 我是mac電腦,請告訴我怎麼做。


第三步驟:長出程式碼

下完prompt後,Germini就幫我寫了一個HTML的程式碼如下:

<!DOCTYPE html>
<html lang="zh-TW">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>烘焙比例自動換算器</title>
<style>
body { font-family: sans-serif; padding: 20px; max-width: 600px; margin: auto; background-color: #f4f4f9; }
.card { background: white; padding: 20px; border-radius: 12px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
textarea { width: 100%; height: 120px; margin-bottom: 15px; border: 1px solid #ccc; border-radius: 4px; padding: 8px; box-sizing: border-box; }
.row { display: flex; gap: 10px; margin-bottom: 15px; align-items: center; }
select, input { padding: 10px; border: 1px solid #ddd; border-radius: 4px; flex: 1; }
table { width: 100%; border-collapse: collapse; margin-top: 20px; }
th, td { border-bottom: 1px solid #eee; padding: 12px; text-align: left; }
th { background-color: #f8f8f8; }
.highlight { font-weight: bold; color: #e67e22; }
</style>
</head>
<body>

<div class="card">
<h2>🍞 烘焙比例換算器</h2>

<label>1. 貼上原始食譜內容:</label>
<textarea id="rawRecipe" placeholder="例如:&#10;高筋麵粉 500g&#10;水 350ml&#10;酵母 5g&#10;鹽 10"></textarea>

<div id="controlPanel" style="display:none;">
<label>2. 選擇基準材料與輸入重量:</label>
<div class="row">
<select id="ingredientSelect"></select>
<input type="number" id="inputAmount" placeholder="現有重量">
</div>
</div>

<div id="resultTable"></div>
</div>

<script>
const rawRecipe = document.getElementById('rawRecipe');
const ingredientSelect = document.getElementById('ingredientSelect');
const inputAmount = document.getElementById('inputAmount');
const resultTable = document.getElementById('resultTable');
let parsedRecipe = {};

// 解析文字食譜
rawRecipe.addEventListener('input', () => {
const text = rawRecipe.value;
const regex = /([^\d\s\w\n,,。]+)\s*(\d+\.?\d*)/g;
let match;
parsedRecipe = {};
ingredientSelect.innerHTML = '<option value="">-- 請選擇材料 --</option>';

while ((match = regex.exec(text)) !== null) {
const name = match[1].trim();
const amount = parseFloat(match[2]);
parsedRecipe[name] = amount;

let opt = document.createElement('option');
opt.value = name;
opt.textContent = name;
ingredientSelect.appendChild(opt);
}

if (Object.keys(parsedRecipe).length > 0) {
document.getElementById('controlPanel').style.display = 'block';
}
});

// 進行計算
function calculate() {
const target = ingredientSelect.value;
const currentVal = parseFloat(inputAmount.value);

if (!target || !currentVal || !parsedRecipe[target]) return;

const ratio = currentVal / parsedRecipe[target];
let html = `<table><tr><th>材料</th><th>換算後重量</th></tr>`;

for (let name in parsedRecipe) {
const newWeight = (parsedRecipe[name] * ratio).toFixed(1);
const isTarget = name === target ? 'class="highlight"' : '';
html += `<tr><td>${name}</td><td ${isTarget}>${newWeight}</td></tr>`;
}
html += `</table>`;
resultTable.innerHTML = html;
}

ingredientSelect.addEventListener('change', calculate);
inputAmount.addEventListener('input', calculate);
</script>

</body>
</html>

第四步驟:安裝到電腦

以下是Germini教我的步驟:

第一步:建立檔案

  1. 在 Mac 上按下 Command (⌘) + 空白鍵,搜尋 「文字編輯器」 (TextEdit) 並開啟它。
  2. 開啟後,在上方選單點選 「格式」 > 「製作純文字」 (如果你看到的是「製作 RTF 格式」,表示已經是純文字了,不需更改)。
    • 重要:一定要確保它是「純文字」模式,否則程式會失效。
  3. 將剛剛的程式碼 貼上 到編輯器中。

第二步:儲存為網頁檔

  1. 按下 Command (⌘) + S 儲存檔案。
  2. 檔案名稱: 輸入 烘焙計算.html (重點在於字尾一定要是 .html)。
  3. 位置: 選擇「桌面」。
  4. 儲存時如果跳出視窗問你「要使用 .txt 還是 .html?」,請選擇 「使用 .html」

第三步:開啟並使用

  1. 回到桌面,會看到一個網頁圖示的檔案。
  2. 點兩下開啟,程式就會用你的瀏覽器(Safari 或 Chrome)打開。
raw-image

第五步驟:正式使用!

raw-image

打開後就會看到這個美美的介面~完全都是Germini寫的。

接下來就來正式測試吧!

首先上網找一個食譜,然後貼上(這次找的是巧克力餅乾食譜)。

raw-image

貼上後就可以看到程式自動把裡面的食材做成下拉式選單了,接著再選取其中一樣食材。

這次選擇了巧克力粉。

raw-image

輸入巧克力粉的數量為80,就會自動跑出以下畫面:

raw-image

這樣就換算完成!而且會把換算的基準食材(巧克力粉)的數字標出來,非常方便呦!

這次測試的感覺是寫程式現在靠著AI已經不難了,重點是要找出自己的需求,並知道如何轉換給AI執行~

下次再嘗試看看別的有趣的專案,然後分享上來囉!



留言
avatar-img
留言分享你的想法!
avatar-img
極簡主義者阿斐拉的財務自由筆記
193會員
234內容數
希望透過這個系列一一介紹我在理財上所學習到的筆記跟選擇困難歷程,慢慢達到人生自由的目標!
2024/09/30
最近趁著閒暇之餘想要學習Python,上了幾堂課後,突然想活用一下Python來解決生活上的財務小問題,試了一下後還真的可行,就讓我們來看看怎麼做吧!附帶一提非常推薦LearnPyhon.com的學習資源,會一步一步的帶你學習創作自己的Code,對文組初學者來說非常的好上手。
Thumbnail
2024/09/30
最近趁著閒暇之餘想要學習Python,上了幾堂課後,突然想活用一下Python來解決生活上的財務小問題,試了一下後還真的可行,就讓我們來看看怎麼做吧!附帶一提非常推薦LearnPyhon.com的學習資源,會一步一步的帶你學習創作自己的Code,對文組初學者來說非常的好上手。
Thumbnail
2024/07/31
僅僅用了兩天就完成Google AI Essentials課程,整個課程總長約9小時,但實際上花掉的時間不用這麼多。這算是我第一次上Coursera的課、也是第一次上Google的課程,也得到不少心得。
Thumbnail
2024/07/31
僅僅用了兩天就完成Google AI Essentials課程,整個課程總長約9小時,但實際上花掉的時間不用這麼多。這算是我第一次上Coursera的課、也是第一次上Google的課程,也得到不少心得。
Thumbnail
2024/03/09
最近新發現的一個書籤功能,可以幫助工作上需要大量搜尋資料、整理資料的上班族朋友。這個功能可以讓你輕鬆地找到特定時間範圍內的新聞,並將其整理成表格。詳細步驟包括使用Bing引擎搜尋新聞,存成safari書籤標籤頁群組,使用Chatgpt做成表格。很適合新聞媒體業者、公關公司或者寫論文寫報告的學生。
Thumbnail
2024/03/09
最近新發現的一個書籤功能,可以幫助工作上需要大量搜尋資料、整理資料的上班族朋友。這個功能可以讓你輕鬆地找到特定時間範圍內的新聞,並將其整理成表格。詳細步驟包括使用Bing引擎搜尋新聞,存成safari書籤標籤頁群組,使用Chatgpt做成表格。很適合新聞媒體業者、公關公司或者寫論文寫報告的學生。
Thumbnail
看更多
你可能也想看
Thumbnail
你有想過嗎?如果把你過去一週、甚至一整個月的信用卡帳單全部攤開,會變成什麼畫面?😉 格編最近做了一個小實驗:把每一筆消費都丟到地圖上標記,結果它變成一張非常誠實的「生活熱力圖」。把每一筆刷卡都丟到地圖上之後,哪一條路上出現最多「小點點」,就代表你最常走那一條路;哪一個區塊被畫滿圈圈、標記最多店家
Thumbnail
你有想過嗎?如果把你過去一週、甚至一整個月的信用卡帳單全部攤開,會變成什麼畫面?😉 格編最近做了一個小實驗:把每一筆消費都丟到地圖上標記,結果它變成一張非常誠實的「生活熱力圖」。把每一筆刷卡都丟到地圖上之後,哪一條路上出現最多「小點點」,就代表你最常走那一條路;哪一個區塊被畫滿圈圈、標記最多店家
Thumbnail
《AI時代系列(5):掌握AI + 6G無線行動通訊網路》完整解析1G至6G演進,涵蓋無線通訊、核心網設計、頻譜與AI應用。學習者可掌握RAN架構、MIMO、MEC、URLLC、Open RAN等技術,理解6G智慧城市網路規劃與優化流程,具備AI+6G時代設計與實作能力。
Thumbnail
《AI時代系列(5):掌握AI + 6G無線行動通訊網路》完整解析1G至6G演進,涵蓋無線通訊、核心網設計、頻譜與AI應用。學習者可掌握RAN架構、MIMO、MEC、URLLC、Open RAN等技術,理解6G智慧城市網路規劃與優化流程,具備AI+6G時代設計與實作能力。
Thumbnail
新竹北大路上銅盤烤肉老店,平價實惠,吃到飽,附石鍋拌飯、韓式煎餅、蒸蛋。肉質不錯,適閤家庭聚餐。
Thumbnail
新竹北大路上銅盤烤肉老店,平價實惠,吃到飽,附石鍋拌飯、韓式煎餅、蒸蛋。肉質不錯,適閤家庭聚餐。
Thumbnail
口耳相傳的上海菜飯由來,和提拉米蘇的傳說有異曲同工之妙:都是難為無米之炊的巧婦們使用家中吃緊或剩餘的食材,以心意和溫情烹調,為在外打拼的伴侶加油打氣,以簡單的美食聊表心意,成為慰藉,帶來「家」的滋味。
Thumbnail
口耳相傳的上海菜飯由來,和提拉米蘇的傳說有異曲同工之妙:都是難為無米之炊的巧婦們使用家中吃緊或剩餘的食材,以心意和溫情烹調,為在外打拼的伴侶加油打氣,以簡單的美食聊表心意,成為慰藉,帶來「家」的滋味。
Thumbnail
住在高雄市的大林蒲居民,從任一個建築頂樓放眼望去,總能看到附近眾多的工業廠房、煙囪以及排放而出的氣體,但其實早期的大林蒲,只是個單純靠海、擁有大片沙灘的小村落,究竟是甚麼原因,變成現在工廠林立的景象?以及目前正在進行的萬人遷村計畫是什麼?
Thumbnail
住在高雄市的大林蒲居民,從任一個建築頂樓放眼望去,總能看到附近眾多的工業廠房、煙囪以及排放而出的氣體,但其實早期的大林蒲,只是個單純靠海、擁有大片沙灘的小村落,究竟是甚麼原因,變成現在工廠林立的景象?以及目前正在進行的萬人遷村計畫是什麼?
Thumbnail
圖形演算法在資料處理上扮演重要角色。本文介紹圖形的歷史、定義、技術用途,以及為什麼我們要關心圖形演算法。文末還提及圖形演算法在機器學習領域的應用。下次將介紹更詳細的圖形演算法內容。
Thumbnail
圖形演算法在資料處理上扮演重要角色。本文介紹圖形的歷史、定義、技術用途,以及為什麼我們要關心圖形演算法。文末還提及圖形演算法在機器學習領域的應用。下次將介紹更詳細的圖形演算法內容。
Thumbnail
勝浦市位於千葉縣東南部,距離東京市中心約75公里,面臨黑潮太平洋沿岸,海岸線自然風景豐富,市西北部為房總丘陵,海拔150~250米,地形平坦,面積93.96平方公里,目前人口15,723人,是千葉縣人口最少的一個市也是人口流失最嚴重的一個市,0~4歲的小朋友占比1.52%,而老人占比45.65%。
Thumbnail
勝浦市位於千葉縣東南部,距離東京市中心約75公里,面臨黑潮太平洋沿岸,海岸線自然風景豐富,市西北部為房總丘陵,海拔150~250米,地形平坦,面積93.96平方公里,目前人口15,723人,是千葉縣人口最少的一個市也是人口流失最嚴重的一個市,0~4歲的小朋友占比1.52%,而老人占比45.65%。
Thumbnail
好奇心的驅使,讓我二度在週日騎著三十多分鐘的單車,終於踏入這個神奇的地方,在我心中是帶點神祕色彩的奇幻基地。 這裡是一個社群園圃(Community Garden)。在這裡我接觸了好多新的概念,學了好多不知道中文怎麼翻才合適的單字。Community這個詞比起「社區」,我傾向將它翻成「社群」是因為這
Thumbnail
好奇心的驅使,讓我二度在週日騎著三十多分鐘的單車,終於踏入這個神奇的地方,在我心中是帶點神祕色彩的奇幻基地。 這裡是一個社群園圃(Community Garden)。在這裡我接觸了好多新的概念,學了好多不知道中文怎麼翻才合適的單字。Community這個詞比起「社區」,我傾向將它翻成「社群」是因為這
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News