Jump to content

  • Log In with Google      Sign In   
  • Create Account

My first Delphi game...

  • You cannot reply to this topic
6 replies to this topic

#1 Vortez   Crossbones+   -  Reputation: 2698

Like
2Likes
Like

Posted 04 March 2013 - 07:45 PM

My first delphi game, monopoly, wich i did 12 years ago, looking at it now, it look aaawfull haha.

Here's a "small" snipet

///////////////////////////////////////////////////////////////////////////////////////////////////////////////DECIDE QUOI FAIRE QUAND LE JOUEUR ARRIVE SUR UNE CASE////////////////////////////////////////////////////////////////////////////////////////////////////////////////FUNCTION TMASTERForm.DECISION(APLAYER: TPLAYER): TPLAYER;LABEL RESTART_PTS,JUMPER,KILL1,KILL2,THE_END;VAR CPT: TMINMAXPLAYER;BEGINRESTART_PTS:CASE APLAYER.Pos OF 2,4,7,9,10,12,14,15,17,19,20,22,24,25,27,28,30,32,33,35,38,40:  BEGIN//////////////////////////////////////////////////////////////////////////////////////////////TERRAINS A VENDRE////////////////////////////////////////////////////////////////////////////////////////////   IF TERRAINS.TERRAINS_STATE[APLAYER.POS] = NOTHING THEN BEGIN    //SI LE TERRAIN EST A PERSONNE...    IF APLAYER.KIND <> KdComputer THEN BEGIN    BUYForm := TBUYFORM.Create(SELF);    BUYForm.LABELSTREET.Caption := TERRAINS.TERRAINS_STREET[APLAYER.POS];    IF APLAYER.CASH - TERRAINS.TERRAINS_PRICE[APLAYER.POS] < 0 THEN BUYFORM.BitBtnBUY.ENABLED := FALSE;     IF BUYForm.ShowModal = MROK THEN BEGIN      //CHANGE LE FIELD PROP ET NAME DE TERRAINS ET AJUSTE LE CASH DU JOUEUR      TERRAINS.TERRAINS_PROP[APLAYER.POS] := APLAYER.PlayerName;      TERRAINS.TERRAINS_STATE[APLAYER.POS] := IN_LOC;      APLAYER.Cash := APLAYER.Cash - TERRAINS.TERRAINS_PRICE[APLAYER.POS];     END;     BUYFORM.FREE;    END ELSE BEGIN     IF APLAYER.CASH - TERRAINS.TERRAINS_PRICE[APLAYER.POS] > -1 THEN BEGIN      TERRAINS.TERRAINS_PROP[APLAYER.POS] := APLAYER.PlayerName;      TERRAINS.TERRAINS_STATE[APLAYER.POS] := IN_LOC;      APLAYER.Cash := APLAYER.Cash - TERRAINS.TERRAINS_PRICE[APLAYER.POS];     END;     DELAY(DEF_DELAY);    END;    TERRAINS.Repaint;    UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));    GOTO THE_END;   END;//////////////////////////////////////////////////////////////////////////////////////////////SI LE TERRAIN EST AU JOUEUR EN COURS...////////////////////////////////////////////////////////////////////////////////////////////   //SI LE JOUEUR A ACHETER TOUT LES TERRAINS DE LA MEME COULEUR QUE LE TERRAINS EN COURS...   IF (((APLAYER.PlayerName = TERRAINS.TERRAINS_PROP[2]) AND (APLAYER.PlayerName = TERRAINS.TERRAINS_PROP[4])) AND ((APLAYER.POS = 2) OR (APLAYER.POS = 4))) OR (((APLAYER.PlayerName = TERRAINS.TERRAINS_PROP[7]) AND (APLAYER.PlayerName = TERRAINS.TERRAINS_PROP[9]) AND (APLAYER.PlayerName = TERRAINS.TERRAINS_PROP[10])) AND ((APLAYER.POS = 7) OR (APLAYER.POS = 9) OR (APLAYER.POS = 10))) OR      (((APLAYER.PlayerName = TERRAINS.TERRAINS_PROP[12]) AND (APLAYER.PlayerName = TERRAINS.TERRAINS_PROP[14]) AND (APLAYER.PlayerName = TERRAINS.TERRAINS_PROP[15])) AND ((APLAYER.POS = 12) OR (APLAYER.POS = 14) OR (APLAYER.POS = 15))) OR (((APLAYER.PlayerName = TERRAINS.TERRAINS_PROP[17]) AND (APLAYER.PlayerName = TERRAINS.TERRAINS_PROP[19]) AND (APLAYER.PlayerName = TERRAINS.TERRAINS_PROP[20])) AND ((APLAYER.POS = 17) OR (APLAYER.POS = 19) OR (APLAYER.POS = 20))) OR      (((APLAYER.PlayerName = TERRAINS.TERRAINS_PROP[22]) AND (APLAYER.PlayerName = TERRAINS.TERRAINS_PROP[24]) AND (APLAYER.PlayerName = TERRAINS.TERRAINS_PROP[25])) AND ((APLAYER.POS = 22) OR (APLAYER.POS = 24) OR (APLAYER.POS = 25))) OR (((APLAYER.PlayerName = TERRAINS.TERRAINS_PROP[27]) AND (APLAYER.PlayerName = TERRAINS.TERRAINS_PROP[28]) AND (APLAYER.PlayerName = TERRAINS.TERRAINS_PROP[30])) AND ((APLAYER.POS = 27) OR (APLAYER.POS = 28) OR (APLAYER.POS = 30))) OR      (((APLAYER.PlayerName = TERRAINS.TERRAINS_PROP[32]) AND (APLAYER.PlayerName = TERRAINS.TERRAINS_PROP[33]) AND (APLAYER.PlayerName = TERRAINS.TERRAINS_PROP[35])) AND ((APLAYER.POS = 32) OR (APLAYER.POS = 33) OR (APLAYER.POS = 35))) OR (((APLAYER.PlayerName = TERRAINS.TERRAINS_PROP[38]) AND (APLAYER.PlayerName = TERRAINS.TERRAINS_PROP[40])) AND ((APLAYER.POS = 38) OR (APLAYER.POS = 40)))    THEN BEGIN     //SI LE TERRAINS N'EST PAS HYPOTHEQUER     IF TERRAINS.TERRAINS_MORTAGE[APLAYER.POS] = FALSE THEN      IF APLAYER.KIND <> KdComputer THEN BEGIN      BUILDFORM := TBUILDFORM.CREATE(SELF);      //ENABLE OU DISABLE LES BUTTONS DE BUILDFORM SELON L'ETAT DU TERRAINS      IF (STATETOBYTE(TERRAINS.TERRAINS_STATE[APLAYER.POS]) >= 1) OR (APLAYER.CASH - ((TERRAINS.TERRAINS_HOUSEPRICE[APLAYER.POS])* 1) < 0) THEN BUILDFORM.BitBtn1HOUSE.Enabled := FALSE;      IF (STATETOBYTE(TERRAINS.TERRAINS_STATE[APLAYER.POS]) >= 2) OR (APLAYER.CASH - ((TERRAINS.TERRAINS_HOUSEPRICE[APLAYER.POS])* 2) < 0) THEN BUILDFORM.BitBtn2HOUSE.Enabled := FALSE;      IF (STATETOBYTE(TERRAINS.TERRAINS_STATE[APLAYER.POS]) >= 3) OR (APLAYER.CASH - ((TERRAINS.TERRAINS_HOUSEPRICE[APLAYER.POS])* 3) < 0) THEN BUILDFORM.BitBtn3HOUSE.Enabled := FALSE;      IF (STATETOBYTE(TERRAINS.TERRAINS_STATE[APLAYER.POS]) >= 4) OR (APLAYER.CASH - ((TERRAINS.TERRAINS_HOUSEPRICE[APLAYER.POS])* 4) < 0) THEN BUILDFORM.BitBtn4HOUSE.Enabled := FALSE;      IF (STATETOBYTE(TERRAINS.TERRAINS_STATE[APLAYER.POS]) >= 5) OR (APLAYER.CASH - ((TERRAINS.TERRAINS_HOUSEPRICE[APLAYER.POS])* 5) < 0) THEN BUILDFORM.BitBtn1HOTEL.Enabled := FALSE;      IF BUILDForm.ShowModal = MROK THEN BEGIN       IF BUILDFORM.BitBtn1HOUSE.Tag = 1 THEN BEGIN TERRAINS.TERRAINS_STATE[APLAYER.POS] := ONE_HOUSE; APLAYER.CASH := APLAYER.CASH - ((TERRAINS.TERRAINS_HOUSEPRICE[APLAYER.POS])* 1); END;       IF BUILDFORM.BitBtn2HOUSE.Tag = 1 THEN BEGIN TERRAINS.TERRAINS_STATE[APLAYER.POS] := TWO_HOUSE; APLAYER.CASH := APLAYER.CASH - ((TERRAINS.TERRAINS_HOUSEPRICE[APLAYER.POS])* 2) END;       IF BUILDFORM.BitBtn3HOUSE.Tag = 1 THEN BEGIN TERRAINS.TERRAINS_STATE[APLAYER.POS] := THREE_HOUSE; APLAYER.CASH := APLAYER.CASH - ((TERRAINS.TERRAINS_HOUSEPRICE[APLAYER.POS])* 3) END;       IF BUILDFORM.BitBtn4HOUSE.Tag = 1 THEN BEGIN TERRAINS.TERRAINS_STATE[APLAYER.POS] := FOUR_HOUSE; APLAYER.CASH := APLAYER.CASH - ((TERRAINS.TERRAINS_HOUSEPRICE[APLAYER.POS])* 4) END;       IF BUILDFORM.BitBtn1HOTEL.Tag = 1 THEN BEGIN TERRAINS.TERRAINS_STATE[APLAYER.POS] := A_HOTEL; APLAYER.CASH := APLAYER.CASH - ((TERRAINS.TERRAINS_HOUSEPRICE[APLAYER.POS])* 5) END;       PLANCHE.CHANGE_TERRAINS_STATE(APLAYER.POS,TERRAINS.TERRAINS_STATE[APLAYER.POS],TRUE);      END;      BUILDFORM.FREE;     END ELSE BEGIN      //ACHETE LE MAXIMUM POSSIBLE      IF (STATETOBYTE(TERRAINS.TERRAINS_STATE[APLAYER.POS]) < 5) AND (APLAYER.CASH - ((TERRAINS.TERRAINS_HOUSEPRICE[APLAYER.POS])* 5) > -1) THEN BEGIN TERRAINS.TERRAINS_STATE[APLAYER.POS] := A_HOTEL; APLAYER.CASH := APLAYER.CASH - ((TERRAINS.TERRAINS_HOUSEPRICE[APLAYER.POS])* 5) END;      IF (STATETOBYTE(TERRAINS.TERRAINS_STATE[APLAYER.POS]) < 4) AND (APLAYER.CASH - ((TERRAINS.TERRAINS_HOUSEPRICE[APLAYER.POS])* 4) > -1) THEN BEGIN TERRAINS.TERRAINS_STATE[APLAYER.POS] := FOUR_HOUSE; APLAYER.CASH := APLAYER.CASH - ((TERRAINS.TERRAINS_HOUSEPRICE[APLAYER.POS])* 4) END;      IF (STATETOBYTE(TERRAINS.TERRAINS_STATE[APLAYER.POS]) < 3) AND (APLAYER.CASH - ((TERRAINS.TERRAINS_HOUSEPRICE[APLAYER.POS])* 3) > -1) THEN BEGIN TERRAINS.TERRAINS_STATE[APLAYER.POS] := THREE_HOUSE; APLAYER.CASH := APLAYER.CASH - ((TERRAINS.TERRAINS_HOUSEPRICE[APLAYER.POS])* 3) END;      IF (STATETOBYTE(TERRAINS.TERRAINS_STATE[APLAYER.POS]) < 2) AND (APLAYER.CASH - ((TERRAINS.TERRAINS_HOUSEPRICE[APLAYER.POS])* 2) > -1) THEN BEGIN TERRAINS.TERRAINS_STATE[APLAYER.POS] := TWO_HOUSE; APLAYER.CASH := APLAYER.CASH - ((TERRAINS.TERRAINS_HOUSEPRICE[APLAYER.POS])* 2) END;      IF (STATETOBYTE(TERRAINS.TERRAINS_STATE[APLAYER.POS]) < 1) AND (APLAYER.CASH - ((TERRAINS.TERRAINS_HOUSEPRICE[APLAYER.POS])* 1) > -1) THEN BEGIN TERRAINS.TERRAINS_STATE[APLAYER.POS] := ONE_HOUSE; APLAYER.CASH := APLAYER.CASH - ((TERRAINS.TERRAINS_HOUSEPRICE[APLAYER.POS])* 1) END;      DELAY(DEF_DELAY);     END;     UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));     GOTO THE_END;    END;//////////////////////////////////////////////////////////////////////////////////////////////SI LE TERRAIN EST A UN AUTRE JOUEUR...////////////////////////////////////////////////////////////////////////////////////////////   IF (TERRAINS.TERRAINS_STATE[APLAYER.POS] <> NOTHING) AND (APLAYER.PlayerName <> TERRAINS.TERRAINS_PROP[APLAYER.POS]) THEN BEGIN    //SI LE TERRAINS N'EST PAS HYPOTHEQUER    IF TERRAINS.TERRAINS_MORTAGE[APLAYER.POS] = FALSE THEN    //SI LE JOUEUR EST HUMAIN...    IF APLAYER.KIND <> KdComputer THEN BEGIN     PAIDForm := TPAIDFORM.Create(SELF);     PAIDForm.LABELPAID.Caption := TERRAINS.TERRAINS_STREET[APLAYER.POS];     //DECIDE DU COUT PAR RAPPORT AU NOMBRE DE MAISON OU HOTEL     PAIDForm.LABELPRICETOPAY.TAG := GET_TERRAINS_PRICE(APLAYER.POS,TERRAINS.TERRAINS_STATE[APLAYER.POS]);     PAIDForm.LABELPRICETOPAY.CAPTION := 'YOU HAVE TO PAY ' + INTTOSTR(PAIDForm.LABELPRICETOPAY.TAG) + ' $';     PAIDForm.BitBtnPAID.Caption := 'PAY ' + INTTOSTR(PAIDForm.LABELPRICETOPAY.TAG) + ' $';     //PAS LE CHOIX!     IF PAIDForm.ShowModal = MROK THEN BEGIN      IF APLAYER.Cash - GET_TERRAINS_PRICE(APLAYER.POS,TERRAINS.TERRAINS_STATE[APLAYER.POS]) >= 0 THEN BEGIN//SI LE JOUEUR PEUT PAYER...       APLAYER.Cash := APLAYER.Cash - GET_TERRAINS_PRICE(APLAYER.POS,TERRAINS.TERRAINS_STATE[APLAYER.POS]);       ADD_PLAYERCASH(TERRAINS.TERRAINS_PROP[APLAYER.POS],PAIDForm.LABELPRICETOPAY.TAG);      END ELSE BEGIN //SINON...KILL THE PLAYER!       KILL1:       KILLForm := TKILLFORM.CREATE(SELF);       KILLFORM.LABELBANCKROUT.CAPTION := APLAYER.PLAYERNAME + ' IS BANCKROUT !';       IF KILLForm.SHOWMODAL = MROK THEN BEGIN        ADD_PLAYERCASH(TERRAINS.TERRAINS_PROP[APLAYER.POS],APLAYER.CASH);        KILL_PLAYER(STRTOINT(APLAYER.NAME[7]));        NEXT_PLAYERTURN;        PAIDForm.FREE;        KILLForm.FREE;        IF APLAYER.KIND = KdCOMPUTER THEN DELAY(DEF_DELAY);        GOTO THE_END;       END;      END;     END;     PAIDForm.FREE;     END ELSE BEGIN     //SI LE JOUEUR EST UN CPU      IF APLAYER.Cash - GET_TERRAINS_PRICE(APLAYER.POS,TERRAINS.TERRAINS_STATE[APLAYER.POS]) > -1 THEN BEGIN//SI LE JOUEUR PEUT PAYER...       APLAYER.Cash := APLAYER.Cash - GET_TERRAINS_PRICE(APLAYER.POS,TERRAINS.TERRAINS_STATE[APLAYER.POS]);       ADD_PLAYERCASH(TERRAINS.TERRAINS_PROP[APLAYER.POS],GET_TERRAINS_PRICE(APLAYER.POS,TERRAINS.TERRAINS_STATE[APLAYER.POS]));      END ELSE BEGIN //SINON...KILL THE PLAYER!       GOTO KILL1;      END;      DELAY(DEF_DELAY);     END;     //UPDATE LES PLAYERS_BOARD EN ORDRE     UPADTE_TWO_BOARD(STRTOINT(APLAYER.NAME[7]),GET_PLAYER_PROP_POS_INDEX(APLAYER.POS));    END;   GOTO THE_END;  END;//////////////////////////////////////////////////////////////////////////////////////////////SERVICES//////////////////////////////////////////////////////////////////////////////////////////// 13,29: BEGIN  CASE APLAYER.Pos OF   13: PLAY_THIS(SD_ELECTRICITY);   29: PLAY_THIS(SD_AQUEDUC);  END;//////////////////////////////////////////////////////////////////////////////////////////////SI LE SERVICE EST A VENDRE////////////////////////////////////////////////////////////////////////////////////////////  IF TERRAINS.TERRAINS_STATE[APLAYER.POS] = NOTHING THEN BEGIN   //SI LE JOUEUR EST HUMAIN   IF APLAYER.KIND <> KdComputer THEN BEGIN    BUYForm := TBUYFORM.Create(SELF);    BUYFORM.LABELSTREET.Caption := TERRAINS.TERRAINS_STREET[APLAYER.POS];    APLAYER.FORCE_TO_PAY_10X := FALSE;    IF APLAYER.CASH - TERRAINS.TERRAINS_PRICE[APLAYER.POS] < 0 THEN BUYFORM.BitBtnBUY.ENABLED := FALSE;    IF BUYForm.ShowModal = MROK THEN BEGIN    //CHANGE LE FIELD PROP ET NAME DE TERRAINS ET AJUSTE LE CASH DU JOUEUR    TERRAINS.TERRAINS_PROP[APLAYER.POS] := APLAYER.PlayerName;    TERRAINS.TERRAINS_STATE[APLAYER.POS] := IN_LOC;    APLAYER.Cash := APLAYER.Cash - TERRAINS.TERRAINS_PRICE[APLAYER.POS];    CASE APLAYER.SERVICESCOUNT OF     0: APLAYER.SERVICESCOUNT := 1;     1: APLAYER.SERVICESCOUNT := 2;    END;    END;    BUYFORM.FREE;   END ELSE BEGIN    //SI LE JPUEUR EST UN CPU    IF APLAYER.CASH - TERRAINS.TERRAINS_PRICE[APLAYER.POS] > -1 THEN BEGIN     //CHANGE LE FIELD PROP ET NAME DE TERRAINS ET AJUSTE LE CASH DU JOUEUR     TERRAINS.TERRAINS_PROP[APLAYER.POS] := APLAYER.PlayerName;     TERRAINS.TERRAINS_STATE[APLAYER.POS] := IN_LOC;     APLAYER.Cash := APLAYER.Cash - TERRAINS.TERRAINS_PRICE[APLAYER.POS];     CASE APLAYER.SERVICESCOUNT OF      0: APLAYER.SERVICESCOUNT := 1;      1: APLAYER.SERVICESCOUNT := 2;     END;    END;    DELAY(DEF_DELAY);   END;   TERRAINS.Repaint;   UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));   GOTO THE_END;  END;//////////////////////////////////////////////////////////////////////////////////////////////SI LE SERVICE EST A UN AUTRE JOUEUR////////////////////////////////////////////////////////////////////////////////////////////  IF (TERRAINS.TERRAINS_STATE[APLAYER.POS] <> NOTHING) AND (TERRAINS.TERRAINS_PROP[APLAYER.POS] <> APLAYER.PlayerName) THEN BEGIN   //SI LE TERRAINS N'EST PAS HYPOTHEQUER   IF TERRAINS.TERRAINS_MORTAGE[APLAYER.POS] = FALSE THEN BEGIN    PAIDSERVICESForm := TPAIDSERVICESForm.Create(SELF);    //SI LE JOUEUR EST UN CPU CA VA DECLENCHER LE TIMER DANS L'AUTRE FICHE    IF APLAYER.KIND = KDCOMPUTER THEN PAIDSERVICESForm.TAG := 1;    PAIDSERVICESForm.MAINLabel.Caption := TERRAINS.TERRAINS_STREET[APLAYER.POS];    //TROUVE LE MULTIPLICATEUR    IF APLAYER.FORCE_TO_PAY_10X = FALSE THEN BEGIN     CASE GET_SERVICES_NUM(TERRAINS.TERRAINS_PROP[APLAYER.POS],APLAYER.POS) OF      1: PAIDSERVICESForm.BitBtnPAID.Caption := 'PAID 4X THE DICE RESULT';      2: PAIDSERVICESForm.BitBtnPAID.Caption := 'PAID 10X THE DICE RESULT';     END;    END ELSE BEGIN     PAIDSERVICESForm.BitBtnPAID.Caption := 'PAID 10X THE DICE RESULT';     APLAYER.FORCE_TO_PAY_10X := FALSE;    END;    IF PAIDSERVICESForm.ShowModal = MROK THEN     IF APLAYER.Cash - PAIDSERVICESForm.BitBtnPAID.TAG > -1 THEN BEGIN      APLAYER.Cash := APLAYER.Cash - PAIDSERVICESForm.BitBtnPAID.TAG;      ADD_PLAYERCASH(TERRAINS.TERRAINS_PROP[APLAYER.POS],PAIDSERVICESForm.BitBtnPAID.TAG);     END ELSE BEGIN      KILLForm := TKILLFORM.CREATE(SELF);      KILLFORM.LABELBANCKROUT.CAPTION := APLAYER.PLAYERNAME + ' IS BANCKROUT !';      IF KILLForm.SHOWMODAL = MROK THEN BEGIN       ADD_PLAYERCASH(TERRAINS.TERRAINS_PROP[APLAYER.POS],APLAYER.CASH);       KILL_PLAYER(STRTOINT(APLAYER.NAME[7]));       NEXT_PLAYERTURN;       PAIDSERVICESForm.FREE;       KILLForm.FREE;       GOTO THE_END;      END;     END;    PAIDSERVICESForm.FREE;    //UPDATE LES PLAYERS_BOARD EN ORDRE     UPADTE_TWO_BOARD(STRTOINT(APLAYER.NAME[7]),GET_PLAYER_PROP_POS_INDEX(APLAYER.POS));    END;    GOTO THE_END;   END;  END;//////////////////////////////////////////////////////////////////////////////////////////////TRAINS//////////////////////////////////////////////////////////////////////////////////////////// 6,16,26,36: BEGIN  PLAY_THIS(SD_TRAIN);//////////////////////////////////////////////////////////////////////////////////////////////SI LE TRAIN EST A VENDRE////////////////////////////////////////////////////////////////////////////////////////////  IF TERRAINS.TERRAINS_STATE[APLAYER.POS] = NOTHING THEN BEGIN   IF APLAYER.KIND <> KdComputer THEN BEGIN    BUYForm := TBUYFORM.Create(SELF);    BUYFORM.LABELSTREET.Caption := TERRAINS.TERRAINS_STREET[APLAYER.POS];    APLAYER.FORCE_TO_PAY_DOUBLE := FALSE;    IF APLAYER.CASH - TERRAINS.TERRAINS_PRICE[APLAYER.POS] < 0 THEN BUYFORM.BitBtnBUY.ENABLED := FALSE;    IF BUYForm.ShowModal = MROK THEN BEGIN    //CHANGE LE FIELD PROP ET NAME DE TERRAINS ET AJUSTE LE CASH DU JOUEUR     TERRAINS.TERRAINS_PROP[APLAYER.POS] := APLAYER.PlayerName;     TERRAINS.TERRAINS_STATE[APLAYER.POS] := IN_LOC;     APLAYER.Cash := APLAYER.Cash - TERRAINS.TERRAINS_PRICE[APLAYER.POS];     APLAYER.TRAINSCOUNT := APLAYER.TRAINSCOUNT + 1;    END;    BUYFORM.FREE;   END ELSE BEGIN    IF APLAYER.CASH - TERRAINS.TERRAINS_PRICE[APLAYER.POS] > -1 THEN BEGIN     TERRAINS.TERRAINS_PROP[APLAYER.POS] := APLAYER.PlayerName;     TERRAINS.TERRAINS_STATE[APLAYER.POS] := IN_LOC;     APLAYER.Cash := APLAYER.Cash - TERRAINS.TERRAINS_PRICE[APLAYER.POS];     APLAYER.TRAINSCOUNT := APLAYER.TRAINSCOUNT + 1;    END;   END;   TERRAINS.Repaint;   UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));   GOTO THE_END;  END;//////////////////////////////////////////////////////////////////////////////////////////////SI LE TRAINS EST A UN AUTRE JOUEUR////////////////////////////////////////////////////////////////////////////////////////////  IF (TERRAINS.TERRAINS_STATE[APLAYER.POS] <> NOTHING) AND (TERRAINS.TERRAINS_PROP[APLAYER.POS] <> APLAYER.PlayerName) THEN BEGIN   //SI LE TERRAINS N'EST PAS HYPOTHEQUER   IF TERRAINS.TERRAINS_MORTAGE[APLAYER.POS] = FALSE THEN    //SI LE JOUEUR EST HUMAIN...    IF APLAYER.KIND <> KdComputer THEN BEGIN     PAIDForm := TPAIDForm.Create(SELF);     PAIDForm.MAINPanel.Caption := TERRAINS.TERRAINS_STREET[APLAYER.POS];     //FIND THE AMOUNT TO PAY     PAIDForm.BitBtnPAID.TAG := Trains_CountToTrainsLocPrice(GET_TRAINS_NUM(TERRAINS.TERRAINS_PROP[APLAYER.POS],APLAYER.POS));     //FORCE LE JOUEUR A PAYER LE DOUBLE DU MONTANT     IF APLAYER.FORCE_TO_PAY_DOUBLE = TRUE THEN BEGIN      PAIDForm.BitBtnPAID.TAG := PAIDForm.BitBtnPAID.TAG * 2;      APLAYER.FORCE_TO_PAY_DOUBLE := FALSE;     END;     PAIDForm.LABELPRICETOPAY.CAPTION := 'YOU HAVE TO PAY ' + INTTOSTR(PAIDForm.BitBtnPAID.TAG) + ' $';     PAIDForm.BitBtnPAID.Caption := 'PAY ' + INTTOSTR(PAIDForm.BitBtnPAID.TAG) + ' $';     IF PAIDForm.ShowModal = MROK THEN BEGIN      IF APLAYER.Cash - PAIDForm.BitBtnPAID.TAG >= 0 THEN BEGIN       APLAYER.Cash := APLAYER.Cash - PAIDForm.BitBtnPAID.TAG;       ADD_PLAYERCASH(TERRAINS.TERRAINS_PROP[APLAYER.POS],PAIDForm.BitBtnPAID.TAG);      END ELSE BEGIN       KILL2:       KILLForm := TKILLFORM.CREATE(SELF);       KILLFORM.LABELBANCKROUT.CAPTION := APLAYER.PLAYERNAME + ' IS BANCKROUT !';       IF KILLForm.SHOWMODAL = MROK THEN BEGIN        ADD_PLAYERCASH(TERRAINS.TERRAINS_PROP[APLAYER.POS],APLAYER.CASH);        KILL_PLAYER(STRTOINT(APLAYER.NAME[7]));        NEXT_PLAYERTURN;        PAIDForm.FREE;        KILLForm.FREE;        GOTO THE_END;       END;      END;     END;     PAIDForm.FREE;    END ELSE BEGIN     IF APLAYER.Cash - Trains_CountToTrainsLocPrice(GET_TRAINS_NUM(TERRAINS.TERRAINS_PROP[APLAYER.POS],APLAYER.POS)) >= 0 THEN BEGIN      APLAYER.Cash := APLAYER.Cash - Trains_CountToTrainsLocPrice(GET_TRAINS_NUM(TERRAINS.TERRAINS_PROP[APLAYER.POS],APLAYER.POS));      ADD_PLAYERCASH(TERRAINS.TERRAINS_PROP[APLAYER.POS],Trains_CountToTrainsLocPrice(GET_TRAINS_NUM(TERRAINS.TERRAINS_PROP[APLAYER.POS],APLAYER.POS)));     END ELSE BEGIN      GOTO KILL2;     END;    END;     UPADTE_TWO_BOARD(STRTOINT(APLAYER.NAME[7]),GET_PLAYER_PROP_POS_INDEX(APLAYER.POS));    GOTO THE_END;   END;  END;//////////////////////////////////////////////////////////////////////////////////////////////LES IMPOTS//////////////////////////////////////////////////////////////////////////////////////////// 5:  BEGIN  IF APLAYER.KIND = KDHUMAN THEN BEGIN  IMPOTSForm := TIMPOTSForm.Create(SELF);  IF IMPOTSFORM.ShowModal = MROK THEN BEGIN   IF IMPOTSFORM.BitBtn10PCT.TAG = 1 THEN BEGIN TERRAINS.JACKPOT := TERRAINS.JACKPOT + Round(APLAYER.CASH / 10); APLAYER.CASH := Round(APLAYER.CASH - (APLAYER.CASH / 10)); END;   IF IMPOTSFORM.BitBtn200PIASTE.TAG = 1 THEN BEGIN TERRAINS.JACKPOT := TERRAINS.JACKPOT + 200; APLAYER.CASH := APLAYER.CASH - 200; END;  END;  IMPOTSForm.FREE;  END;  IF APLAYER.KIND = KDCOMPUTER THEN BEGIN   IF APLAYER.CASH < 2000 THEN BEGIN    TERRAINS.JACKPOT := TERRAINS.JACKPOT + Round(APLAYER.CASH / 10); APLAYER.CASH := Round(APLAYER.CASH - (APLAYER.CASH / 10));   END ELSE BEGIN    TERRAINS.JACKPOT := TERRAINS.JACKPOT + 200; APLAYER.CASH := 200;   END;   DELAY(DEF_DELAY);  END;  UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));  GOTO THE_END; END;//////////////////////////////////////////////////////////////////////////////////////////////LES TAXES//////////////////////////////////////////////////////////////////////////////////////////// 39:  BEGIN  IF APLAYER.KIND = KDHUMAN THEN BEGIN   PAIDForm := TPAIDForm.Create(SELF);   PAIDForm.LABELPAID.Caption := 'THE FUCKING TAXES !!!';   PAIDForm.LABELPRICETOPAY.Caption := 'PAY 75 $';   PAIDForm.BitBtnPAID.Caption := 'PAY 75 $';   IF PAIDForm.ShowModal = MROK THEN BEGIN    APLAYER.CASH := APLAYER.CASH - 75;    TERRAINS.JACKPOT := TERRAINS.JACKPOT + 75;   END;   PAIDForm.FREE;  END;  IF APLAYER.KIND = KDCOMPUTER THEN BEGIN   APLAYER.CASH := APLAYER.CASH - 75;   TERRAINS.JACKPOT := TERRAINS.JACKPOT + 75;   DELAY(DEF_DELAY);  END;  UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));  GOTO THE_END; END;//////////////////////////////////////////////////////////////////////////////////////////////GO//////////////////////////////////////////////////////////////////////////////////////////// 1:  BEGIN   PLAY_THIS(SD_GO);   IF APLAYER.CAN_HAVE_400_PIASS_AT_GO = TRUE THEN BEGIN    APLAYER.CASH := APLAYER.CASH + 200;    UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));   END ELSE BEGIN    APLAYER.CAN_HAVE_400_PIASS_AT_GO := TRUE;   END;   GOTO THE_END;  END;//////////////////////////////////////////////////////////////////////////////////////////////LA PRISON//////////////////////////////////////////////////////////////////////////////////////////// 11:  BEGIN   GOTO THE_END;  END;//////////////////////////////////////////////////////////////////////////////////////////////LE JACKPOT//////////////////////////////////////////////////////////////////////////////////////////// 21:  BEGIN  PLAY_THIS(SD_JACKPOT);  APLAYER.CASH := APLAYER.CASH + TERRAINS.JACKPOT;  UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));  DELAY(DEF_DELAY);  TERRAINS.JACKPOT := 500;  TERRAINS.Repaint;  GOTO THE_END; END;//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////LA POLICE//////////////////////////////////////////////////////////////////////////////////////////// 31:  BEGIN   PLAY_THIS(SD_GOTOJAIL);   CRISSE_THE_PLAYER_IN_JAIL(STRTOINT(APLAYER.NAME[7]));   GOTO THE_END;  END;//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////LES CARTES//////////////////////////////////////////////////////////////////////////////////////////// 3,18,34,8,23,37:  BEGIN  PLAY_THIS(SD_CARD);  JUMPER:  IF STRTOINT(MOVEFORM.NumericEditRANDOM_NUMBER.Text) = 0 THEN BEGIN   //SI LE CHECKBOXFIXEDNUM.CHECKED = FALSE   TERRAINS.RAND_CARD_NUM := RANDOM(16) + 1;  END ELSE BEGIN   //SI LE CHECKBOXFIXEDNUM.CHECKED = TRUE   TERRAINS.RAND_CARD_NUM := STRTOINT(MOVEFORM.NumericEditRANDOM_NUMBER.Text);  END;  //SI LA CARTE EST UNE CARTE DE SORTIE DE PRISON  IF TERRAINS.RAND_CARD_NUM = 15 THEN BEGIN  //CHECK SI PERSONNE N'A LA CARTE SINON GOTO JUMPER   CASE APLAYER.POS OF    3,18,34: IF (PriCdYELLOW IN PLAYER1.PRISON_CARD) OR (PriCdYELLOW IN PLAYER2.PRISON_CARD) OR (PriCdYELLOW IN PLAYER3.PRISON_CARD) OR (PriCdYELLOW IN PLAYER4.PRISON_CARD) OR (PriCdYELLOW IN PLAYER5.PRISON_CARD) OR (PriCdYELLOW IN PLAYER6.PRISON_CARD) OR (PriCdYELLOW IN PLAYER7.PRISON_CARD) OR (PriCdYELLOW IN PLAYER8.PRISON_CARD) THEN BEGIN     TERRAINS.RAND_CARD_NUM := RANDOM(16) + 1;     MOVEFORM.NumericEditRANDOM_NUMBER.Text := INTTOSTR(TERRAINS.RAND_CARD_NUM);     GOTO JUMPER;    END;    8,23,37: IF (PriCdBLUE IN PLAYER1.PRISON_CARD) OR (PriCdBLUE IN PLAYER2.PRISON_CARD) OR (PriCdBLUE IN PLAYER3.PRISON_CARD) OR (PriCdBLUE IN PLAYER4.PRISON_CARD) OR (PriCdBLUE IN PLAYER5.PRISON_CARD) OR (PriCdBLUE IN PLAYER6.PRISON_CARD) OR (PriCdBLUE IN PLAYER7.PRISON_CARD) OR (PriCdBLUE IN PLAYER8.PRISON_CARD) THEN BEGIN     TERRAINS.RAND_CARD_NUM := RANDOM(16) + 1;     MOVEFORM.NumericEditRANDOM_NUMBER.Text := INTTOSTR(TERRAINS.RAND_CARD_NUM);     GOTO JUMPER;    END;   END;  END;  TERRAINS.REPAINT; //DRAW THE CORRECT IMAGE INTO TERRAINS  DELAY(DEF_DELAY);      //PAUSE 2 SECONDS   CASE APLAYER.POS OF    3,18,34: BEGIN              CASE TERRAINS.RAND_CARD_NUM OF               1:BEGIN                  APLAYER.Cash := APLAYER.CASH - 50;                  TERRAINS.JACKPOT := TERRAINS.JACKPOT + 50;                  UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));                 END;               2:BEGIN                  APLAYER.Cash := APLAYER.Cash - (40 * HOUSE_COUNTER(APLAYER.PLAYERNAME));                  APLAYER.Cash := APLAYER.Cash - (115 * HOTEL_COUNTER(APLAYER.PLAYERNAME));                  TERRAINS.JACKPOT := TERRAINS.JACKPOT + ((40 * HOUSE_COUNTER(APLAYER.PLAYERNAME)) + (115 * HOTEL_COUNTER(APLAYER.PLAYERNAME)));                  UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));                 END;               3:BEGIN                  APLAYER.Cash := APLAYER.CASH - 100;                  TERRAINS.JACKPOT := TERRAINS.JACKPOT + 100;                  UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));                 END;               4:BEGIN                  APLAYER.Cash := APLAYER.CASH - 150;                  TERRAINS.JACKPOT := TERRAINS.JACKPOT + 150;                  UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));                 END;               5:BEGIN                  APLAYER.Cash := APLAYER.CASH + 10;                  UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));                 END;               6:BEGIN                  APLAYER.Cash := APLAYER.CASH + 45;                  UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));                 END;               7:BEGIN                  APLAYER.Cash := APLAYER.CASH + 200;                  UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));                 END;               8:BEGIN                  APLAYER.Cash := APLAYER.CASH + 20;                  UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));                 END;               9:BEGIN                  FOR CPT := 1 TO 8 DO IF (APLAYER.NAME <> TPlayer(Components[PLAYER_INDX[CPT]]).NAME) AND (TPlayer(Components[PLAYER_INDX[CPT]]).KIND <> KDNONE) THEN BEGIN APLAYER.CASH := APLAYER.CASH + 50; TPlayer(Components[PLAYER_INDX[CPT]]).CASH := TPlayer(Components[PLAYER_INDX[CPT]]).CASH - 50; UPDATE_PLAYER_BOARD(CPT); END;                  UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));                 END;               10:BEGIN                   APLAYER.Cash := APLAYER.CASH + 100;                   UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));                  END;               11:BEGIN                   APLAYER.Cash := APLAYER.CASH + 100;                   UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));                  END;               12:BEGIN                   APLAYER.Cash := APLAYER.CASH + 100;                   UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));                  END;               13:BEGIN                   APLAYER.Cash := APLAYER.CASH + 25;                   UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));                  END;               14:BEGIN                   APLAYER.CAN_HAVE_400_PIASS_AT_GO := FALSE;                   MOVE_BY_A_CARD := TRUE;                   MOVE_PLAYER(STRTOINT(APLAYER.NAME[7]),GET_PLAYER_POS(STRTOINT(APLAYER.NAME[7])),1,DIFOWARD);                  END;               15:BEGIN                   APLAYER.PRISON_CARD := APLAYER.PRISON_CARD + [PriCdYELLOW];                   UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));                  END;               16:BEGIN                   APLAYER.JailTurnLeft := 3;                   MOVE_PLAYER(STRTOINT(APLAYER.NAME[7]),GET_PLAYER_POS(STRTOINT(APLAYER.NAME[7])),11,DIFOWARD);                  END;             END;    END;    8,23,37: BEGIN              CASE TERRAINS.RAND_CARD_NUM OF               1:BEGIN                  FOR CPT := 1 TO 8 DO IF (APLAYER.NAME <> TPlayer(Components[PLAYER_INDX[CPT]]).NAME) AND (TPlayer(Components[PLAYER_INDX[CPT]]).KIND <> KDNONE) THEN BEGIN APLAYER.CASH := APLAYER.CASH - 50; TERRAINS.JACKPOT := TERRAINS.JACKPOT + 50; TPlayer(Components[PLAYER_INDX[CPT]]).CASH := TPlayer(Components[PLAYER_INDX[CPT]]).CASH + 50; UPDATE_PLAYER_BOARD(CPT); END;                  UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));                 END;               2:BEGIN                  APLAYER.Cash := APLAYER.CASH - 15;                  TERRAINS.JACKPOT := TERRAINS.JACKPOT + 15;                  UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));                 END;               3:BEGIN                  APLAYER.Cash := APLAYER.Cash - (25 * HOUSE_COUNTER(APLAYER.PLAYERNAME));                  APLAYER.Cash := APLAYER.Cash - (100 * HOTEL_COUNTER(APLAYER.PLAYERNAME));                  TERRAINS.JACKPOT := TERRAINS.JACKPOT + ((25 * HOUSE_COUNTER(APLAYER.PLAYERNAME)) + (100 * HOTEL_COUNTER(APLAYER.PLAYERNAME)));                  UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));                 END;               4:BEGIN                  APLAYER.Cash := APLAYER.CASH + 150;                  UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));                 END;               5:BEGIN                  APLAYER.Cash := APLAYER.CASH + 50;                  UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));                 END;               6:BEGIN                  APLAYER.FORCE_TO_PAY_10X := TRUE;                  CASE APLAYER.POS OF                   8,37: BEGIN                          MOVE_BY_A_CARD := TRUE;                          MOVE_PLAYER(STRTOINT(APLAYER.NAME[7]),GET_PLAYER_POS(STRTOINT(APLAYER.NAME[7])),13,DIFOWARD);                         END;                   23: BEGIN                        MOVE_BY_A_CARD := TRUE;                        MOVE_PLAYER(STRTOINT(APLAYER.NAME[7]),GET_PLAYER_POS(STRTOINT(APLAYER.NAME[7])),29,DIFOWARD);                       END;                  END;                 END;               7:BEGIN                  MOVE_BY_A_CARD := TRUE;                  MOVE_PLAYER(STRTOINT(APLAYER.NAME[7]),GET_PLAYER_POS(STRTOINT(APLAYER.NAME[7])),25,DIFOWARD);                 END;               8:BEGIN                  APLAYER.CAN_HAVE_400_PIASS_AT_GO := FALSE;                  MOVE_BY_A_CARD := TRUE;                  MOVE_PLAYER(STRTOINT(APLAYER.NAME[7]),GET_PLAYER_POS(STRTOINT(APLAYER.NAME[7])),1,DIFOWARD);                 END;               9:BEGIN                  MOVE_BY_A_CARD := TRUE;                  MOVE_PLAYER(STRTOINT(APLAYER.NAME[7]),GET_PLAYER_POS(STRTOINT(APLAYER.NAME[7])),40,DIFOWARD);                 END;               10:BEGIN                   MOVE_BY_A_CARD := TRUE;                   MOVE_PLAYER(STRTOINT(APLAYER.NAME[7]),GET_PLAYER_POS(STRTOINT(APLAYER.NAME[7])),FIND_LIMIT(GET_PLAYER_POS(STRTOINT(APLAYER.NAME[7])),3,DIREVERSE),DIREVERSE);                  END;               11:BEGIN                   MOVE_BY_A_CARD := TRUE;                   MOVE_PLAYER(STRTOINT(APLAYER.NAME[7]),GET_PLAYER_POS(STRTOINT(APLAYER.NAME[7])),6,DIFOWARD);                  END;               12,14:BEGIN                  APLAYER.FORCE_TO_PAY_DOUBLE := TRUE;                   CASE APLAYER.POS OF                    8: BEGIN                        MOVE_BY_A_CARD := TRUE;                        MOVE_PLAYER(STRTOINT(APLAYER.NAME[7]),GET_PLAYER_POS(STRTOINT(APLAYER.NAME[7])),16,DIFOWARD);                       END;                    23: BEGIN                         MOVE_BY_A_CARD := TRUE;                         MOVE_PLAYER(STRTOINT(APLAYER.NAME[7]),GET_PLAYER_POS(STRTOINT(APLAYER.NAME[7])),26,DIFOWARD);                        END;                    37: BEGIN                         MOVE_BY_A_CARD := TRUE;                         MOVE_PLAYER(STRTOINT(APLAYER.NAME[7]),GET_PLAYER_POS(STRTOINT(APLAYER.NAME[7])),6,DIFOWARD);                        END;                    END;                  END;               13:BEGIN                   MOVE_BY_A_CARD := TRUE;                   MOVE_PLAYER(STRTOINT(APLAYER.NAME[7]),GET_PLAYER_POS(STRTOINT(APLAYER.NAME[7])),12,DIFOWARD);                  END;               15:BEGIN                   APLAYER.PRISON_CARD := APLAYER.PRISON_CARD + [PriCdBLUE];                   UPDATE_PLAYER_BOARD(STRTOINT(APLAYER.NAME[7]));                  END;               16:BEGIN                   APLAYER.JailTurnLeft := 3;                   MOVE_BY_A_CARD := TRUE;                   MOVE_PLAYER(STRTOINT(APLAYER.NAME[7]),GET_PLAYER_POS(STRTOINT(APLAYER.NAME[7])),11,DIFOWARD);                  END;             END;    END;   END;END;////////////////////////////////////////////////////////////////////////////////////////////END;THE_END:RESULT := APLAYER;END;////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CODE A EXECUTER QUAND LE JOUEUR EST EN PRISON///////////////////////////////////////////////////////////////////////////////////////////////////////////////////PROCEDURE TMASTERFORM.JAIL_TURN;BEGIN//SI LE JOUEUR EST HUMAINIF GET_PLAYER_KIND(PLAYERTURN) = KdHUMAN THEN BEGIN JAILForm := TJAILForm.CREATE(SELF); //SI LE JOUEUR NE PEUT PAS PAYER...LE BUTTON PAY VA ETRE DESACTIVÉE IF GET_PLAYER_CASH(PLAYERTURN) - 50 < 0 THEN JAILForm.BitBtnPAY.ENABLED := FALSE; IF JAILForm.ShowModal = MROK THEN BEGIN  //SORT LE JOUEUR DE PRISON  SET_PLAYERJAILTURNLEFT(PLAYERTURN,0);  SET_PLAYER_CASH(PLAYERTURN,GET_PLAYER_CASH(PLAYERTURN) - 50);  TERRAINS.JACKPOT := TERRAINS.JACKPOT + 50;  UPDATE_PLAYER_BOARD(PLAYERTURN); END ELSE BEGIN  //BRASSE LES DEÉ  BITBTNTROW.CLICK; END; JAILForm.FREE;END ELSE BEGIN //SI LE JOUEUR EST UN CPU IF GET_PLAYER_CASH(PLAYERTURN) - 50 > 0 THEN BEGIN  //SORT LE JOUEUR DE PRISON  SET_PLAYERJAILTURNLEFT(PLAYERTURN,0);  SET_PLAYER_CASH(PLAYERTURN,GET_PLAYER_CASH(PLAYERTURN) - 50);  TERRAINS.JACKPOT := TERRAINS.JACKPOT + 50;  UPDATE_PLAYER_BOARD(PLAYERTURN); END ELSE BEGIN  //BRASSE LES DEÉ  BITBTNTROW.CLICK; END;END;END;

 

