Bikák és tehenek

Bikák és tehenek

Ez a fajta játék, mint ezt. Tud valaki egy linket a végrehajtásáról (a forrásnál)? Vagy valaki még tudja, az algoritmus?
Ilyen körülmények között a következők: a személy úgy gondolja, a (4 számjegy), és a számítógép megpróbálja kitalálni. De nem csak ezt: kínál saját verzióját, és a felhasználó választ: Hány bikák (számok, állva a helyükön), és a tehenek (számok jelen az ismeretlen számú, de nem állt a hely).
Várom, hogy valaki ezt mondja.

Szeretem, ha valami, ha találok - küldeni.

Jött pliz.
Talán még valaki?

Én nem, de Chezerella st könyv „Vázlatok programozás” - van ez a játék a leírást az optimális stratégia. Ez egyszerű -, hogy létrejöjjön a teljes készlet kombinációja. És miután minden kísérlet nem lehet törölni (sok közülük). Minden mozdulat úgy van kialakítva, hogy számának csökkentése darabokból min. Továbbra is tárcsázni statisztikája emberi preferenciák. Általában a szempontból egy számítógépes játék nem iteresesnaya - merev algoritmus. Játék egy sor „stratégia nélkül a játék” (Van egy könyv J. Arzak - régi, de van is szétszerelt)

Szerettem volna legalább egy darab kódot.
Hogyan kell tárolni a beállításokat (array be.) Hogyan kell kezelni, hogy a felhasználó által megadott (ismerete nélkül, mi a valódi számok, és melyek nem nehéz kitalálni variációk szeretnek emlékezni, amit a felhasználó megadott, és ez volt kényelmes a használata akkor?). Röviden, nincs semmi jó történt, akkor még mindig olyan gondolatok / tanácsot?

az ellenkezőjét. hagyja, hogy a szám a számítógép gondol, és kitalálja az ember. de általában a megoldás egy sor négy bejegyzés

Úgy érzem, hogy az igazság valahol a közelben, de Mulder és nem tudom felfogni :).
Látták TButton feltételezett Gondolom arról, hogy egy tömb négy bejegyzés.

Ez olyan, mint ez:
TMyArray = array [0..3] A
rekord
byte_: byte;
bol: logikai;
végén;
vagy úgy

TMyArray = array [0..9999] A
byte1: byte;
byte2: byte;
byte3: byte;
byte4: byte;
bol: logikai;
végén;

Vagy valami mást.
Az sem egyértelmű, hogy ezt a tömböt tenni.
Gombot (nevezheted ismerősen, nem mint egy osztály, valamint annak képviselője, anélkül, hogy T.)) van, kérjük, adja meg.
Sajnáljuk, ha írok hülyeségeket.

rekord

írja TMyRec = rekord
# XA0; kitalálni: logikai; // igaz - találgatás
# XA0; num: byte; # XA0; # XA0; # XA0; // száma (ha azt sejtette - nem én)
végén;

sor

ás: array [1..4] a TMyRec;

egy darab kódot

i: = 1-től 4 do
# XA0; ha ás [i] .guess
# XA0; # XA0, majd a Folytatás
# XA0; # XA0; mást ás [i] .dig: = Random (10);

C, N, ha a képviselő, akkor jobb, ha Button1. de még mindig használják, mint egy osztály.

Ps, gondoltam. lehetséges anélkül, T, de aztán - ruglishem (azaz Baton)

> Törölt moderátor
Mert mi van?
> TButton
Attól tartok, nem szánt, nem tudjuk, mikor kell tenni quess: = igaz, mert a felhasználó nem mondja el nekünk a helyes számjegyet!

Játék a tér egy tömb típusú (ha 4 számjegy)

Játék: array [0..9,0..9,0..9,0..9] Boole;

Kezdetben minden igaz (azaz minden lehetőség lehetséges)

Bár lehet telepíteni, és egy vektor.

Ha van egy kombinációs ABCD - ismert és Colvai bikák (x) és tehenek (y), és X<>4 egyértelmű, hogy a kombináció önmagában nem alkalmas (zhnachit válik hamis). Következő prostrannstvo felülvizsgálata lehetőséget. És proizovim yatseykoy felett minden egyes művelet típusú játék [i, j, k, n] és canbe (); Canbe ad Igaz, ha a módosítás abcd ismert x és y adhat ijkn és hamis egyébként (pl ha van egy 1111 - és a nulla bikák és tehenek, a kombináció legalább egy yedinichku lesz hamis). Ezután válassza ki az új kurzus a tér játék Igaz, jól, stb amíg nincs egyetlen érték.

