BNBマップジェネレータは、マップの三種類、各工場、砂、海賊、代表的マップに対応する1,2,3入力、消去可能なランダムな障害を発生させることができます。
BNBマップジェネレータC言語のソースコードは次の通りです。
1の#include <stdio.hの> 2の#include <STDLIB.H> 3の#include <TIME.H> 4 5 チャーCHM。 6 INT G [ 13 ] [ 15 ]。 7 8 空隙 initG(空隙) 9 { 10 INT iは= 0、J = 0 。 11 のために(; I < 13 ; I ++ ) 12 のための(j = 0 ; J < 15 ; J ++ ) 13 G [I] [J] = 0xFFで。 14 リターン; 15 } 16 17 空隙 rndSet(INT N) 18 { 19 ながら(N-- ) 20 { 21 INT X =ランド()%13 。 22 int型、Y =(X> = 3 && X <= 9のrand()%?15:ランド()%9 + 3 )。 23 G [X] [Y] =ランド()%3 + 3 。 24 } 25 リターン。 26 } 27 28 空隙 PRINTG(ボイド) 29 { 30 INT iは= 0、J = 0 。 31 のために(; I < 13 ; I ++ ) 32 のための(j = 0 ; J < 15 ; J ++ ) 33 のprintf(" %02X%のC "、G [I] [J](J < 14?' ':' \ N " )); 34 リターン; 35 } 36 37 空隙 createMap(ボイド) 38 { 39 INT iは= 0、J = 0 。 40 CHAR S [] = " xy_AAAAAAAA.map " 。 41 FILE * fpを= NULL; 42 符号なしのchar [ 472 ] = { 0x2E、0x4D、の0x61、0x70、0x78と、0x79 }。 43 のために(; I < 8 ; I ++ ) 44の S [I + 3 ] =ランド()%26 + ' A '; 45 であれば((FP =のfopen(S、" WB "))== NULL) 46 リターン。 47 のprintf(" ファイル名:\ n%sの\ n " 、S)。 48 [ 0x0Cの ] = 0x04の、[ 0x18のは ] = [ の0x28 ] = 0x0Eの、[ 0x24をは ] [= 0x2C ] = 0x0Cの。 49 のためには、式(I = 0、I < 13 ; I ++ ) 50 のための(j = 0 ; J < 15 ; J ++ ) 51 [ 0x50を + 15 * I + J] =(G [I] [J] == 3 || G [I] [J] == 4?0x08に:0x09の)。 52 のためには、(iは= 0 ; I < 13 ; I ++ ) 53 のための(j = 0 ; J < 15 ; J ++ ) 54 [ 0x113 + 15 * I + J] = G [I] [J]。 55 fwriteの(、1、472 、FP)。 56 FCLOSE(FP)。 57 リターン; 58 } 59 60 INTメイン(ボイド) 61 { 62 システム(" タイトルpaoptMap " )。 63 システム(" カラーF3 " )。 64の プット(" マップ(1〜3)を選択してください:" ); 65 initG()。 66 にsrand((符号なし)時間(NULL))。 67 のscanf(" %のC "、&CHM)。 68 であれば(CHM < ' 1 ' || CHM> ' 3 ' ) 69 { 70 プット(" 入力エラー!" ); 71 システム(" 休止> NUL " )。 72 リターン 0 ; 73 } 74 rndSet(100 )。 75 であれば(CHM!= ' 1 ' ) 76 G [ 6 ] [ 7 ] = 6 。 77 であれば(CHM == ' 3 ' ) 78 G [ 6 ] [ 6] = G [ 6 ] [ 8 ] = 6、G [ 1 ] [ 1 ] = 0、G [ 1 ] [ 13 ] = G [ 11 ] [ 1 ] = 1、G [ 11 ] [ 13 ] = 2 ; 79 PRINTG()。 80 createMap()。 81 システム(" 休止> NUL " )。 82 リターン 0 ; 83 }