野球の点数について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
みじんこ

野球の点数について

#1

投稿記事 by みじんこ » 11年前

野球の点数を実現したいのですが、どのように書けばいいでしょうか。


ランナー2塁の状況で2ベースヒット(2BHIT == 2)を打った場合みなさんならどのようにかきますか?
アドバイスお願いします。

いま考えているのがbase[8]を作り、1塁2塁3塁をbase[1]base[2]base[3]、ランナーがいれば1いなければ0。

コード:

    base[1] = 0;
    base[2] = 1;
    base[3] = 0;
    
    if(hitType == 2BHIT){
        
        for(i=1; i<4; i++){
            base[i + 2BHIT] = base[i];
        }
   base[2BHIT] = 1;
        
        for(i=4; i<7; i++){
            if(base[i]==1){
                score++;
            }
            
        }

Poco
記事: 161
登録日時: 13年前

Re: 野球の点数について

#2

投稿記事 by Poco » 11年前

どこまで細かく野球をシミュレートするかにもよりますが、
一番単純なケースだと、私なら8ビットの領域を用意し、下位4ビットをランナーの情報、
ヒットを打ったら進塁数分左シフトさせ、上位4ビットの1の数だけ点数として加算するようなコードをかくと思います。

みじんこ

Re: 野球の点数について

#3

投稿記事 by みじんこ » 11年前

Poco さんが書きました:どこまで細かく野球をシミュレートするかにもよりますが、
一番単純なケースだと、私なら8ビットの領域を用意し、下位4ビットをランナーの情報、
ヒットを打ったら進塁数分左シフトさせ、上位4ビットの1の数だけ点数として加算するようなコードをかくと思います。
ありがとうございます。
上位4ビットの1の数をとりだすのは、どのようにやるのがベストでしょうか。
よろしくお願いします。

コード:

unsigned char runner;
runnner &= 11110000;
nunofbit(runnner);

int nunofbit(){
//1の数を返す
}

nil
記事: 428
登録日時: 12年前

Re: 野球の点数について

#4

投稿記事 by nil » 11年前

僕ならこうします

コード:

unsigned char x = 0;
//  上位4ビットの設定
for( int i=0; i<4; i++ ) x |= (1<<(i+4));

// 取り出し
bool result[4] = {};
for( int i=0; i<4; i++ ) result[i] = x&(1<<(i+4));

for( int i=0; i<4; i++ ) cout << result[i] << endl;

閉鎖

“C言語何でも質問掲示板” へ戻る