電子書籍の厳選無料作品が豊富!

#include <stdio.h>

typedef struct {
int pos[5];
} MinoPos;

typedef struct {
char name;
int used;
int formsize;
MinoPos form[8];
} Piece;

Piece pieces[] =
{
{'X', 0, 1, {{0,6,7, 8,14}}},
{'U', 0, 4, {{0,1,2, 7, 9},{0,1, 7,14,15},{0,2, 7, 8, 9},{0,1, 8,14,15}}},
{'W', 0, 4, {{0,1,8, 9,16},{0,1, 6, 7,13},{0,7, 8,15,16},{0,6, 7,12,13}}},
{'F', 0, 2, {{0,1,8, 9,15},{0,6, 7, 8,13}}},
{'Z', 0, 4, {{0,1,8,15,16},{0,5, 6, 7,12},{0,1, 7,13,14},{0,7, 8, 9,16}}},
{'P', 0, 8, {{0,1,2, 7, 8},{0,7, 8,14,15},{0,1, 6, 7, 8},{0,1, 7, 8,15},{0,1,2,8, 9},{0,1, 7, 8,14},{0,1,7,8, 9},{0,6, 7,13,14}}},
{'N', 0, 8, {{0,1,2, 9,10},{0,6, 7,13,20},{0,1, 8, 9,10},{0,7,13,14,20},{0,1,2,6, 7},{0,7,14,15,22},{0,1,5,6, 7},{0,7, 8,15,22}}},
{'Y', 0, 8, {{0,1,2, 3, 8},{0,7,14,15,21},{0,5, 6, 7, 8},{0,6, 7,14,21},{0,1,2,3, 9},{0,7, 8,14,21},{0,6,7,8, 9},{0,7,13,14,21}}},
{'T', 0, 4, {{0,1,2, 8,15},{0,7, 8, 9,14},{0,7,13,14,15},{0,5, 6, 7,14}}},
{'L', 0, 8, {{0,1,2, 3, 7},{0,7,14,21,22},{0,4, 5, 6, 7},{0,1, 8,15,22},{0,1,2,3,10},{0,1, 7,14,21},{0,7,8,9,10},{0,7,14,20,21}}},
{'V', 0, 4, {{0,1,2, 7,14},{0,7,14,15,16},{0,7,12,13,14},{0,1, 2, 9,16}}},
{'I', 0, 2, {{0,1,2, 3, 4},{0,7,14,21,28}}},
};

int board[77];
int counter, try_counter;

void init_board(void);
void print_board(void);
void try_piece(int level);
int board_index(int find_num);



void init_board(void)
{
int i;

for(i=0; i<77; i++){
if(((i + 1) % 7) == 0 || i >= 70){
board[i] = 100;
}
}
}

void print_board(void)
{
int row, col;

printf("No. %d\n", counter);
for(row=0; row<6; row++){
for(col=0; col<70; col += 7){
printf(" %c", pieces[board[row + col] - 1].name);
}
printf("\n");
}
printf("\n");
}

int board_index(int find_num)
{
int i;

for(i=0; i<77; i++){
if(board[i] == find_num){
return i;
}
}
return 0;
}

void try_piece(int level)
{
int i, j, k, x;

try_counter++;
x = board_index(0);
for(i=0; i<12; i++){
if(pieces[i].used == 1){continue;}
for(j=0; j<pieces[i].formsize; j++){
if(board[x + pieces[i].form[j].pos[0]] ||
board[x + pieces[i].form[j].pos[1]] ||
board[x + pieces[i].form[j].pos[2]] ||
board[x + pieces[i].form[j].pos[3]] ||
board[x + pieces[i].form[j].pos[4]]){continue;}
// ピースを置く
for(k=0; k<5; k++){board[x + pieces[i].form[j].pos[k]] = i + 1;}
pieces[i].used = 1;
// すべてのピースを置ききったらTrueを返す(recursiveコールの終了)
if(level == 11){
counter++;
print_board();
// ピースを戻す
for(k=0; k<5; k++){board[x + pieces[i].form[j].pos[k]] = 0;}
pieces[i].used = 0;
return;
}
// 次のピースを試す
try_piece(level + 1);
// ピースを戻す
for(k=0; k<5; k++){board[x + pieces[i].form[j].pos[k]] = 0;}
pieces[i].used = 0;
}
}
}

int main(int argc, char **argv)
{
init_board();
try_piece(0);
printf("解合計: %d\n", counter);
printf("操作数: %d\n", try_counter);
}

これを
gcc -O2 kokoa1.c
time ./a.out
と実行すると、

time : 用語 'time' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記
述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。
発生場所 行:1 文字:1
+ time ./a.out
+ ~~~~
+ CategoryInfo : ObjectNotFound: (time:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

というエラーが出るのですがなぜですか?

A 回答 (3件)

これは Windows の PowerShell が time なんてコマンド知らないよ


と言ってます。

linux bash 向けの教科書を使っているとか?
    • good
    • 0

>というエラーが出るのですがなぜですか?


timeコマンドのパラメタが正しくないから
でしょうかね。

OSが書かれていないので確実な回答になりませんが、Windowsとすると、
>Windowsにtimeコマンドが無いのでしょう。
Windowsにtimeコマンドはありますが
 システム時刻を表示または設定するコマンド
で、意味が違います。

ーーーーーーーーーーーー
TIME [/T | 時刻]

パラメーターの指定がなければ、現在の設定が表示され、新しい時刻を入力できる
プロンプトになります。変更しない場合は、Enter キーを押してください。

コマンド拡張機能を有効にすると、TIME コマンドは、/T スイッチを
サポートするようになります。このスイッチを指定すると、現在の時刻
だけが表示され、新しい時刻を入力するためのプロンプトは表示されません。
    • good
    • 1

Uninx系OSの標準コマンドに、time というのがあります。


これは
time 実行したいコマンド
で実行すると、「実行したいコマンド」の実行時間を出力するというものです。
https://linuxjm.osdn.jp/html/LDP_man-pages/man1/ …


> time : 用語 'time' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。

とあるように、Windowsにtimeコマンドが無いのでしょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!