Commit 287a8af7 by krkane

Ajutine baaskood

parent c77ce925
Showing with 181 additions and 0 deletions
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// Struktuur mängija andmete hoidmiseks
struct Player {
int hp; // Elud
int attack; // Rünnaku tugevus
int potion_count; // Võlujookide arv
};
// Struktuur vastase andmete hoidmiseks
struct Enemy {
int hp; // Elud
char type[20]; // Tüüp
int attack; // Rünnaku tugevus
};
// Funktsioon, mis loob mängija
struct Player create_player() {
struct Player player;
player.hp = 100; // 100 elu
player.attack = 10; // 10 rünnaku tugevus
player.potion_count = 3; //3 võlujooki
return player;
}
// Funktsioon võitluse jaoks
int fight(struct Player *player, struct Enemy *enemy) {
int player_hp = player->hp;
int enemy_hp = enemy->hp;
int player_attack, enemy_attack;
while (player_hp > 0 && enemy_hp > 0) {
printf("\nValikud:\n");
printf("1. Ründa\n");
printf("2. Põgene\n");
printf("3. Kasuta võlujooki\n");
printf("4. Lõpeta enda käik\n");
printf("Vali tegevus: ");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
player_attack = rand() % player->attack + 1; // mängija rünnak
enemy_attack = rand() % enemy->attack + 1; // vastase rünnak
if (player_attack > enemy_attack) {
enemy_hp -= player_attack;
printf("Vastane kaotas %d elu.\n", player_attack);
} else if (enemy_attack > player_attack) {
player_hp -= enemy_attack;
printf("Sa kaotasid %d elu.\n", enemy_attack);
} else {
printf("Kumbki ei saanud viga.\n");
}
break;
case 2:
printf("Sa põgenesid vaenlase eest.\n");
return 0; // Mäng läbi, mängija põgenes
case 3:
use_potion(&player); // Saada mängija struktuuri viide funktsioonile
break;
case 4:
printf("Sa lõpetasid enda käigu.\n");
break;
default:
printf("Vale valik. Vali uuesti.\n");
}
if (player_hp <= 0) {
printf("Sa kaotasid.\n");
return 0; // Mängija kaotas
} else if (enemy_hp <= 0) {
printf("Sa võitsid!\n");
return 1; // Mängija võitis
}
}
}
// Funktsioon, mis liigub järgmisesse koopasse
void move_next_room() {
printf("Järgmine koobas. Vali suund:\n");
printf("1. Vasakule\n");
printf("2. Paremale\n");
printf("Vali suund: ");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
printf("Liigud vasakule järgmisesse sügavusse.\n");
break;
case 2:
printf("Liigud paremale järgmisesse sügavusse.\n");
break;
default:
printf("Vale valik. Liigud otse järgmisesse sügavusse.\n");
}
}
// Funktsioon, mis suurendab mängija elusid ja rünnaku tugevust peale võitlust
void level_up(struct Player *player) {
player->hp += 20; // Lisame mängijale 20 HP-d
player->attack += 5; // Lisame mängijale 5 rünnaku tugevust
printf("Mängija omistas võitluses au! Sa said 20 lisa HP-d ja 5 lisa rünnaku tugevust!\n");
}
// Funktsioon mängija võlujoogi kasutamiseks
void use_potion(struct Player *player) {
if (player->potion_count > 0) {
player->hp += 25; // Lisame mängijale 25 HP-d
player->potion_count--; // Vähendame mängija võlujookide arvu
printf("Kasutasid võlujooki. Sa said 25 elu tagasi.\n");
} else {
printf("Sul pole ühtegi jooki!\n");
}
}
// Funktsioon, mis genereerib vastase vastavalt alistatud vastaste arvule
struct Enemy generate_enemy(int defeated_enemies) {
struct Enemy enemy;
// suurendab vaenlase elude arvu, kasutades alistatud vastaste arvu
enemy.hp = 50 + defeated_enemies * 10; // Näiteks 50 + (10 * alistatud vastaste arv)
//vaenlase rünnaku tugevus vastavalt tüübile
switch (defeated_enemies) {
case 0:
strcpy(enemy.type, "Päkapikk"); // Päkapikk
enemy.attack = 5; // Näiteks 5
break;
case 1:
strcpy(enemy.type, "Ork"); // Ork
enemy.attack = 8; // Näiteks 8
break;
case 2:
strcpy(enemy.type, "Smurf"); // Smurf
enemy.attack = 10; // Näiteks 10
break;
case 3:
strcpy(enemy.type, "Deemon"); // Deemon
enemy.attack = 15; // Näiteks 15
break;
default:
strcpy(enemy.type, "Bandiit"); // Bandiit
enemy.attack = 20; // Näiteks 20
}
return enemy;
}
int main() {
srand(time(0)); // juhuslike numbrite generaator
struct Player player = create_player();
int defeated_enemies = 0;
printf("Tere tulemast mängu! Sinu ülesanne on alistada koopas kõik pätid ja röövlid.\n");
while (1) {
struct Enemy enemy = generate_enemy(defeated_enemies);
printf("Vastane %s, eludega %d ja rünnaku tugevusega %d tahab sinuga kakelda.\n", enemy.type, enemy.hp, enemy.attack);
int result = fight(&player, &enemy);
if (result == 1) {
defeated_enemies++;
level_up(&player);
move_next_room();
} else {
break;
}
}
printf("Mäng läbi! alistasid %d vaenlast.\n", defeated_enemies);
return 0;
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment