デジタル

Googleサイトで動く長距離走記録をGPTで作成しました。

投稿日:

修正命令を都度出しながら希望の物が作成できた。

WordPressだとCSSが邪魔してうまく機能しない・・・・

なんて素晴らしいものを作成したんだろうと自画自賛したい。

疲れたからここらで終わりにしよう

ドラクエの曲は素晴らしい。

懐古主義といえるかもしれないけど、心に残ったものはそう変わらない・・・・

https://music.youtube.com/watch?v=oMdgFrpwto0&si=U_I_w3wds7feh5SE

<style>
body { font-family: sans-serif; padding: 20px; }<br />
h1 { text-align: center; }<br />
#controls { text-align: center; margin-bottom: 20px; }<br />
button { font-size: 16px; margin: 0 5px; padding: 5px 10px; }<br />
#timer { font-size: 32px; margin-top: 10px; text-align: center; }<br />
table { width: 100%; border-collapse: collapse; margin-top: 20px; }<br />
th, td { border: 1px solid #ccc; padding: 8px; text-align: center; }<br />
th { background: #eee; }<br />
</style>

&nbsp;
<h1>長距離走タイム記録(分:秒表示・逆順)</h1>
<div id=”controls”><button id=”startBtn”>スタート</button>
<button id=”recordBtn” disabled=”disabled”>記録</button>
<button id=”exportBtn”>CSV出力</button>
<div id=”timer”>00分00秒</div>
</div>
<table id=”results”>
<thead>
<tr>
<th>順位</th>
<th>タイム</th>
</tr>
</thead>
</table>
<script>
let startTime, timerInterval;
const timerDisplay = document.getElementById(‘timer’);
const startBtn = document.getElementById(‘startBtn’);
const recordBtn = document.getElementById(‘recordBtn’);
const exportBtn = document.getElementById(‘exportBtn’);
const tbody = document.querySelector(‘#results tbody’);
let records = [];

function formatTime(ms) {
const totalSec = Math.floor(ms / 1000);
const sec = String(totalSec % 60).padStart(2, ‘0’);
const min = String(Math.floor(totalSec / 60)).padStart(2, ‘0’);
return `${min}分${sec}秒`;
}

startBtn.addEventListener(‘click’, () => {
clearInterval(timerInterval);
startTime = performance.now();
timerDisplay.textContent = ’00分00秒’;
recordBtn.disabled = false;
timerInterval = setInterval(() => {
const elapsed = performance.now() – startTime;
timerDisplay.textContent = formatTime(elapsed);
}, 1000);
});

recordBtn.addEventListener(‘click’, () => {
const elapsed = performance.now() – startTime;
records.push(elapsed);
updateTable();
});

function updateTable() {
const sorted = records.slice().sort((a, b) => b – a);
tbody.innerHTML = ”;
sorted.forEach((ms, i) => {
const tr = document.createElement(‘tr’);
const rank = sorted.length – i;
tr.innerHTML = `</p>
<td>${rank}</td>
<td>${formatTime(ms)}</td>
<p>`;
tbody.appendChild(tr);
});
}

exportBtn.addEventListener(‘click’, () => {
const sorted = records.slice().sort((a, b) => b – a);
const csvRows = [[‘順位’,’タイム’]];
sorted.forEach((ms, i) => {
const rank = sorted.length – i;
csvRows.push([rank, formatTime(ms)]);
});
const csv = csvRows.map(r => r.join(‘,’)).join(‘\r\n’);
// UTF-8 BOM を付加して Excel の文字化けを防止
const bom = ‘\uFEFF’;
const blob = new Blob([bom + csv], { type: ‘text/csv;charset=utf-8;’ });
const url = URL.createObjectURL(blob);
const a = document.createElement(‘a’);
a.href = url; a.download = ‘results.csv’; a.click();
URL.revokeObjectURL(url);
});
</script>

-デジタル
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Stable Diffusion x/y/z plot で色々なキャラやパターンを生成

x/y/z plotでいろんなキャラパターンを作成

no image

埋め込み動画にAmazon商品リンクを反映

動画にアマゾン広告が反映されるようになったので各種SNSでできるか検証してみたいのだ。 https://livdir.com/am-tb/ 『Dead by Daylight』2対8モードの実装が発表 …

no image

複数地点の遠隔配信について 100円以上の価値あり しばらくしたら有料にします。

快適な生活を手に入れる!おすすめガジェット&アイテム4選

快適な生活を手に入れる!おすすめガジェット&アイテム4選 現代のライフスタイルにおいて、便利で快適なアイテムを使うことで、日常生活がぐっと充実します。今回は私が自信を持っておすすめする4つの商品を紹介 …

no image

オキュラスクエスト改めメタクエストを久々に起動してみた。

居酒屋で食事をしたときにメタクエストを購入した話を聞いたので久々に起動してみた。 1年前から感じていた運動不足が原因ですかね・・・ ある時期から操作をするのが体力的にきついのと既視感から飽きてしまった …

ブログ統計情報

  • 51,006 アクセス

最新配信動画リスト

Twitter でフォロー

Amazon Prime 今期 オススメアニメ

Amazon Prime 今期 オススメアニメ

カノジョも彼女

小林さんちのメイドラゴンS

SSSS.DYNAZENON
僕のヒーローアカデミア

戦闘員、派遣します!

ゾンビランドサガ リベンジ

 

転生したらスライムだった件

イジらないで、長瀞さん

 

Amazon Music Unlimited 新規登録で500ポイント

【5月度最新データを反映】Amazonアソシエイトの方におすすめの おもちゃ・ホビー商品

翻訳