こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

スロット プルグラムについて

今、スロットをC++で作っています。
しかし、確実に実行されません。
分かるかた、教えていただけないでしょうか?

プログラムがめちゃくちゃなのは承知の上です。
優しい回答お願いします。




#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void r_dsp(int rel[3][3]);
int r_han(int rel[3][3],int tc);
main()
{
int co=100, r, i, j, kc,num ,rel[3][3];

srand(time(NULL));

while( co > 2 ){
printf("何枚コインを入れますか?(1~3):");
scanf("%d",&kc);
if( kc == 99 ) break;
if( kc < 1 || kc > 3 ){
continue;
}
co -= kc;

for( i = 0 ; i < 3 ; i++ ){
for( j = 0 ; j < 3 ; j++ ){
r = (double)rand() / RAND_MAX * 10;
rel[i][j] = r;
}
}
r_dsp(rel);
co += r_han(rel, kc);
printf("残りコイン=%d枚\n", co);
}
}

void r_dsp(int rel[3][3])
{
char num[][3]={"0","1","2","3","4","5","6","7","8","9"};
int i, j;

for( i = 0 ; i < 3 ; i++ ){
for( j = 0 ; j < 3 ; j++ ){
printf("%s ", num[rel[i][j]]);
}
printf("\n");
}
}

int r_han(int rel[3][3], int tc)
{
int i, hk=0;

for( i = 0 ; i < 3 ; i++ ){
if( i == 1 || tc != 1 )
if( rel[i][0] == 7 )
if( rel[i][1] == 7 )
if( rel[i][2] == 7 )
hk += 100;
else
hk += 10;
else
hk += 2;
}

if( tc == 3 ){
if( rel[0][0] == 7 ){
if( rel[1][1] == 7 )
if( rel[2][2] == 7 )
hk += 100;
else
hk += 10;
else
hk += 2;
}
if( rel[2][0] == 7 ){
if( rel[1][1] == 7 )
if( rel[0][2] == 7 )
hk += 100;
else
hk += 10;
else
hk += 2;
}
}
printf("払出し枚数=%d\n", hk);
return hk;
}

投稿日時 - 2010-12-02 12:42:01

QNo.6357811

困ってます

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(2)

ANo.2

はじめに、「プログラムは、命令どおりに確実に実行する」と心得ましょう。

「命令どおりに確実に実行」しなければ、社会は大混乱です。
+++++++++++++++++++++++++++++++++++++++
プログラムは、

 ・コイン3枚で、横3ライン、右下がり斜め、右上がり斜め・・5組。
 ・コイン2枚で、横3ライン・・3組。
 ・コイン1枚で、中央ライン・・1組。

この各組を対象に、左、中、右の順に見ていき、

 ・7が3つで100点
 ・左、中が7、右が7以外で10点
 ・左のみ7で2点

という【まず左が7であること、次に中が7であること】という仕様で、「確実に実行」します。
中列・右列が全部7でも、左が7でなければ0点という仕様ですよね。
+++++++++++++++++++++++++++++++++++++++
>分かるかた、教えていただけないでしょうか?

 質問者様の「思い」は分かりませんが、もし、左、中、右を同等に扱いたいのなら、
 (現在のソース(左中右)に、「左右中」、「中左右」、「中右左」、・・の全ての判定を追加するのでなく)

◆各組の「7の個数を数える」というアルゴリズムにしたら、と思います。

 プログラムの末尾「右上がり斜め」の改修例

   i7Cnt = 0;

   if( 7 == rel[2][0] ) i7Cnt++;
   if( 7 == rel[1][1] ) i7Cnt++;
   if( 7 == rel[0][2] ) i7Cnt++;

   if( 3 == i7Cnt ) hk += 100;
   if( 2 == i7Cnt ) hk += 10;
   if( 1 == i7Cnt ) hk += 2;

投稿日時 - 2010-12-03 06:43:27

ANo.1

プログラム以前に質問がめちゃくちゃ.
まず仕様, つまり「どう動いてほしいのか」をきちんと示さなければ, 質問の意味がない. 仕様と違うプログラムになってもしょうがないでしょ?
そして, 「確実に実行されません」としか言わないのも質問としておかしい. ちゃんと「何がどうなってどのように実行されないのか」を書くこと.

投稿日時 - 2010-12-02 13:57:53

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-