Meg kellett írni arról, ahogy egy csomó lehetőséget varyantov jött létre:

típus
Négy számjegyű = rekord
# XA0; a. 0..9;
# XA0; b. 0..9;
# XA0 c. 0..9;
# XA0; d. 0..9;
végén;

const
FileName = "data.txt";

eljárás TFormMain.ButtonCreateDataFileClick (Sender: TObject);
var
Cykl. integer;
A, B, C, D. 0..9;
Outfile. TextFile;
TempArray. array [0..9999] a négy számjegyű;
OutRecCount. integer;
kezdődik
# XA0; OutRecCount: = 0;
# XA0; az Cykl: = 0-9999 do
# XA0; kezdődik
# XA0; # XA0; A: = # XA0; Cykl DIV 1000;
# XA0; # XA0; B: = (Cykl- (A * 1000)) DIV 100;
# XA0; # XA0; C: = (Cykl- (A * 1000) - (B * 100)) DIV 10;
# XA0; # XA0; D: = (Cykl- (A * 1000) - (B * 100) - (C * 10));

# XA0; # XA0, ha nem ((A = B) vagy (A-C) vagy (A = D) vagy (B = C) vagy (B = D) vagy (C = D)), majd
# XA0; # XA0; kezdődik
# XA0; # XA0; # XA0; TempArray [OutRecCount] .a: = A;
# XA0; # XA0; # XA0; TempArray [OutRecCount] .B: = B;
# XA0; # XA0; # XA0; TempArray [OutRecCount] .c: = C;
# XA0; # XA0; # XA0; TempArray [OutRecCount] .D: = D;
# XA0; # XA0; # XA0; INC (OutRecCount);
# XA0; # XA0; end;
# XA0; end;
# XA0; AssignFile (OUTFILE, fájlnév);
# XA0; átírási (outfile);
# XA0; az Cykl: = 0 OutRecCount-1 do
# XA0; kezdődik
# XA0; # XA0; levelet (kifájl, TempArray [Cykl] .a, TempArray [Cykl] .B, TempArray [Cykl] .c, TempArray [Cykl] .D);
# XA0; end;
# XA0; CloseFile (outfile);
végén;

ha egy program elindítása zagruzhassya tömb:

const
FileName = "data.txt";
ArrayLength = 5 '

var
DataArray. array [0..ArrayLength] a négy számjegyű;

eljárás TFormMain.FormCreate (Sender: TObject);
var
Infile. Fájl bájt;
Cykl # XA0;. integer;
A, B, C, D. byte;
kezdődik
# XA0; AssignFile (infile, fájlnév);
# XA0; visszaállítása (infile);
# XA0; az Cykl: = 0 ArrayLength do
# XA0; kezdődik
# XA0; # XA0; olvasni (infile, A, B, C, D);
# XA0; # XA0; DataArray [Cykl] .A: = StrToInt (Chr (A));
# XA0; # XA0; DataArray [Cykl] .B: = StrToInt (Chr (B));
# XA0; # XA0; DataArray [Cykl] .C: = StrToInt (Chr (C));
# XA0; # XA0; DataArray [Cykl] .D: = StrToInt (Chr (D));
# XA0; # XA0; Application.ProcessMessages;
# XA0; end;
# XA0; CloseFile (INFILE);
végén;


és a további, például antennarendszer választották a felvétel után, és választ felhasználó rendelkezik (bp 3: 2) megfelelt az új tömb, csak azokat a rekordokat, amelyek megfelelnek a választ.
(És akkor számít, hogy néhány szám a tömbben több, stb.) Ennek elégnek kell lennie.

Új vagyok a Delphi. de a fordítás e program VB # XA0, és hogy maga írt csak azt nem, hogy egy személy úgy gondolja, a szám és a program küld, ha érdekel.

> Arximed
Amikor azt gondolja, a számítógép - megvalósított sokkal könnyebb. És nem egy példa, amikor a számítógép kitalálja én nem találtam. Próbálom levelet magam :).

Én is úgy gondolja, a számítógép, csak trükk.

www.algolist.manual.ru - nézd, ott, ahol a számítógép találgatások.

Kapcsolódó cikkek