Seite: 1 [2] [3] [4] [5] [6] [7] [8] [9] [10] .. [34] [35] >> |
Autor |
Mitteilung |
|
verfasst am: 02.06.2009, 19:11
|
Registrierdatum: 24.07.2007, 10:19
Beiträge: 71
 |
Hier mal mein Lösungsvorschlag für Kap 5 (hab aufg 3 mit case gelöst)
Für Kap3
program UFOJagd;
const
{$IFDEF DEUTSCH}
{$DEFINE CONSTOK}
MissionText = '...';
MissionWin = '...';
MissionLose = '...';
abschuss = 'wurde abgeschossen.';
bezeichnung = ' der Jägerstaffel';
Missname = 'UFO-Angriff';
{$ENDIF}
{$IFDEF ENGLISH} //Englisch
{$DEFINE CONSTOK}
MissionText = '...';
MissionWin = '...';
MissionLose = '...';
abschuss = 'are destroyed.';
bezeichnung = '...';
Missname = 'UFO-Attack';
{$ENDIF}
{$IFNDEF CONSTOK} //... wär hier das vom Englischen
MissionText = 'Sorry, your language isn''t supported yet, so this text go on in English.'
+ '...';
MissionWin = '...';
MissionLose = '...';
abschuss = 'are destroyed.';
bezeichnung = '...';
Missname = 'UFO-Attack';
{$ENDIF}
....
abschuss, bezeichnung, Missname eingeführt, das man die begriffe ins englische/andere Sprache übersetzen kann
so nun Kap4
program Quiz;
const
EinleitungDE = 'Herzlich willkommen zu unserer kleinen '
+ '<yellow>Sp<bluebold>iel<green>show!<white>.'
+ #13#10#13#10
+ 'Wenn du dich gut schlägst, wirst du reich belohnt werden.';
... //die anderen dann auch mit DE erweitern
EinleitungEng='Sorry, English isn''t supported yet';
var
Land : Integer; //Ländervariable: 1= Deutsch, 2=Englisch, 3=etc. etc., 4=pp
abbr : Integer; //Für abbruch des Spieles
...
procedure StartMission;
var Sprachent : TStringList; //Nur wichtig, falls Sprache nicht vorhanden ist
begin
Land:=0;
abbr:=1;
{$IFDEF DEUTSCH} //Deutsche Sprache
Land:=1;
{$ENDIF}
{$IFDEF ENGLISH} //Englische Sprache für Aufgabe 1
Land:=2;
{$ENDIF}
if (Land=0) then //Falls die derzeitige Sprache noch nicht einbezogen wurde
begin
game_api_messageBox('Sorry, your language isn''t supported yet');
game_api_messageBox('Do you want to quit this game?'); //Aufgabe 2
Sprachent:=TStringList.Create;
Sprachent.Add('Yes');
Sprachent.Add('No');
abbr := game_api_ChooseItemBox('Quit?',Sprachent);
Sprachent.Free;
if not (abbr=0) then //wird nur Fortgesetzt wenn er nicht aufhört
begin
game_api_messageBox('Which Language do you want to play this game in?'); //Aufgabe 3
Sprachent:=TStringList.Create;
Sprachent.Add('Deutsch'); //man könnte auch hier das mit abbruch reinbringen als 0te antwort, wollt aber Aufgabe 2 und 3 trennen
Sprachent.Add('English');
Sprachent.Add('etc. etc.'); //etc. etc. und pp nur bsp. für andere sprachen
Sprachent.Add('pp');
Land := game_api_ChooseItemBox('Language?',Sprachent)+1;
Sprachent.Free;
end;
end;
if (Land=0) then abbr:=0; //Fängt fehler ab, fals der spieler auf abbr drückt bei Länderwahl
if not (abbr=0) then
begin
Credits := 0;
case Land of //Beispiel wies Funktioniert bei der Einleitung
1: game_api_messageBox(EinleitungDE);
2: game_api_messageBox(EinleitungEng);
end;
Quiz1; // multiple choice
Quiz2; // Rätsel
Quiz3; // Kopfrechnen
if (Q1_richtig+Q2_richtig+Q3_richtig = Q1_AnzFragen+Q2_AnzFragen+Q3_AnzFragen) then
begin
mission_win;
end
else mission_lose;
end
else mission_win; //kann auch mission_lose sein, je nach dem welches von beiden man ändern will
end;
procedure OnMissionWin;
begin
if not (abbr=0) then //das er nix tut wenn er abbricht
begin
game_api_messageBox(Gewonnen);
savegame_api_FreeCredits(1000000,kbEG);
game_api_messageBox('Sie erhalten 1000000 Credits.');
Zusammenfassung;
end;
end;
...
Problem bei der Lösung ist, das man am ende viele globale Konstanten hat, die man nicht braucht und das man eben sehr oft den case-befehl bemühen muss (überall wo was geschrieben steht). Eine elegantere Lösung ist mir im Moment aber leider auch nicht eingefallen.
P.s.: Das bei case ist nur bsp., weswegen 3 und 4 nicht einbezogen sind (3 und 4 sind ja nur hier als bsp. für andere sprache gedacht) |
|
verfasst am: 27.01.2022, 13:24
|
Registrierdatum: 27.01.2022, 13:07
Beiträge: 318
 |
|
|
verfasst am: 13.06.2022, 18:02
|
Registrierdatum: 29.10.2021, 14:57
Beiträge: 763
 |
|
|
verfasst am: 05.01.2023, 11:58
|
Registrierdatum: 27.11.2021, 09:58
Beiträge: 53
 |
Thank you for assisting me here; I have gained a lot of knowledge from reading your writings. I'm new to this site, and it's great to meet everyone. Please contact with me here if at all possible. quordle game |
|
verfasst am: 22.11.2023, 09:52
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 280976
 |
|
|
verfasst am: 01.12.2023, 11:29
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 280976
 |
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 280976
 |
|
|
verfasst am: 11.01.2024, 23:06
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 280976
 |
|
|
verfasst am: 11.01.2024, 23:07
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 280976
 |
|
|
verfasst am: 11.01.2024, 23:08
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 280976
 |
|
|
verfasst am: 11.01.2024, 23:09
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 280976
 |
|
|
verfasst am: 11.01.2024, 23:10
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 280976
 |
|
|
verfasst am: 11.01.2024, 23:11
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 280976
 |
|
|
verfasst am: 11.01.2024, 23:13
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 280976
 |
|
|
verfasst am: 11.01.2024, 23:14
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 280976
 |
|
|
verfasst am: 11.01.2024, 23:15
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 280976
 |
|
|
verfasst am: 11.01.2024, 23:16
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 280976
 |
|
|
verfasst am: 11.01.2024, 23:17
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 280976
 |
|
|
verfasst am: 11.01.2024, 23:18
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 280976
 |
|
|
verfasst am: 11.01.2024, 23:19
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 280976
 |
|
Seite: 1 [2] [3] [4] [5] [6] [7] [8] [9] [10] .. [34] [35] >> |