コード例 #1
0
 void gen_board(std::ostream& os, const sliding_puzzle& sp, 
     const sliding_puzzle::position& pos, const sliding_puzzle::move* pshow_move = NULL) {
     const int npieces = sp._pieces.size();
     for (int i = 0; i < npieces; i++) {
         if (pshow_move && pshow_move->piece_id == i) continue;
         os << "\n  ";
         const sliding_puzzle::piece& piece = sp._pieces[i];
         gen_piece(os, piece, pos.offsets[i], i, pshow_move ? "piece" : "piece_selected");
     }
     if (pshow_move) {
         //  the ghost move piece
         int8_t piece_id = pshow_move->piece_id;
         offset offs = pos.offsets[piece_id];
         offs.dx += pshow_move->dx;
         offs.dy += pshow_move->dy;
         gen_piece(os, sp._pieces[piece_id], offs, piece_id, "piece_selected");
         gen_piece(os, sp._pieces[piece_id], pos.offsets[piece_id], piece_id, "piece_ghost");
     }
 }
コード例 #2
0
ファイル: processing.c プロジェクト: Kraftyy/42
static void		create_piece(t_list **head, char *buf, char letter)
{
	t_list		*node;
	t_tetri		t;

	gen_piece(&t);
	get_piece_metrics(buf, &t);
	t.letter = letter;
	t.height = t.ymax - t.ymin + 1;
	t.width = t.xmax - t.xmin + 1;
	buf_to_struct(buf, &t);
	if (!(node = ft_lstnew(&t, sizeof(t_tetri))))
		return ;
	ft_lstadd(head, node);
}