Here's another part (or "humm, what's pointers and loops for?")

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CREATE THE FORM////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////procedure TMASTERForm.FormCreate(Sender: TObject);begin//PUT THE CURRENT DIRECTORY(PATH) INTO APPDIRGETDIR(0,APPDIR);//FORCE THE SCREEN TO BE 800 x 600(NO TEST TO SEE IF WE CAN ???)RESSWITCHER := TRESSWITCHER.Create(SELF);//DATA TO BE USE WHEN CLOSING THE FORM AND RESIZING SCREEN TO ORIGINAL STATERESSWITCHDAT.W := SCREEN.Width;RESSWITCHDAT.H := SCREEN.Height;RESSWITCHDAT.C := GetDeviceCaps(GetDc(GetDesktopWindow),BITSPIXEL);//CHANGE THE RESOLUTIONResSwitcher.ChangeRes(800,600,RESSWITCHDAT.C);//CREATE THE FORM USED TO MOVE PLAYERS(MUST BE GLOBAL)MOVEFORM := TMOVEFORM.CREATE(SELF);//SET-UP THE MASTERPAGEMASTERFORM.BorderStyle := BSNONE;MASTERFORM.SetBounds(0,0,800,600);BITBTNMORTAGE.ENABLED := FALSE;//CREATE THE PLAYERXPLAYERX1 := CREATE_PLAYER(1,2);PLAYERX2 := CREATE_PLAYER(2,4);PLAYERX3 := CREATE_PLAYER(3,7);PLAYERX4 := CREATE_PLAYER(4,9);PLAYERX5 := CREATE_PLAYER(5,10);PLAYERX6 := CREATE_PLAYER(6,12);PLAYERX7 := CREATE_PLAYER(7,14);PLAYERX8 := CREATE_PLAYER(8,15);PLAYERX9 := CREATE_PLAYER(9,17);PLAYERX10 := CREATE_PLAYER(10,19);PLAYERX11 := CREATE_PLAYER(11,20);PLAYERX12 := CREATE_PLAYER(12,22);PLAYERX13 := CREATE_PLAYER(13,24);PLAYERX14 := CREATE_PLAYER(14,25);PLAYERX15 := CREATE_PLAYER(15,27);PLAYERX16 := CREATE_PLAYER(16,28);PLAYERX17 := CREATE_PLAYER(17,30);PLAYERX18 := CREATE_PLAYER(18,32);PLAYERX19 := CREATE_PLAYER(19,33);PLAYERX20 := CREATE_PLAYER(20,35);PLAYERX21 := CREATE_PLAYER(21,38);PLAYERX22 := CREATE_PLAYER(22,40);PLAYERX23 := CREATE_PLAYER(23,6);PLAYERX24 := CREATE_PLAYER(24,16);PLAYERX25 := CREATE_PLAYER(25,26);PLAYERX26 := CREATE_PLAYER(26,36);PLAYERX27 := CREATE_PLAYER(27,13);PLAYERX28 := CREATE_PLAYER(28,29);//INITIALISE SOME VARIABLESSET_ARRAYS;CAN_CLICK := TRUE;PLAYERTURN := 8;TERRAINS.JACKPOT := 500;//CREATE THE SET-UPFormTRY SET_UPFORM := TSET_UPFORM.Create(SELF); IF SET_UPFORM.SHOWMODAL = MROK THEN BEGIN //SI LE JOUEUR A PESSER SUR OK...  INIT_PLAYER;  PLACE_PLAYERS;  NEXT_PLAYERTURN; END ELSE BEGIN                            //SINON...CLEAN L'APP ET L'ARRETE DIRECTEMENT  SET_UPFORM.Free;  ResSwitcher.ChangeRes(RESSWITCHDAT.W,RESSWITCHDAT.H,RESSWITCHDAT.C);  PLAYERX1.FREE; PLAYERX2.FREE; PLAYERX3.FREE; PLAYERX4.FREE; PLAYERX5.FREE; PLAYERX6.FREE; PLAYERX7.FREE; PLAYERX8.FREE; PLAYERX9.FREE; PLAYERX10.FREE; PLAYERX11.FREE; PLAYERX12.FREE; PLAYERX13.FREE; PLAYERX14.FREE; PLAYERX15.FREE; PLAYERX16.FREE; PLAYERX17.FREE; PLAYERX18.FREE; PLAYERX19.FREE; PLAYERX20.FREE; PLAYERX21.FREE; PLAYERX22.FREE; PLAYERX23.FREE; PLAYERX24.FREE; PLAYERX25.FREE; PLAYERX26.FREE; PLAYERX27.FREE; PLAYERX28.FREE;  MOVEFORM.FREE;  RESSWITCHER.FREE;  HALT; END;FINALLY SET_UPFORM.FREE;END;end;

 

