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

更新 發佈閱讀 12 分鐘
vocus|新世代的創作平台

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

第一步驟:確認需求

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

第二步驟:下prompt

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

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


第三步驟:長出程式碼

下完prompt後,Gemini就幫我寫了一個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>

第四步驟:安裝到電腦

以下是Gemini教我的步驟:

第一步:建立檔案

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

第二步:儲存為網頁檔

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

第三步:開啟並使用

  1. 回到桌面,會看到一個網頁圖示的檔案。
  2. 點兩下開啟,程式就會用你的瀏覽器(Safari 或 Chrome)打開。
vocus|新世代的創作平台

第五步驟:正式使用!

vocus|新世代的創作平台

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

接下來就來正式測試吧!

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

vocus|新世代的創作平台

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

這次選擇了巧克力粉。

vocus|新世代的創作平台

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

vocus|新世代的創作平台

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

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

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



留言
avatar-img
極簡主義者阿斐拉的財務自由筆記
214會員
282內容數
希望透過這個系列一一介紹我在理財上所學習到的筆記跟選擇困難歷程,慢慢達到人生自由的目標!
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
口耳相傳的上海菜飯由來,和提拉米蘇的傳說有異曲同工之妙:都是難為無米之炊的巧婦們使用家中吃緊或剩餘的食材,以心意和溫情烹調,為在外打拼的伴侶加油打氣,以簡單的美食聊表心意,成為慰藉,帶來「家」的滋味。
Thumbnail
口耳相傳的上海菜飯由來,和提拉米蘇的傳說有異曲同工之妙:都是難為無米之炊的巧婦們使用家中吃緊或剩餘的食材,以心意和溫情烹調,為在外打拼的伴侶加油打氣,以簡單的美食聊表心意,成為慰藉,帶來「家」的滋味。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
好奇心的驅使,讓我二度在週日騎著三十多分鐘的單車,終於踏入這個神奇的地方,在我心中是帶點神祕色彩的奇幻基地。 這裡是一個社群園圃(Community Garden)。在這裡我接觸了好多新的概念,學了好多不知道中文怎麼翻才合適的單字。Community這個詞比起「社區」,我傾向將它翻成「社群」是因為這
Thumbnail
好奇心的驅使,讓我二度在週日騎著三十多分鐘的單車,終於踏入這個神奇的地方,在我心中是帶點神祕色彩的奇幻基地。 這裡是一個社群園圃(Community Garden)。在這裡我接觸了好多新的概念,學了好多不知道中文怎麼翻才合適的單字。Community這個詞比起「社區」,我傾向將它翻成「社群」是因為這
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
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
住在高雄市的大林蒲居民,從任一個建築頂樓放眼望去,總能看到附近眾多的工業廠房、煙囪以及排放而出的氣體,但其實早期的大林蒲,只是個單純靠海、擁有大片沙灘的小村落,究竟是甚麼原因,變成現在工廠林立的景象?以及目前正在進行的萬人遷村計畫是什麼?
Thumbnail
住在高雄市的大林蒲居民,從任一個建築頂樓放眼望去,總能看到附近眾多的工業廠房、煙囪以及排放而出的氣體,但其實早期的大林蒲,只是個單純靠海、擁有大片沙灘的小村落,究竟是甚麼原因,變成現在工廠林立的景象?以及目前正在進行的萬人遷村計畫是什麼?
Thumbnail
圖形演算法在資料處理上扮演重要角色。本文介紹圖形的歷史、定義、技術用途,以及為什麼我們要關心圖形演算法。文末還提及圖形演算法在機器學習領域的應用。下次將介紹更詳細的圖形演算法內容。
Thumbnail
圖形演算法在資料處理上扮演重要角色。本文介紹圖形的歷史、定義、技術用途,以及為什麼我們要關心圖形演算法。文末還提及圖形演算法在機器學習領域的應用。下次將介紹更詳細的圖形演算法內容。
Thumbnail
8月悄悄走向尾聲,預告炎熱的酷暑,終將結束;秋意即將來臨,秋天的步履,如一陣風,緩緩沁入人心。步步走向微涼的時刻,是否已經吃膩每次造訪的店家呢?或是不知可以嘗試哪些不同的料理,而深怕踩雷呢?倘若座標身處台北,不妨嘗試,踏入一間名為「Onni韓食堂」的韓式料理店,嚐嚐台北繁華城市中的樸實滋味呢?
Thumbnail
8月悄悄走向尾聲,預告炎熱的酷暑,終將結束;秋意即將來臨,秋天的步履,如一陣風,緩緩沁入人心。步步走向微涼的時刻,是否已經吃膩每次造訪的店家呢?或是不知可以嘗試哪些不同的料理,而深怕踩雷呢?倘若座標身處台北,不妨嘗試,踏入一間名為「Onni韓食堂」的韓式料理店,嚐嚐台北繁華城市中的樸實滋味呢?
Thumbnail
得到金牌固然了不起,不是嗎?那是,世界的第一(起碼是,參與奧運的國家,那項目選手的第一名),是榮耀、成就、和實力的表現,也是「一將功成萬骨枯」的現實。
Thumbnail
得到金牌固然了不起,不是嗎?那是,世界的第一(起碼是,參與奧運的國家,那項目選手的第一名),是榮耀、成就、和實力的表現,也是「一將功成萬骨枯」的現實。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News