C++でじゃんけんゲームをつくる

グーチョキパーに数値を割り当てて比較するだけ。

実行結果

じゃんけん! 0:グー 1:チョキ 2:パー
数値を入力 -> 3
もう一度数を入力 ->2

player ->パー
CPU ->パー

引き分け

ソースコード

#include <iostream>
#include <time.h>
#include <vector>

int main() {

    int player;

    std::cout << "じゃんけん! 0:グー 1:チョキ 2:パー " << std::endl;
    std::cout << "数値を入力 -> ";
    while (1) {
        std::cin >> player;
        if ((std::cin.good() != 0) && player >= 0 && player < 3) {
            break;
        }

        std::cin.clear();
        std::cin.ignore(256, '\n');
        std::cout << "もう一度数を入力 ->";
    }
    std::cout << std::endl;;

    const int N = 3;
    int r;
    srand((int)time(0));

    int cpu = rand() % N;
    if (player == cpu) {
        r = 0;
    }
    else if (
        player == 0 && cpu == 1 ||
        player == 1 && cpu == 2 ||
        player == 2 && cpu == 0
        ) {
        r = 1;
    }
    else {
        r = 2;
    }

    std::cout << "player ->";
    if (player == 0) {
        std::cout << "グー" << std::endl;
    }
    else if (player == 1) {
        std::cout << "チョキ" << std::endl;;
    }
    else if (player == 2) {
        std::cout << "パー" << std::endl;;
    }
    std::cout << "CPU ->";
    if (cpu == 0) {
        std::cout << "グー" << std::endl;;
    }
    else if (cpu == 1) {
        std::cout << "チョキ" << std::endl;;
    }
    else if (cpu == 2) {
        std::cout << "パー" << std::endl;;
    }

    std::cout << std::endl;;

    if (r == 0) {
        std::cout << "引き分け";
    }
    else if (r == 1) {
        std::cout << "あなたの勝ち";
    }
    else {
        std::cout << "あなたの負け";
    }

    return(0);
}

コメント

タイトルとURLをコピーしました