Игра Быки коровы для мобильного
|
|
haav | Дата: Суббота, 08.02.2014, 21:50 | Сообщение # 1 |
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Статус: Offline
| Я намучался искать в сети эту игрушку для мобильника. Есть одна игра, но она с буквами, а мне надо с цифрами (привык) Как то так получилось, что я в детстве очень много играл в нее, поэтому для Windows писал свою, а теперь не найдя готового варианта для мобильника, решил написать и под мобильную платформу. Сразу скажу, что в игре нет графики, все сделано в текстовом режиме. Лично мне больше не надо. Самое главное чтобы компьютер загадывал число, выводил результаты , а я его (число) мог за несколько (в игре 7) попыток отгадать. Код немного сумбурный, уж прошу прощения у тех кто захочет в нем разобраться.
И так сам код:
Код 10 cls 50 KOR% = 0 51 BIK% = 0 52 COUNT% = 0 53 SLUCH$ = "" 60 gosub 2000 65 print "Bulls and Cows" 66 print " " 70 if fire(0) then goto 100 80 goto 70 100 Input "Input number", CHISLO$ 110 if len(CHISLO$) <> 4 then goto 100 120 PV$ = mid$(CHISLO$,1,1) 130 if PV$<>"1" and PV$<>"2" and PV$<>"3" and PV$<>"4" and PV$<>"5" and PV$<>"6" and PV$<>"7" and PV$<>"8" and PV$<>"9" then goto 100 135 PV1$ = PV$ 140 PV$ = mid$(CHISLO$,2,1) 150 if PV$<>"1" and PV$<>"2" and PV$<>"3" and PV$<>"4" and PV$<>"5" and PV$<>"6" and PV$<>"7" and PV$<>"8" and PV$<>"9" then goto 100 152 if PV1$ = PV$ then goto 100 155 PV2$ = PV$ 160 PV$ = mid$(CHISLO$,3,1) 170 if PV$<>"1" and PV$<>"2" and PV$<>"3" and PV$<>"4" and PV$<>"5" and PV$<>"6" and PV$<>"7" and PV$<>"8" and PV$<>"9" then goto 100 172 if PV1$ = PV$ or PV2$ = PV$ then goto 100 175 PV3$ = PV$ 180 PV$ = mid$(CHISLO$,4,1) 190 if PV$<>"1" and PV$<>"2" and PV$<>"3" and PV$<>"4" and PV$<>"5" and PV$<>"6" and PV$<>"7" and PV$<>"8" and PV$<>"9" then goto 100 195 if PV$ = PV1$ or PV$ = PV2$ or PV$ = PV3$ then goto 100 200 PV4$ = PV$ 210 If Mid$(SLUCH$,1,1)=PV1$ Then BIK% = BIK% + 1 220 If Mid$(SLUCH$,1,1)=PV2$ Or Mid$(SLUCH$,1,1)=PV3$ Or Mid$(SLUCH$,1,1)=PV4$ Then KOR% = KOR% + 1 230 If Mid$(SLUCH$,2,1) = PV2$ Then BIK% = BIK% + 1 240 If Mid$(SLUCH$,2,1)=PV1$ Or Mid$(SLUCH$,2,1)=PV3$ Or Mid$(SLUCH$,2,1)=PV4$ Then KOR% = KOR% + 1 250 If Mid$(SLUCH$,3,1)=PV3$ Then BIK% = BIK% + 1 260 If Mid$(SLUCH$,3,1)=PV1$ Or Mid$(SLUCH$,3,1)=PV2$ Or Mid$(SLUCH$,3,1)=PV4$ Then KOR% = KOR% + 1 270 If Mid$(SLUCH$,4,1)=PV4$ Then BIK% = BIK% + 1 280 If Mid$(SLUCH$,4,1)=PV1$ Or Mid$(SLUCH$,4,1)=PV2$ Or Mid$(SLUCH$,4,1)=PV3$ Then KOR% = KOR% + 1 290 print CHISLO$ + " " + str$(BIK%) + "B" + str$(KOR%) + "K" 300 COUNT% = COUNT% + 1 310 if BIK% = 4 then goto 500 320 BIK% = 0 : KOR% = 0 330 if COUNT% < 7 then goto 70 340 goto 520
500 if MESSAGEFORM("Congratulations!!","Yes","No","","You Win! Play again?") = -1 then END 510 goto 10 520 if MESSAGEFORM("Too Bad!!","Yes","No","","You Lost! Play again?") = -1 then END 550 goto 10
2000 ONE%=5+mod(rnd(1),5) 2010 TWO%=5+mod(rnd(1),5) 2020 If TWO%=ONE% Then GoTo 2010 2030 THREE%=5+mod(rnd(1),5) 2040 If THREE%=ONE% Or THREE%=TWO% Then GoTo 2030 2050 FOUR%=5+mod(rnd(1),5) 2060 If FOUR%=ONE% Or FOUR%=TWO% Or FOUR%=THREE% Then GoTo 2050 2070 SLUCH$ = str$(ONE%) + str$(TWO%) + str$(THREE%) + str$(FOUR%) 2080 return А это скомпилированный файл, на случай если кто-то просто хочет такую же игру, но не имеет понятия в программировании:
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
haav | Дата: Воскресенье, 09.02.2014, 06:52 | Сообщение # 2 |
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Статус: Offline
| Я забыл написать принцип и собственно вообще как играть. И так компьютер загадывает четырехзначное число, при этом в данном числе не может быть нулей и каждое из этих чисел уникальное. То есть такого числа компьютер загадать не может: 1204 или 1255
Зато такое может: 1234 или 5639 ....
Игрок не зная этого числа , может 7 раз ввести любые четырехзначные числа. И на основе этих семи чисел , подключив логическое мышление, разгадывает то, что загадал компьютер. Почему именно 7, наверно потому что мне всегда хватало 7 вариаций чтобы разгадать.
Теперь сам принцип мышления:
Например компьютер загадал число 1357
Вы первый раз вводите число 1234
Если посмотреть на эти два числа и сравнить, то ясно видно, что в обоих числах есть два совпадения (1 и 3) . При том 1 даже стоит на своем месте, ей компьютер присваивает статус "быка". Зато число 3 хоть и присутствует в числе , но стоит не на своем месте, ей компьютер присваивает статус "корова". В результате компьютер вернет: 1B1K (или 1 бык и 1 корова).
Возьмем два примера:
1) игрок ввел два значения из семи: 1234 (2K) 5678 (2K)
Если посмотреть внимательно на эти два числа, то становится ясно, что цифры 9 в этом числе не может быть по определению. Ведь в первом числе компьютер нашел 2 числа. Второе число не имеет сходства с первым и в нем так же компьютер нашел два числа. То есть нам нужно будет искать уже в 8 числах вместо 9.
2) Игрок уже успел ввести 4 значения:
1234 (2К) 4691 (2К) 8917 (2К) 3186 (1К)
Если присмотреться внимательно на цифру 1 , то становится ясно что ее в числе быть не может. Почему? Обратите внимание, что в каждом из четырех чисел, 1 стоит на разных местах, но нигде ей не присвоен статус "Бык" . Если бы 1 была в числе, то в одном варианте компьютер бы вернул что она является "быком" или попросту стоит на своем месте. Например если бы единичка стояла бы первой, то в первом варианте было бы возвращено (1Б1К).
Вот такими умозаключениями и разгадывается число.
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
haav | Дата: Среда, 12.02.2014, 12:41 | Сообщение # 3 |
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Статус: Offline
| Сделал чуть поудобнее набор цифр (без диалога), да небольшую картинку (типа заставки). Мне не хотелось перегружать архив картинками, поэтому только для экрана 240х320. Кому нужны другие размеры , меняйте размер картинки и изменяйте циферки в коде . У меня все размеры жестко привязанные к моему экрану. Для заставки использовал эту картинку:
Сам код:
Код 5 gelload "bg1","bg1.gif" 10 cls 30 iTemp1% = 1:iTemp2% = 1:iTemp3% = 1:iTemp4% = 1: iFlagConfirm% = 0 40 iValue% = 1 41 iCounterInput% = 1 50 KOR% = 0 51 BIK% = 0 52 COUNT% = 0 53 SLUCH$ = "" 55 drawgel "bg1",0,0 60 gosub 2000 65 sleep 2000 66 cls 67 print " " 68 gosub 1600 69 gosub 1500 70 gosub 700 75 if iFlagConfirm% = 1 then goto 90 80 goto 70 90 iFlagConfirm% = 0 110 if len(CHISLO$) <> 4 then goto 70 120 PV$ = mid$(CHISLO$,1,1) 130 if PV$<>"1" and PV$<>"2" and PV$<>"3" and PV$<>"4" and PV$<>"5" and PV$<>"6" and PV$<>"7" and PV$<>"8" and PV$<>"9" then goto 70 135 PV1$ = PV$ 140 PV$ = mid$(CHISLO$,2,1) 150 if PV$<>"1" and PV$<>"2" and PV$<>"3" and PV$<>"4" and PV$<>"5" and PV$<>"6" and PV$<>"7" and PV$<>"8" and PV$<>"9" then goto 70 152 if PV1$ = PV$ then goto 70 155 PV2$ = PV$ 160 PV$ = mid$(CHISLO$,3,1) 170 if PV$<>"1" and PV$<>"2" and PV$<>"3" and PV$<>"4" and PV$<>"5" and PV$<>"6" and PV$<>"7" and PV$<>"8" and PV$<>"9" then goto 70 172 if PV1$ = PV$ or PV2$ = PV$ then goto 70 175 PV3$ = PV$ 180 PV$ = mid$(CHISLO$,4,1) 190 if PV$<>"1" and PV$<>"2" and PV$<>"3" and PV$<>"4" and PV$<>"5" and PV$<>"6" and PV$<>"7" and PV$<>"8" and PV$<>"9" then goto 70 195 if PV$ = PV1$ or PV$ = PV2$ or PV$ = PV3$ then goto 70 200 PV4$ = PV$ 210 If Mid$(SLUCH$,1,1)=PV1$ Then BIK% = BIK% + 1 220 If Mid$(SLUCH$,1,1)=PV2$ Or Mid$(SLUCH$,1,1)=PV3$ Or Mid$(SLUCH$,1,1)=PV4$ Then KOR% = KOR% + 1 230 If Mid$(SLUCH$,2,1) = PV2$ Then BIK% = BIK% + 1 240 If Mid$(SLUCH$,2,1)=PV1$ Or Mid$(SLUCH$,2,1)=PV3$ Or Mid$(SLUCH$,2,1)=PV4$ Then KOR% = KOR% + 1 250 If Mid$(SLUCH$,3,1)=PV3$ Then BIK% = BIK% + 1 260 If Mid$(SLUCH$,3,1)=PV1$ Or Mid$(SLUCH$,3,1)=PV2$ Or Mid$(SLUCH$,3,1)=PV4$ Then KOR% = KOR% + 1 270 If Mid$(SLUCH$,4,1)=PV4$ Then BIK% = BIK% + 1 280 If Mid$(SLUCH$,4,1)=PV1$ Or Mid$(SLUCH$,4,1)=PV2$ Or Mid$(SLUCH$,4,1)=PV3$ Then KOR% = KOR% + 1 290 print " " + CHISLO$ + " " + str$(BIK%) + "B" + str$(KOR%) + "K" 300 COUNT% = COUNT% + 1 310 if BIK% = 4 then goto 500 320 BIK% = 0 : KOR% = 0 325 1420 iTemp1% = 1 : iTemp2% = 1 : iTemp3% = 1 : iTemp4% = 1: iCounterInput% = 1 : iValue% = 1 326 gosub 1600 : gosub 1500 330 if COUNT% < 7 then goto 70 340 goto 520
500 if MESSAGEFORM("Congratulations!!","Yes","No","","You Win! Play again?") = -1 then END 510 goto 10 520 if MESSAGEFORM("Too Bad!!","Yes","No","","You Lost! Play again?") = -1 then END 550 goto 10
700 if up(0) then gosub 1000 710 if down(0) then gosub 1100 720 if left(0) then gosub 1300 730 if right(0) then gosub 1200 740 if fire(0) then gosub 1400 745 sleep 130 750 return
1000 iValue% = iValue% + 1 1010 if iValue%>9 then iValue% = 1 1030 if iCounterInput% = 1 then iTemp1% = iValue% 1031 if iCounterInput% = 2 then iTemp2% = iValue% 1032 if iCounterInput% = 3 then iTemp3% = iValue% 1033 if iCounterInput% = 4 then iTemp4% = iValue% 1035 gosub 1600 1040 gosub 1500 1050 return
1100 iValue% = iValue% - 1 1110 if iValue%<1 then iValue% = 9 1130 if iCounterInput% = 1 then iTemp1% = iValue% 1131 if iCounterInput% = 2 then iTemp2% = iValue% 1132 if iCounterInput% = 3 then iTemp3% = iValue% 1133 if iCounterInput% = 4 then iTemp4% = iValue% 1135 gosub 1600 1140 gosub 1500 1150 return
1200 iCounterInput% = iCounterInput% + 1 1210 if iCounterInput%>4 then iCounterInput% = 1 1220 if iCounterInput% = 1 then iValue% = iTemp1% 1221 if iCounterInput% = 2 then iValue% = iTemp2% 1222 if iCounterInput% = 3 then iValue% = iTemp3% 1223 if iCounterInput% = 4 then iValue% = iTemp4% 1225 gosub 1600 1230 gosub 1500 1250 return
1300 iCounterInput% = iCounterInput% - 1 1310 if iCounterInput%<1 then iCounterInput% = 4 1320 if iCounterInput% = 1 then iValue% = iTemp1% 1321 if iCounterInput% = 2 then iValue% = iTemp2% 1322 if iCounterInput% = 3 then iValue% = iTemp3% 1323 if iCounterInput% = 4 then iValue% = iTemp4% 1325 gosub 1600 1330 gosub 1500 1350 return
1400 CHISLO$ = str$(iTemp1%)+str$(iTemp2%)+str$(iTemp3%)+str$(iTemp4%) 1410 iFlagConfirm% = 1 1430 return
1500 setcolor 0,0,0 1505 drawstring str$(iTemp1%),1*20+65,300 1510 drawstring str$(iTemp2%),2*20+65,300 1520 drawstring str$(iTemp3%),3*20+65,300 1530 drawstring str$(iTemp4%),4*20+65,300 1550 return
1600 setcolor 255,255,255 1610 FILLRECT 1*20+64,299,100,21 1620 setcolor 0,0,0 1630 drawrect iCounterInput%*20+64,299,10,20 1640 return
2000 ONE%=5+mod(rnd(1),5) 2010 TWO%=5+mod(rnd(1),5) 2020 If TWO%=ONE% Then GoTo 2010 2030 THREE%=5+mod(rnd(1),5) 2040 If THREE%=ONE% Or THREE%=TWO% Then GoTo 2030 2050 FOUR%=5+mod(rnd(1),5) 2060 If FOUR%=ONE% Or FOUR%=TWO% Or FOUR%=THREE% Then GoTo 2050 2070 SLUCH$ = str$(ONE%) + str$(TWO%) + str$(THREE%) + str$(FOUR%) 2080 return И конечно сам файл во вложении, кому лень компилить
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
|