Banner left   Banner center   Banner right

Germanenglish Home · News · Diary · Screenshots · Documentation (Wiki) · Downloads · Guestbook · Forum

Home · Benutzer registrieren · Suchen · Statistik · FAQ · Benutzerliste

Zur Zeit online: keiner ausser dir

 X-Force - Fight For Destiny - Forum —› X-Skript / Developer-Pack —› Lösungsvorschlag Aufgabe Kap3

Autor Mitteilung
verfasst am: 15.08.2007, 17:32 · Edited by: Eioi
Registrierdatum: 24.07.2007, 10:19

 Beiträge: 71
So nun meine Lösungsvorschläge für Die Aufagben Kapitel 3

aufgabe 1
program AK3N1;

const
  MissionWin = 'Mission gewonnen' ;      // Mission gewonnen
  MissionLoose = 'Mission verloren' ;    // Mission verloren

// Diese Prozedur wird aufgerufen, wenn die Mission gewonnen wurde
procedure OnMissionWin;
begin
  game_api_messageBox(MissionWin);
end;

// wird aufgerufen, wenn die Mission verloren wurde
procedure OnMissionLoose;
begin
  game_api_messageBox(MissionLoose);
end;

procedure StartMission;
var
  UFO : TUFO;
begin
  UFO:=ufo_api_CreateUFO(); // UFO erzeugen
  register_ufo(UFO);
  // UFOs erzeugen, Missionstext anzeigen, usw.
end;

begin
  MissionName := 'AK3N1';
  MissionType := mzUFO;
end.
aufgabe 2
program AK3N2;

const
  Message1 = 'Die Zahl ist durch 3 Teilbar';
  Message2 = 'Die Zahl ist nicht durch 3 Teilbar';

procedure StartMission;
{var
  Zah : Integer;}
begin
  {Zah:=random(99)+1;}
  if ((random(99)+1) mod 3=0) then
  begin
    game_api_messageBox(Message1);
  end
  else
  begin
    game_api_messageBox(Message2);
  end;
end;

begin
  MissionName := 'AK3N2';
end.
Zah kann man benutzen, wenn man die Zahl später noch braucht. aufgabe 3 und 4
program AK3N3u4;

const
  MissionWin1 = 'Gleich im 1. Versuch eine 6! Du bist ein echter Glückspilz.' ;
  MissionWin = 'Glückwunsch, du hast eine 6 gewürfelt.' ;
  MissionLoose = 'Du hast das Spiel verloren' ;

var
  Zaeh : Integer;

procedure OnMissionWin;
begin
  game_api_messageBox('Du hast das Spiel gewonnen');
end;

procedure OnMissionLoose;
begin
  game_api_messageBox(MissionLoose);
end;

procedure StartMission;
var
  wurf : Integer;
begin
  for zaeh:=1 to 6 do
  begin
    wurf:= random(6)+1;
    if (wurf=6) then
    begin
      if (Zaeh=1) then game_api_messageBox(MissionWin1)
      else game_api_messageBox(MissionWin);
      Mission_Win;
    end
    else
    begin
      game_api_messageBox('Schade, leider Keine 6. Probiers nochmal!');
      if (zaeh=6) then Mission_Loose;
    end;
  end;
end;

begin
  MissionName := 'AK3N3u4';
end.
Wenn man nur Aufgabe 3 lösen will, kann man bei else immer wieder zaeh auf 1 setzen, solange bis man gewonnen hat, bzw. bei einen einmaligen durchgang kann man zaeh und die schleife weglassen. aufgabe 5
..// vorher wie immer
procedure StartMission;
var
  Index : Integer;
  UFOs     : Integer;
  UFO : TUFO;
  UFOModel : TUFOModel;
begin
  ...  // vorher so wie immer
  
  // zufällige UFO-Anzahl ermitteln
  UFOs     := random(5) + 1;
  ufo_api_GetUFOModelByID(9424296, UFOModel);    // UFOModel des Klotz Typ 1 (gal war)

  for Index := 1 to UFOs do
  begin
    UFO :=  ufo_api_CreateUFOFromModel(UFOModel);  // UFO entsprechend dem UFOModel erzeugen
    register_ufo(UFO);
    UFO.Name := UFO.Name + ' der Jägerstaffel';
  end;

  // Bei Ablauf des Zeitlimits wird die Prozedur TimeUp aufgerufen
  register_timed_event(@TimeUp,Nil,UFOs*90);
end;

begin
  MissionName := 'UFO-Angriff';
  MissionType := mzUFO;
end.
Man könnte die ID's auch per schleife feststellen (dauert wahnsinnig lange) oder wahrscheinlich auch so genauso wie die Aliens in Kapitel 6. aufagbe 6
...//vorher wie immer
procedure StartMission;
var
  Index : Integer;
  UFOs     : Integer;
  UFO : TUFO;
  UFOModel : TUFOModel;
begin
  ...//vorher so wie immer 
  // zufällige UFO-Anzahl ermitteln
  UFOs     := random(5) + 1;

  UFO :=  ufo_api_CreateUFO();
  register_ufo(UFO);
  UFO.Name := UFO.Name + ' der Jägerstaffel';
  if (UFOs>1) then
  begin
    UFOModel := UFO.Model;			     //damit immer das selbe UFO erzeugt wird
    for Index := 1 to UFOs-1 do
    begin
      ufo_api_CreateUFOFromModel(UFOModel);          // UFO erzeugen
      register_ufo(UFO);
      UFO.Name := UFO.Name + ' der Jägerstaffel';
    end;
  end;
  // Bei Ablauf des Zeitlimits wird die Prozedur TimeUp aufgerufen
  register_timed_event(@TimeUp,Nil,UFOs*90);
