2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

計算結果が全然違う電卓を作る(?)

Last updated at Posted at 2024-11-05

今回は計算結果が全然違う電卓を作りたいと思います。
「誰が求めてる?」「なんのために?」それは禁句です。
作る意味はありません。

HTMLかく

とりあえずHTMLやCSSを書きます。

index.html
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>不思議な電卓</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            margin: 0;
            background-color: #f5f5f5;
        }
        
        #calculator {
            background-color: #fff;
            padding: 20px;
            border-radius: 10px;
            box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);
            width: 300px;
            text-align: center;
        }

        #inputField {
            width: calc(100% - 20px);
            padding: 15px;
            margin-bottom: 15px;
            font-size: 1.2em;
            text-align: right;
            border: 2px solid #ddd;
            border-radius: 5px;
        }

        .row {
            display: flex;
            justify-content: space-between;
            margin-bottom: 10px;
        }

        button {
            width: 60px;
            padding: 15px;
            font-size: 1.2em;
            border: none;
            border-radius: 5px;
            cursor: pointer;
            transition: background-color 0.2s;
        }

        button:not(:last-child) {
            background-color: #f0f0f0;
            color: #333;
        }
        button:last-child {
            background-color: #f8c471;
            color: white;
        }

        #clear {
            background-color: #e74c3c;
            color: white;
        }
        #equals {
            background-color: #3498db;
            color: white;
            width: calc(100% - 20px);
            margin-top: 10px;
        }

        button:hover {
            background-color: #ddd;
        }
        #clear:hover {
            background-color: #c0392b;
        }
        #equals:hover {
            background-color: #2980b9;
        }

        #result {
            font-size: 1.3em;
            color: #333;
            margin-top: 15px;
        }
    </style>
</head>
<body>
    <div id="calculator">
        <h2>計算結果が全然違う電卓</h2>
        <input type="text" id="inputField" placeholder="式を入力してください" readonly />
        
        <div class="row">
            <button onclick="appendValue('7')">7</button>
            <button onclick="appendValue('8')">8</button>
            <button onclick="appendValue('9')">9</button>
            <button onclick="appendValue('+')">+</button>
        </div>
        <div class="row">
            <button onclick="appendValue('4')">4</button>
            <button onclick="appendValue('5')">5</button>
            <button onclick="appendValue('6')">6</button>
            <button onclick="appendValue('-')">-</button>
        </div>
        <div class="row">
            <button onclick="appendValue('1')">1</button>
            <button onclick="appendValue('2')">2</button>
            <button onclick="appendValue('3')">3</button>
            <button onclick="appendValue('*')">×</button>
        </div>
        <div class="row">
            <button onclick="appendValue('0')">0</button>
            <button onclick="appendValue('.')">.</button>
            <button id="clear" onclick="clearInput()">C</button>
            <button onclick="appendValue('/')">÷</button>
        </div>
        <button id="equals" onclick="calculate()">=</button>
        
        <p id="result">結果: </p>
    </div>
</body>
</html>

onclickで楽に数字を入れられるようしてる。

JavaScript

index.js
        function appendValue(value) {
            document.getElementById("inputField").value += value;
        }
        
        function clearInput() {
            document.getElementById("inputField").value = '';
            document.getElementById("result").textContent = '結果: ';
        }

        function calculate() {
            const randomResult = (Math.random() * 200 - 100).toFixed(2);
            document.getElementById("result").textContent = "結果: " + randomResult;
        }

Math.random()を使って計算結果に関係なく完全にランダムな数字が出力されます。

俺はなにをやってんだか

実際に使ってみる

こいつに1+1を計算させて見ましょう。
電卓のつもり-1.png

画像はimageです

この電卓によると、 1+1=12.61のようです。
Math.random()により完全ランダムなので、イコールボタンを押すたびに
計算結果が大きく変わります。

最後に

そのうちGithubPagesで公開したいと思うので、公開したら追記します。
ではまた次の記事で

追記 2024/11/6

GithubPagesにて公開をしました。

ぜひ使ってみてね

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?