Krishna Lalith
Published

Master Mind Game

Arduino guesses your 4 digited number with few clues.

IntermediateShowcase (no instructions)1 hour20
Master Mind Game

Story

Read more

Schematics

uploads2ftmp2f6fbde46c-7cd6-44ea-b2bc-1f935306b69a2fimg_20190403_193909_WBURYB0EK8.jpg

Code

MastersMind_4x4Keypad_TM1637.ino

Arduino
#include <Keypad.h>
#include <TM1637Display.h>

#define CLK 10
#define DIO 11
//#define SZE 5040
#define SZE 360

TM1637Display display(CLK, DIO);

char keys[4][4] = {
  {'M', 'N', 'O', 'P'},
  {'I', 'J', 'K', 'L'},
  {'E', 'F', 'G', 'H'},
  {'A', 'B', 'C', 'D'}
};
byte rowPins[4] = {2, 3, 4, 5};
byte colPins[4] = {6, 7, 8, 9};

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, 4, 4 );
//String  PERM[SZE] = {"0123", "0132", "0213", "0231", "0321", "0312", "1023", "1032", "1203", "1230", "1320", "1302", "2103", "2130", "2013", "2031", "2301", "2310", "3120", "3102", "3210", "3201", "3021", "3012", "0124", "0142", "0214", "0241", "0421", "0412", "1024", "1042", "1204", "1240", "1420", "1402", "2104", "2140", "2014", "2041", "2401", "2410", "4120", "4102", "4210", "4201", "4021", "4012", "0125", "0152", "0215", "0251", "0521", "0512", "1025", "1052", "1205", "1250", "1520", "1502", "2105", "2150", "2015", "2051", "2501", "2510", "5120", "5102", "5210", "5201", "5021", "5012", "0126", "0162", "0216", "0261", "0621", "0612", "1026", "1062", "1206", "1260", "1620", "1602", "2106", "2160", "2016", "2061", "2601", "2610", "6120", "6102", "6210", "6201", "6021", "6012", "0127", "0172", "0217", "0271", "0721", "0712", "1027", "1072", "1207", "1270", "1720", "1702", "2107", "2170", "2017", "2071", "2701", "2710", "7120", "7102", "7210", "7201", "7021", "7012", "0128", "0182", "0218", "0281", "0821", "0812", "1028", "1082", "1208", "1280", "1820", "1802", "2108", "2180", "2018", "2081", "2801", "2810", "8120", "8102", "8210", "8201", "8021", "8012", "0129", "0192", "0219", "0291", "0921", "0912", "1029", "1092", "1209", "1290", "1920", "1902", "2109", "2190", "2019", "2091", "2901", "2910", "9120", "9102", "9210", "9201", "9021", "9012", "0134", "0143", "0314", "0341", "0431", "0413", "1034", "1043", "1304", "1340", "1430", "1403", "3104", "3140", "3014", "3041", "3401", "3410", "4130", "4103", "4310", "4301", "4031", "4013", "0135", "0153", "0315", "0351", "0531", "0513", "1035", "1053", "1305", "1350", "1530", "1503", "3105", "3150", "3015", "3051", "3501", "3510", "5130", "5103", "5310", "5301", "5031", "5013", "0136", "0163", "0316", "0361", "0631", "0613", "1036", "1063", "1306", "1360", "1630", "1603", "3106", "3160", "3016", "3061", "3601", "3610", "6130", "6103", "6310", "6301", "6031", "6013", "0137", "0173", "0317", "0371", "0731", "0713", "1037", "1073", "1307", "1370", "1730", "1703", "3107", "3170", "3017", "3071", "3701", "3710", "7130", "7103", "7310", "7301", "7031", "7013", "0138", "0183", "0318", "0381", "0831", "0813", "1038", "1083", "1308", "1380", "1830", "1803", "3108", "3180", "3018", "3081", "3801", "3810", "8130", "8103", "8310", "8301", "8031", "8013", "0139", "0193", "0319", "0391", "0931", "0913", "1039", "1093", "1309", "1390", "1930", "1903", "3109", "3190", "3019", "3091", "3901", "3910", "9130", "9103", "9310", "9301", "9031", "9013", "0145", "0154", "0415", "0451", "0541", "0514", "1045", "1054", "1405", "1450", "1540", "1504", "4105", "4150", "4015", "4051", "4501", "4510", "5140", "5104", "5410", "5401", "5041", "5014", "0146", "0164", "0416", "0461", "0641", "0614", "1046", "1064", "1406", "1460", "1640", "1604", "4106", "4160", "4016", "4061", "4601", "4610", "6140", "6104", "6410", "6401", "6041", "6014", "0147", "0174", "0417", "0471", "0741", "0714", "1047", "1074", "1407", "1470", "1740", "1704", "4107", "4170", "4017", "4071", "4701", "4710", "7140", "7104", "7410", "7401", "7041", "7014", "0148", "0184", "0418", "0481", "0841", "0814", "1048", "1084", "1408", "1480", "1840", "1804", "4108", "4180", "4018", "4081", "4801", "4810", "8140", "8104", "8410", "8401", "8041", "8014", "0149", "0194", "0419", "0491", "0941", "0914", "1049", "1094", "1409", "1490", "1940", "1904", "4109", "4190", "4019", "4091", "4901", "4910", "9140", "9104", "9410", "9401", "9041", "9014", "0156", "0165", "0516", "0561", "0651", "0615", "1056", "1065", "1506", "1560", "1650", "1605", "5106", "5160", "5016", "5061", "5601", "5610", "6150", "6105", "6510", "6501", "6051", "6015", "0157", "0175", "0517", "0571", "0751", "0715", "1057", "1075", "1507", "1570", "1750", "1705", "5107", "5170", "5017", "5071", "5701", "5710", "7150", "7105", "7510", "7501", "7051", "7015", "0158", "0185", "0518", "0581", "0851", "0815", "1058", "1085", "1508", "1580", "1850", "1805", "5108", "5180", "5018", "5081", "5801", "5810", "8150", "8105", "8510", "8501", "8051", "8015", "0159", "0195", "0519", "0591", "0951", "0915", "1059", "1095", "1509", "1590", "1950", "1905", "5109", "5190", "5019", "5091", "5901", "5910", "9150", "9105", "9510", "9501", "9051", "9015", "0167", "0176", "0617", "0671", "0761", "0716", "1067", "1076", "1607", "1670", "1760", "1706", "6107", "6170", "6017", "6071", "6701", "6710", "7160", "7106", "7610", "7601", "7061", "7016", "0168", "0186", "0618", "0681", "0861", "0816", "1068", "1086", "1608", "1680", "1860", "1806", "6108", "6180", "6018", "6081", "6801", "6810", "8160", "8106", "8610", "8601", "8061", "8016", "0169", "0196", "0619", "0691", "0961", "0916", "1069", "1096", "1609", "1690", "1960", "1906", "6109", "6190", "6019", "6091", "6901", "6910", "9160", "9106", "9610", "9601", "9061", "9016", "0178", "0187", "0718", "0781", "0871", "0817", "1078", "1087", "1708", "1780", "1870", "1807", "7108", "7180", "7018", "7081", "7801", "7810", "8170", "8107", "8710", "8701", "8071", "8017", "0179", "0197", "0719", "0791", "0971", "0917", "1079", "1097", "1709", "1790", "1970", "1907", "7109", "7190", "7019", "7091", "7901", "7910", "9170", "9107", "9710", "9701", "9071", "9017", "0189", "0198", "0819", "0891", "0981", "0918", "1089", "1098", "1809", "1890", "1980", "1908", "8109", "8190", "8019", "8091", "8901", "8910", "9180", "9108", "9810", "9801", "9081", "9018", "0234", "0243", "0324", "0342", "0432", "0423", "2034", "2043", "2304", "2340", "2430", "2403", "3204", "3240", "3024", "3042", "3402", "3420", "4230", "4203", "4320", "4302", "4032", "4023", "0235", "0253", "0325", "0352", "0532", "0523", "2035", "2053", "2305", "2350", "2530", "2503", "3205", "3250", "3025", "3052", "3502", "3520", "5230", "5203", "5320", "5302", "5032", "5023", "0236", "0263", "0326", "0362", "0632", "0623", "2036", "2063", "2306", "2360", "2630", "2603", "3206", "3260", "3026", "3062", "3602", "3620", "6230", "6203", "6320", "6302", "6032", "6023", "0237", "0273", "0327", "0372", "0732", "0723", "2037", "2073", "2307", "2370", "2730", "2703", "3207", "3270", "3027", "3072", "3702", "3720", "7230", "7203", "7320", "7302", "7032", "7023", "0238", "0283", "0328", "0382", "0832", "0823", "2038", "2083", "2308", "2380", "2830", "2803", "3208", "3280", "3028", "3082", "3802", "3820", "8230", "8203", "8320", "8302", "8032", "8023", "0239", "0293", "0329", "0392", "0932", "0923", "2039", "2093", "2309", "2390", "2930", "2903", "3209", "3290", "3029", "3092", "3902", "3920", "9230", "9203", "9320", "9302", "9032", "9023", "0245", "0254", "0425", "0452", "0542", "0524", "2045", "2054", "2405", "2450", "2540", "2504", "4205", "4250", "4025", "4052", "4502", "4520", "5240", "5204", "5420", "5402", "5042", "5024", "0246", "0264", "0426", "0462", "0642", "0624", "2046", "2064", "2406", "2460", "2640", "2604", "4206", "4260", "4026", "4062", "4602", "4620", "6240", "6204", "6420", "6402", "6042", "6024", "0247", "0274", "0427", "0472", "0742", "0724", "2047", "2074", "2407", "2470", "2740", "2704", "4207", "4270", "4027", "4072", "4702", "4720", "7240", "7204", "7420", "7402", "7042", "7024", "0248", "0284", "0428", "0482", "0842", "0824", "2048", "2084", "2408", "2480", "2840", "2804", "4208", "4280", "4028", "4082", "4802", "4820", "8240", "8204", "8420", "8402", "8042", "8024", "0249", "0294", "0429", "0492", "0942", "0924", "2049", "2094", "2409", "2490", "2940", "2904", "4209", "4290", "4029", "4092", "4902", "4920", "9240", "9204", "9420", "9402", "9042", "9024", "0256", "0265", "0526", "0562", "0652", "0625", "2056", "2065", "2506", "2560", "2650", "2605", "5206", "5260", "5026", "5062", "5602", "5620", "6250", "6205", "6520", "6502", "6052", "6025", "0257", "0275", "0527", "0572", "0752", "0725", "2057", "2075", "2507", "2570", "2750", "2705", "5207", "5270", "5027", "5072", "5702", "5720", "7250", "7205", "7520", "7502", "7052", "7025", "0258", "0285", "0528", "0582", "0852", "0825", "2058", "2085", "2508", "2580", "2850", "2805", "5208", "5280", "5028", "5082", "5802", "5820", "8250", "8205", "8520", "8502", "8052", "8025", "0259", "0295", "0529", "0592", "0952", "0925", "2059", "2095", "2509", "2590", "2950", "2905", "5209", "5290", "5029", "5092", "5902", "5920", "9250", "9205", "9520", "9502", "9052", "9025", "0267", "0276", "0627", "0672", "0762", "0726", "2067", "2076", "2607", "2670", "2760", "2706", "6207", "6270", "6027", "6072", "6702", "6720", "7260", "7206", "7620", "7602", "7062", "7026", "0268", "0286", "0628", "0682", "0862", "0826", "2068", "2086", "2608", "2680", "2860", "2806", "6208", "6280", "6028", "6082", "6802", "6820", "8260", "8206", "8620", "8602", "8062", "8026", "0269", "0296", "0629", "0692", "0962", "0926", "2069", "2096", "2609", "2690", "2960", "2906", "6209", "6290", "6029", "6092", "6902", "6920", "9260", "9206", "9620", "9602", "9062", "9026", "0278", "0287", "0728", "0782", "0872", "0827", "2078", "2087", "2708", "2780", "2870", "2807", "7208", "7280", "7028", "7082", "7802", "7820", "8270", "8207", "8720", "8702", "8072", "8027", "0279", "0297", "0729", "0792", "0972", "0927", "2079", "2097", "2709", "2790", "2970", "2907", "7209", "7290", "7029", "7092", "7902", "7920", "9270", "9207", "9720", "9702", "9072", "9027", "0289", "0298", "0829", "0892", "0982", "0928", "2089", "2098", "2809", "2890", "2980", "2908", "8209", "8290", "8029", "8092", "8902", "8920", "9280", "9208", "9820", "9802", "9082", "9028", "0345", "0354", "0435", "0453", "0543", "0534", "3045", "3054", "3405", "3450", "3540", "3504", "4305", "4350", "4035", "4053", "4503", "4530", "5340", "5304", "5430", "5403", "5043", "5034", "0346", "0364", "0436", "0463", "0643", "0634", "3046", "3064", "3406", "3460", "3640", "3604", "4306", "4360", "4036", "4063", "4603", "4630", "6340", "6304", "6430", "6403", "6043", "6034", "0347", "0374", "0437", "0473", "0743", "0734", "3047", "3074", "3407", "3470", "3740", "3704", "4307", "4370", "4037", "4073", "4703", "4730", "7340", "7304", "7430", "7403", "7043", "7034", "0348", "0384", "0438", "0483", "0843", "0834", "3048", "3084", "3408", "3480", "3840", "3804", "4308", "4380", "4038", "4083", "4803", "4830", "8340", "8304", "8430", "8403", "8043", "8034", "0349", "0394", "0439", "0493", "0943", "0934", "3049", "3094", "3409", "3490", "3940", "3904", "4309", "4390", "4039", "4093", "4903", "4930", "9340", "9304", "9430", "9403", "9043", "9034", "0356", "0365", "0536", "0563", "0653", "0635", "3056", "3065", "3506", "3560", "3650", "3605", "5306", "5360", "5036", "5063", "5603", "5630", "6350", "6305", "6530", "6503", "6053", "6035", "0357", "0375", "0537", "0573", "0753", "0735", "3057", "3075", "3507", "3570", "3750", "3705", "5307", "5370", "5037", "5073", "5703", "5730", "7350", "7305", "7530", "7503", "7053", "7035", "0358", "0385", "0538", "0583", "0853", "0835", "3058", "3085", "3508", "3580", "3850", "3805", "5308", "5380", "5038", "5083", "5803", "5830", "8350", "8305", "8530", "8503", "8053", "8035", "0359", "0395", "0539", "0593", "0953", "0935", "3059", "3095", "3509", "3590", "3950", "3905", "5309", "5390", "5039", "5093", "5903", "5930", "9350", "9305", "9530", "9503", "9053", "9035", "0367", "0376", "0637", "0673", "0763", "0736", "3067", "3076", "3607", "3670", "3760", "3706", "6307", "6370", "6037", "6073", "6703", "6730", "7360", "7306", "7630", "7603", "7063", "7036", "0368", "0386", "0638", "0683", "0863", "0836", "3068", "3086", "3608", "3680", "3860", "3806", "6308", "6380", "6038", "6083", "6803", "6830", "8360", "8306", "8630", "8603", "8063", "8036", "0369", "0396", "0639", "0693", "0963", "0936", "3069", "3096", "3609", "3690", "3960", "3906", "6309", "6390", "6039", "6093", "6903", "6930", "9360", "9306", "9630", "9603", "9063", "9036", "0378", "0387", "0738", "0783", "0873", "0837", "3078", "3087", "3708", "3780", "3870", "3807", "7308", "7380", "7038", "7083", "7803", "7830", "8370", "8307", "8730", "8703", "8073", "8037", "0379", "0397", "0739", "0793", "0973", "0937", "3079", "3097", "3709", "3790", "3970", "3907", "7309", "7390", "7039", "7093", "7903", "7930", "9370", "9307", "9730", "9703", "9073", "9037", "0389", "0398", "0839", "0893", "0983", "0938", "3089", "3098", "3809", "3890", "3980", "3908", "8309", "8390", "8039", "8093", "8903", "8930", "9380", "9308", "9830", "9803", "9083", "9038", "0456", "0465", "0546", "0564", "0654", "0645", "4056", "4065", "4506", "4560", "4650", "4605", "5406", "5460", "5046", "5064", "5604", "5640", "6450", "6405", "6540", "6504", "6054", "6045", "0457", "0475", "0547", "0574", "0754", "0745", "4057", "4075", "4507", "4570", "4750", "4705", "5407", "5470", "5047", "5074", "5704", "5740", "7450", "7405", "7540", "7504", "7054", "7045", "0458", "0485", "0548", "0584", "0854", "0845", "4058", "4085", "4508", "4580", "4850", "4805", "5408", "5480", "5048", "5084", "5804", "5840", "8450", "8405", "8540", "8504", "8054", "8045", "0459", "0495", "0549", "0594", "0954", "0945", "4059", "4095", "4509", "4590", "4950", "4905", "5409", "5490", "5049", "5094", "5904", "5940", "9450", "9405", "9540", "9504", "9054", "9045", "0467", "0476", "0647", "0674", "0764", "0746", "4067", "4076", "4607", "4670", "4760", "4706", "6407", "6470", "6047", "6074", "6704", "6740", "7460", "7406", "7640", "7604", "7064", "7046", "0468", "0486", "0648", "0684", "0864", "0846", "4068", "4086", "4608", "4680", "4860", "4806", "6408", "6480", "6048", "6084", "6804", "6840", "8460", "8406", "8640", "8604", "8064", "8046", "0469", "0496", "0649", "0694", "0964", "0946", "4069", "4096", "4609", "4690", "4960", "4906", "6409", "6490", "6049", "6094", "6904", "6940", "9460", "9406", "9640", "9604", "9064", "9046", "0478", "0487", "0748", "0784", "0874", "0847", "4078", "4087", "4708", "4780", "4870", "4807", "7408", "7480", "7048", "7084", "7804", "7840", "8470", "8407", "8740", "8704", "8074", "8047", "0479", "0497", "0749", "0794", "0974", "0947", "4079", "4097", "4709", "4790", "4970", "4907", "7409", "7490", "7049", "7094", "7904", "7940", "9470", "9407", "9740", "9704", "9074", "9047", "0489", "0498", "0849", "0894", "0984", "0948", "4089", "4098", "4809", "4890", "4980", "4908", "8409", "8490", "8049", "8094", "8904", "8940", "9480", "9408", "9840", "9804", "9084", "9048", "0567", "0576", "0657", "0675", "0765", "0756", "5067", "5076", "5607", "5670", "5760", "5706", "6507", "6570", "6057", "6075", "6705", "6750", "7560", "7506", "7650", "7605", "7065", "7056", "0568", "0586", "0658", "0685", "0865", "0856", "5068", "5086", "5608", "5680", "5860", "5806", "6508", "6580", "6058", "6085", "6805", "6850", "8560", "8506", "8650", "8605", "8065", "8056", "0569", "0596", "0659", "0695", "0965", "0956", "5069", "5096", "5609", "5690", "5960", "5906", "6509", "6590", "6059", "6095", "6905", "6950", "9560", "9506", "9650", "9605", "9065", "9056", "0578", "0587", "0758", "0785", "0875", "0857", "5078", "5087", "5708", "5780", "5870", "5807", "7508", "7580", "7058", "7085", "7805", "7850", "8570", "8507", "8750", "8705", "8075", "8057", "0579", "0597", "0759", "0795", "0975", "0957", "5079", "5097", "5709", "5790", "5970", "5907", "7509", "7590", "7059", "7095", "7905", "7950", "9570", "9507", "9750", "9705", "9075", "9057", "0589", "0598", "0859", "0895", "0985", "0958", "5089", "5098", "5809", "5890", "5980", "5908", "8509", "8590", "8059", "8095", "8905", "8950", "9580", "9508", "9850", "9805", "9085", "9058", "0678", "0687", "0768", "0786", "0876", "0867", "6078", "6087", "6708", "6780", "6870", "6807", "7608", "7680", "7068", "7086", "7806", "7860", "8670", "8607", "8760", "8706", "8076", "8067", "0679", "0697", "0769", "0796", "0976", "0967", "6079", "6097", "6709", "6790", "6970", "6907", "7609", "7690", "7069", "7096", "7906", "7960", "9670", "9607", "9760", "9706", "9076", "9067", "0689", "0698", "0869", "0896", "0986", "0968", "6089", "6098", "6809", "6890", "6980", "6908", "8609", "8690", "8069", "8096", "8906", "8960", "9680", "9608", "9860", "9806", "9086", "9068", "0789", "0798", "0879", "0897", "0987", "0978", "7089", "7098", "7809", "7890", "7980", "7908", "8709", "8790", "8079", "8097", "8907", "8970", "9780", "9708", "9870", "9807", "9087", "9078", "1234", "1243", "1324", "1342", "1432", "1423", "2134", "2143", "2314", "2341", "2431", "2413", "3214", "3241", "3124", "3142", "3412", "3421", "4231", "4213", "4321", "4312", "4132", "4123", "1235", "1253", "1325", "1352", "1532", "1523", "2135", "2153", "2315", "2351", "2531", "2513", "3215", "3251", "3125", "3152", "3512", "3521", "5231", "5213", "5321", "5312", "5132", "5123", "1236", "1263", "1326", "1362", "1632", "1623", "2136", "2163", "2316", "2361", "2631", "2613", "3216", "3261", "3126", "3162", "3612", "3621", "6231", "6213", "6321", "6312", "6132", "6123", "1237", "1273", "1327", "1372", "1732", "1723", "2137", "2173", "2317", "2371", "2731", "2713", "3217", "3271", "3127", "3172", "3712", "3721", "7231", "7213", "7321", "7312", "7132", "7123", "1238", "1283", "1328", "1382", "1832", "1823", "2138", "2183", "2318", "2381", "2831", "2813", "3218", "3281", "3128", "3182", "3812", "3821", "8231", "8213", "8321", "8312", "8132", "8123", "1239", "1293", "1329", "1392", "1932", "1923", "2139", "2193", "2319", "2391", "2931", "2913", "3219", "3291", "3129", "3192", "3912", "3921", "9231", "9213", "9321", "9312", "9132", "9123", "1245", "1254", "1425", "1452", "1542", "1524", "2145", "2154", "2415", "2451", "2541", "2514", "4215", "4251", "4125", "4152", "4512", "4521", "5241", "5214", "5421", "5412", "5142", "5124", "1246", "1264", "1426", "1462", "1642", "1624", "2146", "2164", "2416", "2461", "2641", "2614", "4216", "4261", "4126", "4162", "4612", "4621", "6241", "6214", "6421", "6412", "6142", "6124", "1247", "1274", "1427", "1472", "1742", "1724", "2147", "2174", "2417", "2471", "2741", "2714", "4217", "4271", "4127", "4172", "4712", "4721", "7241", "7214", "7421", "7412", "7142", "7124", "1248", "1284", "1428", "1482", "1842", "1824", "2148", "2184", "2418", "2481", "2841", "2814", "4218", "4281", "4128", "4182", "4812", "4821", "8241", "8214", "8421", "8412", "8142", "8124", "1249", "1294", "1429", "1492", "1942", "1924", "2149", "2194", "2419", "2491", "2941", "2914", "4219", "4291", "4129", "4192", "4912", "4921", "9241", "9214", "9421", "9412", "9142", "9124", "1256", "1265", "1526", "1562", "1652", "1625", "2156", "2165", "2516", "2561", "2651", "2615", "5216", "5261", "5126", "5162", "5612", "5621", "6251", "6215", "6521", "6512", "6152", "6125", "1257", "1275", "1527", "1572", "1752", "1725", "2157", "2175", "2517", "2571", "2751", "2715", "5217", "5271", "5127", "5172", "5712", "5721", "7251", "7215", "7521", "7512", "7152", "7125", "1258", "1285", "1528", "1582", "1852", "1825", "2158", "2185", "2518", "2581", "2851", "2815", "5218", "5281", "5128", "5182", "5812", "5821", "8251", "8215", "8521", "8512", "8152", "8125", "1259", "1295", "1529", "1592", "1952", "1925", "2159", "2195", "2519", "2591", "2951", "2915", "5219", "5291", "5129", "5192", "5912", "5921", "9251", "9215", "9521", "9512", "9152", "9125", "1267", "1276", "1627", "1672", "1762", "1726", "2167", "2176", "2617", "2671", "2761", "2716", "6217", "6271", "6127", "6172", "6712", "6721", "7261", "7216", "7621", "7612", "7162", "7126", "1268", "1286", "1628", "1682", "1862", "1826", "2168", "2186", "2618", "2681", "2861", "2816", "6218", "6281", "6128", "6182", "6812", "6821", "8261", "8216", "8621", "8612", "8162", "8126", "1269", "1296", "1629", "1692", "1962", "1926", "2169", "2196", "2619", "2691", "2961", "2916", "6219", "6291", "6129", "6192", "6912", "6921", "9261", "9216", "9621", "9612", "9162", "9126", "1278", "1287", "1728", "1782", "1872", "1827", "2178", "2187", "2718", "2781", "2871", "2817", "7218", "7281", "7128", "7182", "7812", "7821", "8271", "8217", "8721", "8712", "8172", "8127", "1279", "1297", "1729", "1792", "1972", "1927", "2179", "2197", "2719", "2791", "2971", "2917", "7219", "7291", "7129", "7192", "7912", "7921", "9271", "9217", "9721", "9712", "9172", "9127", "1289", "1298", "1829", "1892", "1982", "1928", "2189", "2198", "2819", "2891", "2981", "2918", "8219", "8291", "8129", "8192", "8912", "8921", "9281", "9218", "9821", "9812", "9182", "9128", "1345", "1354", "1435", "1453", "1543", "1534", "3145", "3154", "3415", "3451", "3541", "3514", "4315", "4351", "4135", "4153", "4513", "4531", "5341", "5314", "5431", "5413", "5143", "5134", "1346", "1364", "1436", "1463", "1643", "1634", "3146", "3164", "3416", "3461", "3641", "3614", "4316", "4361", "4136", "4163", "4613", "4631", "6341", "6314", "6431", "6413", "6143", "6134", "1347", "1374", "1437", "1473", "1743", "1734", "3147", "3174", "3417", "3471", "3741", "3714", "4317", "4371", "4137", "4173", "4713", "4731", "7341", "7314", "7431", "7413", "7143", "7134", "1348", "1384", "1438", "1483", "1843", "1834", "3148", "3184", "3418", "3481", "3841", "3814", "4318", "4381", "4138", "4183", "4813", "4831", "8341", "8314", "8431", "8413", "8143", "8134", "1349", "1394", "1439", "1493", "1943", "1934", "3149", "3194", "3419", "3491", "3941", "3914", "4319", "4391", "4139", "4193", "4913", "4931", "9341", "9314", "9431", "9413", "9143", "9134", "1356", "1365", "1536", "1563", "1653", "1635", "3156", "3165", "3516", "3561", "3651", "3615", "5316", "5361", "5136", "5163", "5613", "5631", "6351", "6315", "6531", "6513", "6153", "6135", "1357", "1375", "1537", "1573", "1753", "1735", "3157", "3175", "3517", "3571", "3751", "3715", "5317", "5371", "5137", "5173", "5713", "5731", "7351", "7315", "7531", "7513", "7153", "7135", "1358", "1385", "1538", "1583", "1853", "1835", "3158", "3185", "3518", "3581", "3851", "3815", "5318", "5381", "5138", "5183", "5813", "5831", "8351", "8315", "8531", "8513", "8153", "8135", "1359", "1395", "1539", "1593", "1953", "1935", "3159", "3195", "3519", "3591", "3951", "3915", "5319", "5391", "5139", "5193", "5913", "5931", "9351", "9315", "9531", "9513", "9153", "9135", "1367", "1376", "1637", "1673", "1763", "1736", "3167", "3176", "3617", "3671", "3761", "3716", "6317", "6371", "6137", "6173", "6713", "6731", "7361", "7316", "7631", "7613", "7163", "7136", "1368", "1386", "1638", "1683", "1863", "1836", "3168", "3186", "3618", "3681", "3861", "3816", "6318", "6381", "6138", "6183", "6813", "6831", "8361", "8316", "8631", "8613", "8163", "8136", "1369", "1396", "1639", "1693", "1963", "1936", "3169", "3196", "3619", "3691", "3961", "3916", "6319", "6391", "6139", "6193", "6913", "6931", "9361", "9316", "9631", "9613", "9163", "9136", "1378", "1387", "1738", "1783", "1873", "1837", "3178", "3187", "3718", "3781", "3871", "3817", "7318", "7381", "7138", "7183", "7813", "7831", "8371", "8317", "8731", "8713", "8173", "8137", "1379", "1397", "1739", "1793", "1973", "1937", "3179", "3197", "3719", "3791", "3971", "3917", "7319", "7391", "7139", "7193", "7913", "7931", "9371", "9317", "9731", "9713", "9173", "9137", "1389", "1398", "1839", "1893", "1983", "1938", "3189", "3198", "3819", "3891", "3981", "3918", "8319", "8391", "8139", "8193", "8913", "8931", "9381", "9318", "9831", "9813", "9183", "9138", "1456", "1465", "1546", "1564", "1654", "1645", "4156", "4165", "4516", "4561", "4651", "4615", "5416", "5461", "5146", "5164", "5614", "5641", "6451", "6415", "6541", "6514", "6154", "6145", "1457", "1475", "1547", "1574", "1754", "1745", "4157", "4175", "4517", "4571", "4751", "4715", "5417", "5471", "5147", "5174", "5714", "5741", "7451", "7415", "7541", "7514", "7154", "7145", "1458", "1485", "1548", "1584", "1854", "1845", "4158", "4185", "4518", "4581", "4851", "4815", "5418", "5481", "5148", "5184", "5814", "5841", "8451", "8415", "8541", "8514", "8154", "8145", "1459", "1495", "1549", "1594", "1954", "1945", "4159", "4195", "4519", "4591", "4951", "4915", "5419", "5491", "5149", "5194", "5914", "5941", "9451", "9415", "9541", "9514", "9154", "9145", "1467", "1476", "1647", "1674", "1764", "1746", "4167", "4176", "4617", "4671", "4761", "4716", "6417", "6471", "6147", "6174", "6714", "6741", "7461", "7416", "7641", "7614", "7164", "7146", "1468", "1486", "1648", "1684", "1864", "1846", "4168", "4186", "4618", "4681", "4861", "4816", "6418", "6481", "6148", "6184", "6814", "6841", "8461", "8416", "8641", "8614", "8164", "8146", "1469", "1496", "1649", "1694", "1964", "1946", "4169", "4196", "4619", "4691", "4961", "4916", "6419", "6491", "6149", "6194", "6914", "6941", "9461", "9416", "9641", "9614", "9164", "9146", "1478", "1487", "1748", "1784", "1874", "1847", "4178", "4187", "4718", "4781", "4871", "4817", "7418", "7481", "7148", "7184", "7814", "7841", "8471", "8417", "8741", "8714", "8174", "8147", "1479", "1497", "1749", "1794", "1974", "1947", "4179", "4197", "4719", "4791", "4971", "4917", "7419", "7491", "7149", "7194", "7914", "7941", "9471", "9417", "9741", "9714", "9174", "9147", "1489", "1498", "1849", "1894", "1984", "1948", "4189", "4198", "4819", "4891", "4981", "4918", "8419", "8491", "8149", "8194", "8914", "8941", "9481", "9418", "9841", "9814", "9184", "9148", "1567", "1576", "1657", "1675", "1765", "1756", "5167", "5176", "5617", "5671", "5761", "5716", "6517", "6571", "6157", "6175", "6715", "6751", "7561", "7516", "7651", "7615", "7165", "7156", "1568", "1586", "1658", "1685", "1865", "1856", "5168", "5186", "5618", "5681", "5861", "5816", "6518", "6581", "6158", "6185", "6815", "6851", "8561", "8516", "8651", "8615", "8165", "8156", "1569", "1596", "1659", "1695", "1965", "1956", "5169", "5196", "5619", "5691", "5961", "5916", "6519", "6591", "6159", "6195", "6915", "6951", "9561", "9516", "9651", "9615", "9165", "9156", "1578", "1587", "1758", "1785", "1875", "1857", "5178", "5187", "5718", "5781", "5871", "5817", "7518", "7581", "7158", "7185", "7815", "7851", "8571", "8517", "8751", "8715", "8175", "8157", "1579", "1597", "1759", "1795", "1975", "1957", "5179", "5197", "5719", "5791", "5971", "5917", "7519", "7591", "7159", "7195", "7915", "7951", "9571", "9517", "9751", "9715", "9175", "9157", "1589", "1598", "1859", "1895", "1985", "1958", "5189", "5198", "5819", "5891", "5981", "5918", "8519", "8591", "8159", "8195", "8915", "8951", "9581", "9518", "9851", "9815", "9185", "9158", "1678", "1687", "1768", "1786", "1876", "1867", "6178", "6187", "6718", "6781", "6871", "6817", "7618", "7681", "7168", "7186", "7816", "7861", "8671", "8617", "8761", "8716", "8176", "8167", "1679", "1697", "1769", "1796", "1976", "1967", "6179", "6197", "6719", "6791", "6971", "6917", "7619", "7691", "7169", "7196", "7916", "7961", "9671", "9617", "9761", "9716", "9176", "9167", "1689", "1698", "1869", "1896", "1986", "1968", "6189", "6198", "6819", "6891", "6981", "6918", "8619", "8691", "8169", "8196", "8916", "8961", "9681", "9618", "9861", "9816", "9186", "9168", "1789", "1798", "1879", "1897", "1987", "1978", "7189", "7198", "7819", "7891", "7981", "7918", "8719", "8791", "8179", "8197", "8917", "8971", "9781", "9718", "9871", "9817", "9187", "9178", "2345", "2354", "2435", "2453", "2543", "2534", "3245", "3254", "3425", "3452", "3542", "3524", "4325", "4352", "4235", "4253", "4523", "4532", "5342", "5324", "5432", "5423", "5243", "5234", "2346", "2364", "2436", "2463", "2643", "2634", "3246", "3264", "3426", "3462", "3642", "3624", "4326", "4362", "4236", "4263", "4623", "4632", "6342", "6324", "6432", "6423", "6243", "6234", "2347", "2374", "2437", "2473", "2743", "2734", "3247", "3274", "3427", "3472", "3742", "3724", "4327", "4372", "4237", "4273", "4723", "4732", "7342", "7324", "7432", "7423", "7243", "7234", "2348", "2384", "2438", "2483", "2843", "2834", "3248", "3284", "3428", "3482", "3842", "3824", "4328", "4382", "4238", "4283", "4823", "4832", "8342", "8324", "8432", "8423", "8243", "8234", "2349", "2394", "2439", "2493", "2943", "2934", "3249", "3294", "3429", "3492", "3942", "3924", "4329", "4392", "4239", "4293", "4923", "4932", "9342", "9324", "9432", "9423", "9243", "9234", "2356", "2365", "2536", "2563", "2653", "2635", "3256", "3265", "3526", "3562", "3652", "3625", "5326", "5362", "5236", "5263", "5623", "5632", "6352", "6325", "6532", "6523", "6253", "6235", "2357", "2375", "2537", "2573", "2753", "2735", "3257", "3275", "3527", "3572", "3752", "3725", "5327", "5372", "5237", "5273", "5723", "5732", "7352", "7325", "7532", "7523", "7253", "7235", "2358", "2385", "2538", "2583", "2853", "2835", "3258", "3285", "3528", "3582", "3852", "3825", "5328", "5382", "5238", "5283", "5823", "5832", "8352", "8325", "8532", "8523", "8253", "8235", "2359", "2395", "2539", "2593", "2953", "2935", "3259", "3295", "3529", "3592", "3952", "3925", "5329", "5392", "5239", "5293", "5923", "5932", "9352", "9325", "9532", "9523", "9253", "9235", "2367", "2376", "2637", "2673", "2763", "2736", "3267", "3276", "3627", "3672", "3762", "3726", "6327", "6372", "6237", "6273", "6723", "6732", "7362", "7326", "7632", "7623", "7263", "7236", "2368", "2386", "2638", "2683", "2863", "2836", "3268", "3286", "3628", "3682", "3862", "3826", "6328", "6382", "6238", "6283", "6823", "6832", "8362", "8326", "8632", "8623", "8263", "8236", "2369", "2396", "2639", "2693", "2963", "2936", "3269", "3296", "3629", "3692", "3962", "3926", "6329", "6392", "6239", "6293", "6923", "6932", "9362", "9326", "9632", "9623", "9263", "9236", "2378", "2387", "2738", "2783", "2873", "2837", "3278", "3287", "3728", "3782", "3872", "3827", "7328", "7382", "7238", "7283", "7823", "7832", "8372", "8327", "8732", "8723", "8273", "8237", "2379", "2397", "2739", "2793", "2973", "2937", "3279", "3297", "3729", "3792", "3972", "3927", "7329", "7392", "7239", "7293", "7923", "7932", "9372", "9327", "9732", "9723", "9273", "9237", "2389", "2398", "2839", "2893", "2983", "2938", "3289", "3298", "3829", "3892", "3982", "3928", "8329", "8392", "8239", "8293", "8923", "8932", "9382", "9328", "9832", "9823", "9283", "9238", "2456", "2465", "2546", "2564", "2654", "2645", "4256", "4265", "4526", "4562", "4652", "4625", "5426", "5462", "5246", "5264", "5624", "5642", "6452", "6425", "6542", "6524", "6254", "6245", "2457", "2475", "2547", "2574", "2754", "2745", "4257", "4275", "4527", "4572", "4752", "4725", "5427", "5472", "5247", "5274", "5724", "5742", "7452", "7425", "7542", "7524", "7254", "7245", "2458", "2485", "2548", "2584", "2854", "2845", "4258", "4285", "4528", "4582", "4852", "4825", "5428", "5482", "5248", "5284", "5824", "5842", "8452", "8425", "8542", "8524", "8254", "8245", "2459", "2495", "2549", "2594", "2954", "2945", "4259", "4295", "4529", "4592", "4952", "4925", "5429", "5492", "5249", "5294", "5924", "5942", "9452", "9425", "9542", "9524", "9254", "9245", "2467", "2476", "2647", "2674", "2764", "2746", "4267", "4276", "4627", "4672", "4762", "4726", "6427", "6472", "6247", "6274", "6724", "6742", "7462", "7426", "7642", "7624", "7264", "7246", "2468", "2486", "2648", "2684", "2864", "2846", "4268", "4286", "4628", "4682", "4862", "4826", "6428", "6482", "6248", "6284", "6824", "6842", "8462", "8426", "8642", "8624", "8264", "8246", "2469", "2496", "2649", "2694", "2964", "2946", "4269", "4296", "4629", "4692", "4962", "4926", "6429", "6492", "6249", "6294", "6924", "6942", "9462", "9426", "9642", "9624", "9264", "9246", "2478", "2487", "2748", "2784", "2874", "2847", "4278", "4287", "4728", "4782", "4872", "4827", "7428", "7482", "7248", "7284", "7824", "7842", "8472", "8427", "8742", "8724", "8274", "8247", "2479", "2497", "2749", "2794", "2974", "2947", "4279", "4297", "4729", "4792", "4972", "4927", "7429", "7492", "7249", "7294", "7924", "7942", "9472", "9427", "9742", "9724", "9274", "9247", "2489", "2498", "2849", "2894", "2984", "2948", "4289", "4298", "4829", "4892", "4982", "4928", "8429", "8492", "8249", "8294", "8924", "8942", "9482", "9428", "9842", "9824", "9284", "9248", "2567", "2576", "2657", "2675", "2765", "2756", "5267", "5276", "5627", "5672", "5762", "5726", "6527", "6572", "6257", "6275", "6725", "6752", "7562", "7526", "7652", "7625", "7265", "7256", "2568", "2586", "2658", "2685", "2865", "2856", "5268", "5286", "5628", "5682", "5862", "5826", "6528", "6582", "6258", "6285", "6825", "6852", "8562", "8526", "8652", "8625", "8265", "8256", "2569", "2596", "2659", "2695", "2965", "2956", "5269", "5296", "5629", "5692", "5962", "5926", "6529", "6592", "6259", "6295", "6925", "6952", "9562", "9526", "9652", "9625", "9265", "9256", "2578", "2587", "2758", "2785", "2875", "2857", "5278", "5287", "5728", "5782", "5872", "5827", "7528", "7582", "7258", "7285", "7825", "7852", "8572", "8527", "8752", "8725", "8275", "8257", "2579", "2597", "2759", "2795", "2975", "2957", "5279", "5297", "5729", "5792", "5972", "5927", "7529", "7592", "7259", "7295", "7925", "7952", "9572", "9527", "9752", "9725", "9275", "9257", "2589", "2598", "2859", "2895", "2985", "2958", "5289", "5298", "5829", "5892", "5982", "5928", "8529", "8592", "8259", "8295", "8925", "8952", "9582", "9528", "9852", "9825", "9285", "9258", "2678", "2687", "2768", "2786", "2876", "2867", "6278", "6287", "6728", "6782", "6872", "6827", "7628", "7682", "7268", "7286", "7826", "7862", "8672", "8627", "8762", "8726", "8276", "8267", "2679", "2697", "2769", "2796", "2976", "2967", "6279", "6297", "6729", "6792", "6972", "6927", "7629", "7692", "7269", "7296", "7926", "7962", "9672", "9627", "9762", "9726", "9276", "9267", "2689", "2698", "2869", "2896", "2986", "2968", "6289", "6298", "6829", "6892", "6982", "6928", "8629", "8692", "8269", "8296", "8926", "8962", "9682", "9628", "9862", "9826", "9286", "9268", "2789", "2798", "2879", "2897", "2987", "2978", "7289", "7298", "7829", "7892", "7982", "7928", "8729", "8792", "8279", "8297", "8927", "8972", "9782", "9728", "9872", "9827", "9287", "9278", "3456", "3465", "3546", "3564", "3654", "3645", "4356", "4365", "4536", "4563", "4653", "4635", "5436", "5463", "5346", "5364", "5634", "5643", "6453", "6435", "6543", "6534", "6354", "6345", "3457", "3475", "3547", "3574", "3754", "3745", "4357", "4375", "4537", "4573", "4753", "4735", "5437", "5473", "5347", "5374", "5734", "5743", "7453", "7435", "7543", "7534", "7354", "7345", "3458", "3485", "3548", "3584", "3854", "3845", "4358", "4385", "4538", "4583", "4853", "4835", "5438", "5483", "5348", "5384", "5834", "5843", "8453", "8435", "8543", "8534", "8354", "8345", "3459", "3495", "3549", "3594", "3954", "3945", "4359", "4395", "4539", "4593", "4953", "4935", "5439", "5493", "5349", "5394", "5934", "5943", "9453", "9435", "9543", "9534", "9354", "9345", "3467", "3476", "3647", "3674", "3764", "3746", "4367", "4376", "4637", "4673", "4763", "4736", "6437", "6473", "6347", "6374", "6734", "6743", "7463", "7436", "7643", "7634", "7364", "7346", "3468", "3486", "3648", "3684", "3864", "3846", "4368", "4386", "4638", "4683", "4863", "4836", "6438", "6483", "6348", "6384", "6834", "6843", "8463", "8436", "8643", "8634", "8364", "8346", "3469", "3496", "3649", "3694", "3964", "3946", "4369", "4396", "4639", "4693", "4963", "4936", "6439", "6493", "6349", "6394", "6934", "6943", "9463", "9436", "9643", "9634", "9364", "9346", "3478", "3487", "3748", "3784", "3874", "3847", "4378", "4387", "4738", "4783", "4873", "4837", "7438", "7483", "7348", "7384", "7834", "7843", "8473", "8437", "8743", "8734", "8374", "8347", "3479", "3497", "3749", "3794", "3974", "3947", "4379", "4397", "4739", "4793", "4973", "4937", "7439", "7493", "7349", "7394", "7934", "7943", "9473", "9437", "9743", "9734", "9374", "9347", "3489", "3498", "3849", "3894", "3984", "3948", "4389", "4398", "4839", "4893", "4983", "4938", "8439", "8493", "8349", "8394", "8934", "8943", "9483", "9438", "9843", "9834", "9384", "9348", "3567", "3576", "3657", "3675", "3765", "3756", "5367", "5376", "5637", "5673", "5763", "5736", "6537", "6573", "6357", "6375", "6735", "6753", "7563", "7536", "7653", "7635", "7365", "7356", "3568", "3586", "3658", "3685", "3865", "3856", "5368", "5386", "5638", "5683", "5863", "5836", "6538", "6583", "6358", "6385", "6835", "6853", "8563", "8536", "8653", "8635", "8365", "8356", "3569", "3596", "3659", "3695", "3965", "3956", "5369", "5396", "5639", "5693", "5963", "5936", "6539", "6593", "6359", "6395", "6935", "6953", "9563", "9536", "9653", "9635", "9365", "9356", "3578", "3587", "3758", "3785", "3875", "3857", "5378", "5387", "5738", "5783", "5873", "5837", "7538", "7583", "7358", "7385", "7835", "7853", "8573", "8537", "8753", "8735", "8375", "8357", "3579", "3597", "3759", "3795", "3975", "3957", "5379", "5397", "5739", "5793", "5973", "5937", "7539", "7593", "7359", "7395", "7935", "7953", "9573", "9537", "9753", "9735", "9375", "9357", "3589", "3598", "3859", "3895", "3985", "3958", "5389", "5398", "5839", "5893", "5983", "5938", "8539", "8593", "8359", "8395", "8935", "8953", "9583", "9538", "9853", "9835", "9385", "9358", "3678", "3687", "3768", "3786", "3876", "3867", "6378", "6387", "6738", "6783", "6873", "6837", "7638", "7683", "7368", "7386", "7836", "7863", "8673", "8637", "8763", "8736", "8376", "8367", "3679", "3697", "3769", "3796", "3976", "3967", "6379", "6397", "6739", "6793", "6973", "6937", "7639", "7693", "7369", "7396", "7936", "7963", "9673", "9637", "9763", "9736", "9376", "9367", "3689", "3698", "3869", "3896", "3986", "3968", "6389", "6398", "6839", "6893", "6983", "6938", "8639", "8693", "8369", "8396", "8936", "8963", "9683", "9638", "9863", "9836", "9386", "9368", "3789", "3798", "3879", "3897", "3987", "3978", "7389", "7398", "7839", "7893", "7983", "7938", "8739", "8793", "8379", "8397", "8937", "8973", "9783", "9738", "9873", "9837", "9387", "9378", "4567", "4576", "4657", "4675", "4765", "4756", "5467", "5476", "5647", "5674", "5764", "5746", "6547", "6574", "6457", "6475", "6745", "6754", "7564", "7546", "7654", "7645", "7465", "7456", "4568", "4586", "4658", "4685", "4865", "4856", "5468", "5486", "5648", "5684", "5864", "5846", "6548", "6584", "6458", "6485", "6845", "6854", "8564", "8546", "8654", "8645", "8465", "8456", "4569", "4596", "4659", "4695", "4965", "4956", "5469", "5496", "5649", "5694", "5964", "5946", "6549", "6594", "6459", "6495", "6945", "6954", "9564", "9546", "9654", "9645", "9465", "9456", "4578", "4587", "4758", "4785", "4875", "4857", "5478", "5487", "5748", "5784", "5874", "5847", "7548", "7584", "7458", "7485", "7845", "7854", "8574", "8547", "8754", "8745", "8475", "8457", "4579", "4597", "4759", "4795", "4975", "4957", "5479", "5497", "5749", "5794", "5974", "5947", "7549", "7594", "7459", "7495", "7945", "7954", "9574", "9547", "9754", "9745", "9475", "9457", "4589", "4598", "4859", "4895", "4985", "4958", "5489", "5498", "5849", "5894", "5984", "5948", "8549", "8594", "8459", "8495", "8945", "8954", "9584", "9548", "9854", "9845", "9485", "9458", "4678", "4687", "4768", "4786", "4876", "4867", "6478", "6487", "6748", "6784", "6874", "6847", "7648", "7684", "7468", "7486", "7846", "7864", "8674", "8647", "8764", "8746", "8476", "8467", "4679", "4697", "4769", "4796", "4976", "4967", "6479", "6497", "6749", "6794", "6974", "6947", "7649", "7694", "7469", "7496", "7946", "7964", "9674", "9647", "9764", "9746", "9476", "9467", "4689", "4698", "4869", "4896", "4986", "4968", "6489", "6498", "6849", "6894", "6984", "6948", "8649", "8694", "8469", "8496", "8946", "8964", "9684", "9648", "9864", "9846", "9486", "9468", "4789", "4798", "4879", "4897", "4987", "4978", "7489", "7498", "7849", "7894", "7984", "7948", "8749", "8794", "8479", "8497", "8947", "8974", "9784", "9748", "9874", "9847", "9487", "9478", "5678", "5687", "5768", "5786", "5876", "5867", "6578", "6587", "6758", "6785", "6875", "6857", "7658", "7685", "7568", "7586", "7856", "7865", "8675", "8657", "8765", "8756", "8576", "8567", "5679", "5697", "5769", "5796", "5976", "5967", "6579", "6597", "6759", "6795", "6975", "6957", "7659", "7695", "7569", "7596", "7956", "7965", "9675", "9657", "9765", "9756", "9576", "9567", "5689", "5698", "5869", "5896", "5986", "5968", "6589", "6598", "6859", "6895", "6985", "6958", "8659", "8695", "8569", "8596", "8956", "8965", "9685", "9658", "9865", "9856", "9586", "9568", "5789", "5798", "5879", "5897", "5987", "5978", "7589", "7598", "7859", "7895", "7985", "7958", "8759", "8795", "8579", "8597", "8957", "8975", "9785", "9758", "9875", "9857", "9587", "9578", "6789", "6798", "6879", "6897", "6987", "6978", "7689", "7698", "7869", "7896", "7986", "7968", "8769", "8796", "8679", "8697", "8967", "8976", "9786", "9768", "9876", "9867", "9687", "9678"};
String  PERM[SZE] = {"1234", "1243", "1324", "1342", "1432", "1423", "2134", "2143", "2314", "2341", "2431", "2413", "3214", "3241", "3124", "3142", "3412", "3421", "4231", "4213", "4321", "4312", "4132", "4123", "1235", "1253", "1325", "1352", "1532", "1523", "2135", "2153", "2315", "2351", "2531", "2513", "3215", "3251", "3125", "3152", "3512", "3521", "5231", "5213", "5321", "5312", "5132", "5123", "1236", "1263", "1326", "1362", "1632", "1623", "2136", "2163", "2316", "2361", "2631", "2613", "3216", "3261", "3126", "3162", "3612", "3621", "6231", "6213", "6321", "6312", "6132", "6123", "1245", "1254", "1425", "1452", "1542", "1524", "2145", "2154", "2415", "2451", "2541", "2514", "4215", "4251", "4125", "4152", "4512", "4521", "5241", "5214", "5421", "5412", "5142", "5124", "1246", "1264", "1426", "1462", "1642", "1624", "2146", "2164", "2416", "2461", "2641", "2614", "4216", "4261", "4126", "4162", "4612", "4621", "6241", "6214", "6421", "6412", "6142", "6124", "1256", "1265", "1526", "1562", "1652", "1625", "2156", "2165", "2516", "2561", "2651", "2615", "5216", "5261", "5126", "5162", "5612", "5621", "6251", "6215", "6521", "6512", "6152", "6125", "1345", "1354", "1435", "1453", "1543", "1534", "3145", "3154", "3415", "3451", "3541", "3514", "4315", "4351", "4135", "4153", "4513", "4531", "5341", "5314", "5431", "5413", "5143", "5134", "1346", "1364", "1436", "1463", "1643", "1634", "3146", "3164", "3416", "3461", "3641", "3614", "4316", "4361", "4136", "4163", "4613", "4631", "6341", "6314", "6431", "6413", "6143", "6134", "1356", "1365", "1536", "1563", "1653", "1635", "3156", "3165", "3516", "3561", "3651", "3615", "5316", "5361", "5136", "5163", "5613", "5631", "6351", "6315", "6531", "6513", "6153", "6135", "1456", "1465", "1546", "1564", "1654", "1645", "4156", "4165", "4516", "4561", "4651", "4615", "5416", "5461", "5146", "5164", "5614", "5641", "6451", "6415", "6541", "6514", "6154", "6145", "2345", "2354", "2435", "2453", "2543", "2534", "3245", "3254", "3425", "3452", "3542", "3524", "4325", "4352", "4235", "4253", "4523", "4532", "5342", "5324", "5432", "5423", "5243", "5234", "2346", "2364", "2436", "2463", "2643", "2634", "3246", "3264", "3426", "3462", "3642", "3624", "4326", "4362", "4236", "4263", "4623", "4632", "6342", "6324", "6432", "6423", "6243", "6234", "2356", "2365", "2536", "2563", "2653", "2635", "3256", "3265", "3526", "3562", "3652", "3625", "5326", "5362", "5236", "5263", "5623", "5632", "6352", "6325", "6532", "6523", "6253", "6235", "2456", "2465", "2546", "2564", "2654", "2645", "4256", "4265", "4526", "4562", "4652", "4625", "5426", "5462", "5246", "5264", "5624", "5642", "6452", "6425", "6542", "6524", "6254", "6245", "3456", "3465", "3546", "3564", "3654", "3645", "4356", "4365", "4536", "4563", "4653", "4635", "5436", "5463", "5346", "5364", "5634", "5643", "6453", "6435", "6543", "6534", "6354", "6345"};
int B, C, ii, jj, kk;
int flag, sumy, IG = 0;

