Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
krkane
/
Rüütli Vaev
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
1
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
287a8af7
authored
Mar 06, 2024
by
krkane
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Ajutine baaskood
parent
c77ce925
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
181 additions
and
0 deletions
Source/Baaskood.c
Source/Baaskood.c
0 → 100644
View file @
287a8af7
#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
(
"
\n
Valikud:
\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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment