アプリ版:「スタンプのみでお礼する」機能のリリースについて

授業でゲーム作成してますがタイム表示とえさの残り数表示と残りのライフ表示
のプログラムがわかりません
プログラムは下にあります
#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(" ");
}
}
}
}
このどこかに質問したプログラムがはいるかもおしえてほしいです。
至急回答をどうかおねがいします

A 回答 (1件)

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

    • good
    • 0
この回答へのお礼

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

お礼日時:2011/11/07 16:36

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