blob: 02116e7a02e26e5e4526bd61710ae408ae6f61ad (
plain) (
tree)
|
|
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int n=5,m=5;
char input,map[50][50];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
map[i][j] = '-';
}
}
int stop=0,i=0,moves=0,score=0,pos[2] = {n/2,m/2};
int bonus[2];
int trap[2] ;
int death[2];
map[pos[0]][pos[1]] = '+';
do{
bonus[0] = arc4random_uniform(n); bonus[1] = arc4random_uniform(m);
trap[0] = arc4random_uniform(n); trap[1] = arc4random_uniform(m);
death[0] = arc4random_uniform(n); death[1] = arc4random_uniform(m);
}while((bonus[0] == trap[0] && bonus[1] == trap[1]) || (bonus[0] == death[0] && bonus[1] == death[1]) || (trap[0] == death[0] && trap[1] == death[1]) || (bonus[0] == pos[0] && bonus[1] == pos[1]) || (trap[0] == pos[0] && trap[1] == pos[1]) || (death[0] == pos[0] && death[1] == pos[1]));
map[bonus[0]][bonus[1]] = 'B';
map[trap[0]][trap[1]] = 'T';
map[death[0]][death[1]] = 'D';
do{
printf("Map:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
printf("%c ", map[i][j]);
}
printf("\n");
}
printf("Score: %d\n", score);
printf("Moves: %d\n", moves);
printf("Enter a direction (w,a,s,d) or c to quit: ");
scanf(" %c", &input);
// pos[0] updown pos[1] lr
if (input == 'w') {
printf("Moving up\n");
map[pos[0]][pos[1]] = '-';
if (pos[0] == 0) {
pos[0] = n-1;
}
else {
pos[0]--;
}
} else if (input == 'a') {
printf("Moving left\n");
map[pos[0]][pos[1]] = '-';
if (pos[1] == 0) {
pos[1] = m-1;
}
else {
pos[1]--;
}
} else if (input == 's') {
printf("Moving down\n");
map[pos[0]][pos[1]] = '-';
if (pos[0] == n-1) {
pos[0] = 0;
}
else {
pos[0]++;
}
} else if (input == 'd') {
printf("Moving right\n");
map[pos[0]][pos[1]] = '-';
if (pos[1] == m-1) {
pos[1] = 0;
}
else {
pos[1]++;
}
} else if (input == 'c') {
printf("Quitting\n");
} else {
printf("Invalid input\n");
}
map[pos[0]][pos[1]] = '+';
if (pos[0] == bonus[0] && pos[1] == bonus[1]) {
score++;
do{
bonus[0]= arc4random_uniform(n);
bonus[1]= arc4random_uniform(m);
}while((bonus[0] == trap[0] && bonus[1] == trap[1]) || (bonus[0] == death[0] && bonus[1] == death[1]) || (bonus[0] == pos[0] && bonus[1] == pos[1]));
}
if (pos[0] == trap[0] && pos[1] == trap[1]) {
score--;
do{
trap[0]= arc4random_uniform(n);
trap[1]= arc4random_uniform(m);
}while((trap[0] == bonus[0] && trap[1] == bonus[1]) || (trap[0] == death[0] && trap[1] == death[1]) || (trap[0] == pos[0] && trap[1] == pos[1]));
}
if (pos[0] == death[0] && pos[1] == death[1]) {
score = 0;
do{
death[0]= arc4random_uniform(n);
death[1]= arc4random_uniform(m);
}while((death[0] == bonus[0] && death[1] == bonus[1]) || (death[0] == trap[0] && death[1] == trap[1]) || (death[0] == pos[0] && death[1] == pos[1]));
}
if (score % 3 == 0 && score != 0 && stop == 0) {
map[death[0]][death[1]] = '-';
do{
death[0]= arc4random_uniform(n);
death[1]= arc4random_uniform(m);
}while((death[0] == bonus[0] && death[1] == bonus[1]) || (death[0] == trap[0] && death[1] == trap[1]) || (death[0] == pos[0] && death[1] == pos[1]));
stop = 1;
}
else if (score % 3 != 0) {
stop = 0;
}
if (moves % 5 == 0 && moves != 0) {
do{
map[trap[0]][trap[1]] = '-';
trap[0]= arc4random_uniform(n);
trap[1]= arc4random_uniform(m);
}while((trap[0] == bonus[0] && trap[1] == bonus[1]) || (trap[0] == death[0] && trap[1] == death[1]) || (trap[0] == pos[0] && trap[1] == pos[1]));
}
map[bonus[0]][bonus[1]] = 'B';
map[trap[0]][trap[1]] = 'T';
map[death[0]][death[1]] = 'D';
moves++;
}while(input != 'c');
return 0;
}
|