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

解決済みの質問

C言語にて至急質問!!

授業でゲーム作成してますがタイム表示とえさの残り数表示と残りのライフ表示
のプログラムがわかりません
プログラムは下にあります
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include"utility.h"
int map[25][40];
typedef struct{
int x;
int y;
int life;
int col;
}CHAR;
void disp(int,int);
void main(void)
{
FILE *fp;
CHAR man,mapsize,teki[5];
int i,j,cnt = 0,x,y,flg,wx,wy,stime = 0,etime = 0 ;
GetConsoleHandle( );
srand(time(NULL));
fp = fopen("map.txt","r");
if(fp == NULL){
printf("ファイルエラー\n");
return;
}
fscanf(fp,"%d %d",&mapsize.y,&mapsize.x);
fscanf(fp,"%d %d",&man.y,&man.x);
wy = man.y;
wx = man.x;
fscanf(fp,"%d" "%d",&y,&x);
for(i = 0;i < mapsize.y;i++)
for(j = 0;j < mapsize.x;j++){
fscanf(fp,"%d",&map[i][j]);
if(map[i][j] == 1) cnt++;
}
fclose(fp);
disp(mapsize.x,mapsize.y);
Locate(man.x * 2 +10,man.y + 3);
printf("Э");
if(map[man.y][man.x] == 1){
cnt--;
map[man.y][man.x] = 0;
}
man.life = 10;
man.col = 0x0e;
for(i = 0;i < 5;i++){
teki[i].y = y;
teki[i].x = x;
teki[i].life = 1;
teki[i].col = rand() % 7 + 9;
}
while(cnt && man.life){
Wait(100);
if(KeyCheck(ESCAPE))
break;
Locate(man.x * 2 + 10,man.y + 3);
SetColor2(0x00);
printf(" ");
if(KeyCheck (LEFT) && map[man.y][man.x - 1] != 9){
man.x--;
}
if(KeyCheck (RIGHT) && map[man.y][man.x + 1] != 9){
man.x++;
}
if(KeyCheck (UP) && map[man.y - 1][man.x] != 9){
man.y--;
}
if(KeyCheck (DOWN) && map[man.y + 1][man.x] != 9){
man.y++;
}
flg = -1;
for(i = 0;i < 5;i++){
if(man.y == teki[i].y && man.x == teki[i].x)
flg = i;
}
if(flg == -1){
if(map[man.y][man.x] > 9){
j = map[man.y][man.x];
man.x = j / 100;
man.y = j % 100;
}
if(map[man.y][man.x] == 1){
cnt--;
map[man.y][man.x] = 0;
}
else if(map[man.y][man.x] == 2){
map[man.y][man.x] = 0;
stime = time(NULL);
etime = stime + 10;
}
}else{
stime = time(NULL);
if(stime < etime){
teki[flg].life--;
if(map[teki[flg].y][teki[flg].x] == 1){
map[teki[flg].y][teki[flg].x] = 0;
cnt--;
}else if(map[teki[flg].y][teki[flg].x] == 2){
map[man.y][man.x] = 0;
stime = time(NULL);
etime = stime + 10;
}
}else{
man.life--;
SetColor(0x0f);
Locate(60,3);
Locate(teki[flg].x * 2,teki[flg].y);
SetColor2(teki[flg].col);
printf("Ψ");
man.x = wx;
man.y = wy;
Wait(3000);
Locate(man.x * 2 + 10,man.y + 3);
SetColor2(man.col);
printf("Э");
}
}
Locate(man.x * 2 + 10,man.y + 3);
SetColor2(man.col);
printf("Э");
for(i = 0;i < 5;i++){
if(teki[i].life == 1){
Locate(teki[i].x * 2 + 10,teki[i].y +3);
switch(map[teki[i].y][teki[i].x]){
case 0:SetColor2(0x0f);
printf(" ");
break;
case 1:SetColor2(0x0f);
printf("・");
break;
case 2:SetColor2(0x0c);
printf("♪");
break;
}
j = rand() % 4;
if(j == 0 && map[teki[i].y - 1][teki[i].x] != 9){
teki[i].y--;
}
if(j == 1 && map[teki[i].y][teki[i].x + 1] != 9){
teki[i].x++;
}
if(j == 2 && map[teki[i].y + 1][teki[i].x] != 9){
teki[i].y++;
}
if(j == 3 && map[teki[i].y][teki[i].x - 1] != 9){
teki[i].x--;
}
Locate(teki[i].x * 2 + 10,teki[i].y + 3);
stime = time(NULL);
if(stime < etime)
SetColor2(teki[i].col << 4);
else
SetColor2(teki[i].col);
printf("Ψ");
}else{
stime = time(NULL);
if(stime >= etime){
teki[i].life = 1;
teki[i].y = y;
teki[i].x = x;
}
}
}
}
}
void disp(int x,int y){
int i,j;
for(i = 0;i < y;i++){
for(j = 0;j < x;j++){
Locate(j*2 + 10,i + 3);
switch(map[i][j]){
case 0:SetColor2(0x00);
printf(" ");
break;
case 1:SetColor2(0x0f);
printf("・");
break;
case 2:SetColor2(0x0c);
printf("♪");
break;
case 9:SetColor2(0x99);
printf("■");
break;
default:SetColor2(0x0d);
printf(" ");
}
}
}
}
このどこかに質問したプログラムがはいるかもおしえてほしいです。
至急回答をどうかおねがいします

投稿日時 - 2011-11-07 15:43:31

QNo.7119018

すぐに回答ほしいです

質問者が選んだベストアンサー

プログラムの説明をください.

投稿日時 - 2011-11-07 16:16:23

お礼

パックマン的なゲームをつくっておりますw

投稿日時 - 2011-11-07 16:36:25

ANo.1

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

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

-広告-
-広告-

回答(1)

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-