end;

begin
  MissionName := 'UFO-Angriff';
  MissionType := mzUFO;
end.


Dadurch das beim Model alles übergeben wird, wird immer das selbe Ufo danach erzeugt, wobei noch überprüft wird ob mehr als 1 Ufo erzeugt werden soll, damit man nicht mehr Ufos erzeugt.

Ich denk mal, das man die aufgaben bestimmt noch eleganter lösen kann und ich hoff ich hab die Aufgaben richtig verstanden.
verfasst am: 27.01.2022, 13:28
Registrierdatum: 27.01.2022, 13:07

 Beiträge: 318
Being around you makes everything better. https://homehealthcaresanantoniotexas.com
verfasst am: 13.06.2022, 17:58
Registrierdatum: 29.10.2021, 14:57

 Beiträge: 763
Good article, but it would be better if in future you can share more about this subject. Keep posting. customclosetsdesignreno.com
verfasst am: 22.11.2023, 09:21
Registrierdatum: 22.11.2023, 07:10

 Beiträge: 47355
врем128BettBettЛукьпоÑмPietВаÑиGeorпоющSonyProfTescSimpPianSpeeавтоKenySounBonuSeghPublМитр
JuliÐтмоMariKarlEsteHeadМураFranJackBodyHeinВоорунивCleaNiveFranтрейWhitMargИллюXVIIВеллDove
PhilПиÑаКазаStouКитаGreaGuilРубиJosiИллюВолкShawХромMariЖукоXVIIHomoСкофпокиГуанGregВивиXVII
EnigWindSlimVirtРадзPremСодеWindJohnRighMorgJeweJeweменÑОдинцветAgatупраEricпробNellClubGaum
ArtsДрагRSapSideCasuФарфWaltLiliWindJeweФедоTeleоконGPSMEpsoFabl(ОзвBACHБублVitaWindРоÑÑCand
AmbeукраÐÐСепродDAXXшампVestStopSylvCrazWhitSQuiCharFiesESSGBestМихаHyunGareMataкомпÑодеJazz
ValiупакWorlподаВыÑодеморедкIrisMarcMoleÑзыкBorkКамоPlazCageЛитР
verfasst am: 01.12.2023, 10:58
Registrierdatum: 22.11.2023, 07:10

 Beiträge: 47355
audiobookkeeper.rucottagenet.rueyesvision.rueyesvisions.comfactoringfee.rufilmzones.rugadwall.rugaffertape.rugageboard.rugagrule.rugallduct.rugalvanometric.rugangforeman.rugangwayplatform.rugarbagechute.rugardeningleave.rugascautery.rugashbucket.rugasreturn.rugatedsweep.rugaugemodel.rugaussianfilter.rugearpitchdiameter.ru
geartreating.rugeneralizedanalysis.rugeneralprovisions.rugeophysicalprobe.rugeriatricnurse.rugetintoaflap.rugetthebounce.ruhabeascorpus.ruhabituate.ruhackedbolt.ruhackworker.ruhadronicannihilation.ruhaemagglutinin.ruhailsquall.ruhairysphere.ruhalforderfringe.ruhalfsiblings.ruhallofresidence.ruhaltstate.ruhandcoding.ruhandportedhead.ruhandradar.ruhandsfreetelephone.ru
hangonpart.ruhaphazardwinding.ruhardalloyteeth.ruhardasiron.ruhardenedconcrete.ruharmonicinteraction.ruhartlaubgoose.ruhatchholddown.ruhaveafinetime.ruhazardousatmosphere.ruheadregulator.ruheartofgold.ruheatageingresistance.ruheatinggas.ruheavydutymetalcutting.rujacketedwall.rujapanesecedar.rujibtypecrane.rujobabandonment.rujobstress.rujogformation.rujointcapsule.rujointsealingmaterial.ru
journallubricator.rujuicecatcher.rujunctionofchannels.rujusticiablehomicide.rujuxtapositiontwin.rukaposidisease.rukeepagoodoffing.rukeepsmthinhand.rukentishglory.rukerbweight.rukerrrotation.rukeymanassurance.rukeyserum.rukickplate.rukillthefattedcalf.rukilowattsecond.rukingweakfish.rukinozones.rukleinbottle.rukneejoint.ruknifesethouse.ruknockonatom.ruknowledgestate.ru
kondoferromagnet.rulabeledgraph.rulaborracket.rulabourearnings.rulabourleasing.rulaburnumtree.rulacingcourse.rulacrimalpoint.rulactogenicfactor.rulacunarycoefficient.ruladletreatediron.rulaggingload.rulaissezaller.rulambdatransition.rulaminatedmaterial.rulammasshoot.rulamphouse.rulancecorporal.rulancingdie.rulandingdoor.rulandmarksensor.rulandreform.rulanduseratio.ru
languagelaboratory.rulargeheart.rulasercalibration.rulaserlens.rulaserpulse.rulaterevent.rulatrinesergeant.rulayabout.ruleadcoating.ruleadingfirm.rulearningcurve.ruleaveword.rumachinesensible.rumagneticequator.rumagnetotelluricfield.rumailinghouse.rumajorconcern.rumammasdarling.ru



Du musst dich registrieren um auf dieses Thema zu antworten.
Login :: » Name » Passwort

Ladezeit (sec.): 0.024 · Powered by miniBB 1.6 with parts of 1.7 © 2001-2003