Seeing that after all those years of experience under my belt want to make me cut myself.

 

Enjoy!


Edited by jbadams, 04 April 2013 - 05:56 AM.
Restored post contents from history.


Sponsor:

#2 Sik_the_hedgehog   Crossbones+   -  Reputation: 1757

Like
0Likes
Like

Posted 05 March 2013 - 02:04 AM

Honestly, except for the PLAYERX shenanigans, there isn't that much else that stands out... (not even forcing the resolution change, back in 2001 that was still commonplace)


Don't pay much attention to "the hedgehog" in my nick, it's just because "Sik" was already taken =/ By the way, Sik is pronounced like seek, not like sick.

#3 Vortez   Crossbones+   -  Reputation: 2698

Like
0Likes
Like

Posted 05 March 2013 - 04:22 AM

Yea... And that's only a small portion of the code lol, dunno how i did it. Looking at the forest of "ifs" now is funny tough.

At least i commented the code to keep my sanity laugh.png. What's even more incredible is that the game was working pretty much

flawlessly, with nice graphics for a one-man project. To answer your question, I think i was programming in 800x600 at that time.


Edited by Vortez, 05 March 2013 - 04:34 AM.


#4 Vortez   Crossbones+   -  Reputation: 2698

Like
0Likes
Like

Posted 05 March 2013 - 04:44 AM

