Давайте всем форумом напишем вот эту игру. Причем так, что бы в ней были режимы как одно пользовательской ( с ИИ ) так и много пользовательской игры, желательно еще и игру по локалке. сделать все вместе согласны такой общий проект?
--------------------
Нам не дано предугадать как наше слово отзовется...
type tplayer = record hand : array [ 0..6 ] of char; score : integer; put : array [ 0..6 ] of char; puts : integer; end;
tbag = record plates : array [ 0..33, 0..1 ] of integer; inside : integer; end;
type tgame = record field : tfield; player1 : tplayer; player2 : tplayer; bag : tbag; end;
procedure nill_field(var field : tfield); var i, j : integer; begin for i:= 0 to 14 do for j:= 0 to 14 do field[i,j]:='_'; end;
procedure nill_player(var player : tplayer); var i: integer; begin for i:= 0 to 7 do begin player.hand[i]:='_'; player.put[i]:='_'; end; player.score:=0; player.puts:=0; end;
procedure fill_bag(var bag : tbag); var bag_file : text; var i : integer; begin assign(bag_file,'bag.res'); reset(bag_file); for i := 0 to 33 do begin read(bag_file, bag.plates[i,0]); bag.plates[i,1]:=i; end; close(bag_file); end;
procedure bag_move(var bag : tbag ); var i, j : integer; begin for i:= 0 to 32 do if bag.plates[i,0] = 0 then for j:= i+1 to 33 do begin bag.plates[j-1,0]:=bag.plates[j,0]; bag.plates[j-1,1]:=bag.plates[j,1]; end; end;
procedure hand_move(var player : tplayer); var i,j : integer; begin for i:= 0 to 5 do if player.hand[i]= '_' then for j:= i+1 to 6 do player.hand[j-1]:=player.hand[j]; end;
function hand_length(var player : tplayer) : integer; var i : integer; begin hand_move(player); i:=0; while (player.hand[i]<>'_') and not(i>=6) do inc(i); if player.hand[6]<>'_' then inc(i); result:=i; end;
procedure init_game(var game : tgame); begin { fill_bag(game.bag);} nill_field(game.field); nill_player(game.player1); nill_player(game.player2); end;
procedure show_field_in_text_mode( field : tfield ); var i, j : integer; begin write(' '); for i := 0 to 14 do if (i div 10) = 1 then write(1,' ') else write(0,' '); writeln; write(' '); for i := 0 to 14 do write(i mod 10,' '); writeln; writeln; for i := 0 to 14 do begin if (i div 10) = 0 then write('0',i,' ') else write(i,' '); for j := 0 to 14 do write(field[j,i],' '); writeln; end; end;
var game : tgame; begin init_game(game); show_field_in_text_mode(game.field); readln; end.
--------------------
Нам не дано предугадать как наше слово отзовется...