//{'3b0c', '3b1c', '4b0c', '0b0c'},
//{'2b0c', '2b1c', '2b2c', '0b0c'},
//{'1b0c', '1b1c', '1b2c', '1b3c'},
//{'0b1c', '0b2c', '0b3c', '0b4c'}

void setup() {

  Serial.begin(9600);
  display.setBrightness(2);
}

void loop() {
  display.showNumberDec(PERM[IG].toInt(), true);
  delay(100);

  char key = keypad.getKey(); //get Bulls and Cows from User

  if (key == 'A') {
    B = 0;
    C = 1;
  }
  if (key == 'B') {
    B = 0;
    C = 2;
  }
  if (key == 'C') {
    B = 0;
    C = 3;
  }
  if (key == 'D') {
    B = 0;
    C = 4;
  }
  if (key == 'E') {
    B = 1;
    C = 0;
  }
  if (key == 'F') {
    B = 1;
    C = 1;
  }
  if (key == 'G') {
    B = 1;
    C = 2;
  }
  if (key == 'H') {
    B = 1;
    C = 3;
  }
  if (key == 'I') {
    B = 2;
    C = 0;
  }
  if (key == 'J') {
    B = 2;
    C = 1;
  }
  if (key == 'K') {
    B = 2;
    C = 2;
  }
  if (key == 'L') {
    B = 0;
    C = 0;
  }
  if (key == 'M') {
    B = 3;
    C = 0;
  }
  if (key == 'N') {
    B = 3;
    C = 1;
  }
  if (key == 'O') {
    B = 4;
    C = 0;
    display.showNumberDec(0000, true);
  }
  if (key == 'P') {
    B = 0;
    C = 0;
  }


  if (key) {

    Serial.println(key);
    Serial.println(B);
    Serial.println(C);

    for (ii = IG + 1; ii < SZE; ii++) {
      if (PERM[ii] != "0000") {
        flag = 0;
        //cases:1,2
        sumy = 0;
        for (jj = 0; jj <= 3; jj++) {
          if (PERM[IG][jj] == PERM[ii][jj]) {
            sumy = sumy + 1;
          }
        }
        if ((sumy < B) || (sumy >= B + 1)) {
          flag = 1;
        }

        //cases:3,4,5
        sumy = 0;
        for (jj = 0; jj <= 3; jj++) {
          for (kk = 0; kk <= 3; kk++) {
            if (PERM[IG][jj] == PERM[ii][kk]) {
              sumy = sumy + 1;
            }
          }
        }
        if ((sumy >= B + C + 1) || (sumy < C)) {
          flag = 1;
        }
        if ((sumy > 0) && (B + C == 0)) {
          flag = 1;
        }

        //Elimination
        if (flag == 1) {
          //Serial.println(PERM[ii]);
          for (jj = 0; jj <= 3; jj++) {
            PERM[ii][jj] = "0";
          }
        }
        else {
          IG = ii;
          //Serial.println("IG=");
          //Serial.println(PERM[IG]);
          break;
        }
      }
    }
  }
}

Credits

Krishna Lalith

Krishna Lalith

11 projects • 2 followers

Comments