Here's the full code...

 

 

Attached Files



#5 ysg   Members   -  Reputation: 192

Like
0Likes
Like

Posted 05 March 2013 - 08:41 AM

Meh, I've seen production code written by "experienced" developers that have if-statements 9 deep... I closed that file and never went back there.



#6 Bacterius   Crossbones+   -  Reputation: 8947

Like
0Likes
Like

Posted 05 March 2013 - 06:13 PM

It ain't that bad, really. Except, um, you do know you can use lowercase in Delphi right? I know the language is not case-sensitive, but all-caps make it really hard to read :)

 

I kind of recognize myself in that second snippet, I clearly remember I tried to implement a sudoku generator about eight years ago without knowing what an array was. Needless to say, I failed.


The slowsort algorithm is a perfect illustration of the multiply and surrender paradigm, which is perhaps the single most important paradigm in the development of reluctant algorithms. The basic multiply and surrender strategy consists in replacing the problem at hand by two or more subproblems, each slightly simpler than the original, and continue multiplying subproblems and subsubproblems recursively in this fashion as long as possible. At some point the subproblems will all become so simple that their solution can no longer be postponed, and we will have to surrender. Experience shows that, in most cases, by the time this point is reached the total work will be substantially higher than what could have been wasted by a more direct approach.

 

- Pessimal Algorithms and Simplexity Analysis


#7 Vortez   Crossbones+   -  Reputation: 2698

Like
0Likes
Like

Posted 05 March 2013 - 06:47 PM

Yea, at that time i was writing everything in caps, still have some old files in my backup all named in caps too ^^







PARTNERS