スネークゲームの作成
Posted: 2018年8月03日(金) 21:34
トロンと呼ばれるスネークゲームのようなものを作成しているのですが、自分が通ったところを記録するやり方がわかりません。
//一度通ったところか判定(0以外ならゲーム終了)
if( ashiato[y][x]!=0 ){}
これをどこに入れればよいのでしょうか? どうか助言をお願いします。
//一度通ったところか判定(0以外ならゲーム終了)
if( ashiato[y][x]!=0 ){}
これをどこに入れればよいのでしょうか? どうか助言をお願いします。
#include<windows.h>
#include<stdio.h>
void gotoXY(int x, int y); //カーソル移動関数
void setColor( int color ); //色設定関数
int main(void){
int x,y,houkou,ashiato[21][61],j,i;
x = 40; y = 10; houkou=0;
//二次元配列すべてにに初期化
for(i=0; i<61; i++){
for(j=0;j<21;j++){
ashiato[j][i]=0;
}
}
while( GetAsyncKeyState( VK_ESCAPE )==0 ){
ashiato[y][x] = 1;
//自分操作
if(houkou==0) x++;
if(houkou==1) x--;
if(houkou==2) y--;
if(houkou==3) y++;
if( GetAsyncKeyState(VK_RIGHT) != 0 ) houkou = 0;
if( GetAsyncKeyState(VK_LEFT) != 0 ) houkou = 1;
if( GetAsyncKeyState(VK_UP) != 0 ) houkou = 2;
if( GetAsyncKeyState(VK_DOWN) != 0 ) houkou = 3;
//画面外ループ判定↓
if(x > 60){ x = 0; }
if(x < 0){ x = 60; }
if(y > 24){ y = 0; }
if(y < 0){ y = 24; }
setColor( 0x47 ); //赤背景白文字の色設定
gotoXY(x, y); //x ,y位置指定
printf("@"); //表示
Sleep(150);
}
return 0;
}
void gotoXY( int x, int y ){
COORD pos;
pos.X = x;
pos.Y = y;
SetConsoleCursorPosition( GetStdHandle(STD_OUTPUT_HANDLE), pos );
return ;
}
void setColor( int color ){
SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE), color );
return ;
}