我的工作是用C语言编写游戏,我在int main中插入的“ jogar”菜单中遇到问题,因此我必须在另一个菜单中实现一个菜单,如果复制了1个,则需要此菜单“ sair” matrizaux重新启动游戏,如果是2,则返回主菜单。
//Função código fonte.
int main() {
geral matriz[VETORX][VETORY];
geral matrizaux[VETORX][VETORY];
int menu,jogada,vardirecao,posx,posy,i,j,sair=0;
do{
//Estrutura de controle do espaçamento.
espaco(matriz,VETORX,VETORY);
printf("Bem vindo ao Battle City CEFET!!!\n\n[1] Jogar.\n[2] Debug.\n[3] Lista de jogadores.\n[4] Sair.\n\nEscolha uma opcao: ");
scanf("%d",&menu);
switch(menu){
case 1:
//Estrutura de controle do espaçamento.
espaco(matriz,VETORX,VETORY);
zeraMatriz(matriz,VETORX,VETORY);
geraLimite(matriz,VETORX,VETORY);
geraReliquia(matriz,VETORX,VETORY);
geraBloco(matriz,VETORX,VETORY);
geraTijolos(matriz,VETORX,VETORY);
tanqueOsorio(matriz,VETORX,VETORY);
tanqueAbrams(matriz,VETORX,VETORY);
tanqueCenturion(matriz,VETORX,VETORY);
for(i=0;i<=VETORY;i++){
for(j=0;j<=VETORY;j++){
matrizaux[i][j].tipo = matriz[i][j].tipo;
matrizaux[i][j].vida = matriz[i][j].vida;
matrizaux[i][j].direcao = matriz[i][j].direcao;
matrizaux[i][j].sprite = matriz[i][j].sprite;
}
}
//Estrutura da jogada.
do{
imprimeTabuleiro(matriz,VETORX,VETORY);
printf("[1] Movimentar o tanque.\n[2] Disparar.\n[3] Girar o tanque.\n[4] Sair.\n\nEscolha uma opcao: ");
scanf("%d",&jogada);
//menu jogada.
switch(jogada){
//Movimentar tanque principal.
case 1:
movimentoOsorio(matriz,VETORX,VETORY);
break;
//Dsparo do tanque.
case 2:
break;
//Girar o tanque.
case 3:
giraOsorio(matriz,VETORX,VETORY);
break;
//Sair.
case 4:
//Estrutura de controle do espaçamento.
espaco(matriz,VETORX,VETORY);
imprimeTabuleiro(matriz,VETORX,VETORY);
printf("[1] Reiniciar fase.\n[2] Novo Jogo.\n\nEscolha uma opcao: ");
scanf("%d",&sair);
if(sair==1){
for(i=0;i<=VETORY;i++){
for(j=0;j<=VETORY;j++){
matriz[i][j].tipo = matrizaux[i][j].tipo ;
matriz[i][j].vida = matrizaux[i][j].vida;
matriz[i][j].direcao = matrizaux[i][j].direcao;
matriz[i][j].sprite = matrizaux[i][j].sprite;
}
}
}
}
}
while(sair != 2);
break;
case 2 :
break;
}
}
while(menu != 4);
return 0;
}