Hiển thị các bài đăng có nhãn all projects. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn all projects. Hiển thị tất cả bài đăng

Thứ Sáu, 9 tháng 3, 2012

__article_master

Tạo bài viết trên web chuyên nghiệp & hiệu quả.
Yêu cầu:
Theo lỗi viết tài liệu (xem thêm cấu trúc viết tài liệu của dự án hquery (founder: Mr. Hoang) ). Bài viết sẽ có những khái niệm, những từ khái niệm đó sẽ được gạch chân có liên kết đến 1 site giải thích khái niệm đó.

đưa các khái niệm vào ngăn chứa:
concepts=[];
concepts['khai niem 1']="link1";
concepts['khai niem 2']="link2";
...
trong 1 vùng không xem không được dầy đặc các link khái niệm trùng nhau.

Thứ Bảy, 3 tháng 3, 2012

Lập trình trò chơi sudoku

-thiết kế CSDL cho trò chơi sudoku.
-học nukeviet
-thiết kế module admin quản lý cho https://travel.com.vn


Hướng dẫn giải thuật sudoku.
Demo:

Quy luật:
Bài toán:
Giả sử cho ma trận N x N
=> Các phần tử của ma trận được xắp xếp sao cho không trùng với phần tử nào của dòng & cột giao với phần tử đó.





Quy ước
Phần tử được đặt trên ma trận N x N.
Phần tử ở vị trí dòng $i & cột $j thì ký hiệu: ($i, $j)
Vị trí được tính bắt đầu tử 0.

 [FALSE]: xẩy ra trong trường hợp thêm phần tử nhưng không hợp lệ theo luật của trò chơi.
[DONE]: xẩy ra khi các phần tử trong bàn sudoku đã lấp đầy.
-mầu xanh: thuộc về javascript.

Overview:
Toàn bộ trương trình sử dụng 1 file để chạy (index.php).

Querystring:
Truyền vào site theo phương thức GET.
do
-Nếu không có tham số do or tham số do=’game’ thì chạy game sudoku.
-Nếu tham số do=’check_item’ thì kiểm tra phần tử đó có hợp lệ so với ma trận sudoku đã thiết lập ban đầu không ?
-Nếu do=’suggest_item’ thì gợi ý phần tử cho player.
matrix
Chuỗi mảng ma trận được mã hóa: ma trận khuyết thiếu ban đầu & trong quá trình chơi game.
i
Chỉ định dòng i của phần tử: vị trí phần tử muốn thiết lập or cần gợi ý.
j
Chỉ định cột j của phần tử: vị trí phần tử muốn thiết lập or cần gợi ý.
a
Giá trị của phần tử muốn thiết lập.
size
Kích thước sudoku.
matrix_origin
Ma trận gốc.

Đối tượng (Elements):
Id= matrix_string
Hứng kết quả chuỗi ma trận mới trong quá trính chơi game.
Nếu thiết lập phần tử thành công thì thêm phần tử đó, ngược lại thì xóa phần tử đó. Thiết lập chuỗi ma trận mới vào đối tượng này.
Note: nếu phần tử thiết lập không hợp lệ thì có thêm chuỗi [FALSE].
Id=sudoku
Bảng chứa bàn sudoku.
Name=auto_check
Hộp kiểm cho phép game có kiểm tra phần tử ngay sau khi player nhập hay không?
Name=size
Thay đổi kích thước sudoku.
reset
Nút nạp lại thiết lập.

Global variables
$size
Kích thước ma trận vuông sudoku.
__item

Mảng 2 phần tử:
Phần tử 1: chuỗi xác định vị trí phần tử sẽ gợi ý.ie: 2-1
Phần tử 2: đối tượng <input> của phần tử.
_enabled_valid=false
Bật tắt tính năng kiểm tra ngay.

get_col_items($n)
Lấy mảng các phần tử của cột $n. (được tính từ 0)
get_row_items($n)
Lấy mảng các phần tử của dòng $n. (được tính từ 0)
rand_rows()
Hoán đổi ngẫu nhiên các dòng trong ma trận $grid.
generate_item($i,$j)
Tính toán đưa ra phần tử ở vị trị dòng $i, cột $j.
Giải thích:
-lấy hợp dòng cột của ($i, $j). (1)
-tìm các phần tử ở top-right của phần tử ($i,$j). (2)
+nếu (2) không tìm thấy thì lấy 1 số ngẫu nhiên trong đoạn [1, $size] trừ các phần tử ở (1).
+còn lại:
   Xóa các phần tử của (2) có trong (1) à
          *sau khi xóa nếu có phần tử:
           -còn lại hơn 1 phần tử thì lấy giao với các phần tử của cột tiếp theo. à lấy 1 phần tử ngẫu nhiên trong kết quả đó.
          *nếu không có phần tử thì lấy ngẫy nhiên trong [1, $size] trừ (1).

group_top_right_items($i,$j)
Lấy các phần tử ở phía bên phải & ở đỉnh (top-right) tính tử phần tử ở vị trí thứ dòng $i, cột $j.
Ie: figure-1.png
Trả về các phần tử trùng nhiều nhất or các phần tử không trùng. Nếu không tìm thấy phần tử nào thì trả về false.
à Các phần tử ở top-right của phần tử ($i, $j).
get_total_items($i,$j)
Trả về hợp các phần tử trên dòng & cột giao nhau của phần tử được xác định bởi dòng $i, cột $j.
à Hợp dòng cột của ($i, $j).
Note: nếu tồn tại phần tử ở vị trí ($i, $j) thì xóa nó đi.
init()
Khởi tạo ma trận sudoku.
show_game($opt1=true,$opt2=’miss_items’)
Hiển thị trò chơi $grid. Với ma trận đã khuyết 1 vài phần tử ngẫu nhiên.
Nếu $opt=true thì hiển thị trò chơi.
$opt2=’miss_items’: Hàm trả về chuỗi các phần tử đã bị khuyết.
i-j,…’.
Còn lại trả về ma trận của game đã bị khuyết. (Note: không làm ảnh hưởng đến kết $grid kết quả)
valid_item($i,$j,$a)
Kiểm tra sử hợp lệ của phần tử ở vị trí ($i,$j) có giá trị $a.
suggest_result($opt=true,$id='sudoku')
Hiển thị toàn bộ ma trận sudoku gốc. Nếu $opt=true thì hiển thị. Thiết lập $id cho sudoku.
Hàm trả về chuỗi html hiển thị.
matrix_string()
Mã hóa ma trận $grid thành chuỗi.
_input_item_event(O)
Hàm sự kiện của phần tử khi thay đổi giá trị.
disable_all(opt)
opt=true/false (Enabled/disabled) ô nhập phần tử khuyết.
suggest_item(p)

Gợi ý phần tử, khi chọn phần tử & click vào nút suggest.
focus_item(p)
Sự kiện kích hoạt tính năng gợi ý cho phần tử <input>
Note: lưu vị trí của phần tử vào biến item.
parse_text(html)
Lấy kết quả trả về khi gọi site. Là giá trị của <textarea> đầu tiên.

Một số hàm khác: cross_array, get_rand_item, pick_rand_number, shift,… tham khảo hphp.php.docx

Thứ Sáu, 2 tháng 3, 2012

Hiển thị người có tên trùng nhau nhiều nhất

aNgôn ngữ VB6



Cho danh sách gồm n người. Hiển thị người có tên trùng nhau nhiều nhất.


------------------------------------------------------------------
Download execuable:
  Tim nguoi co trung ten nhieu nhat.exe   40.0 KB 

Mọi bài tập của chúng tôi các bạn có thể tìm ở: http://code.google.com/p/vb-6-api/downloads/list
Screenshot





Đối tượng
danh_sach
listbox (1) chứa danh sách các tên.
view
listbox (2) chứa kết quả.
Cmd_them
Nút thêm tên được lấy từ txt_nhap(4)
Cmd_sua
Nút sửa tên có trong danh_sach(5)
Cmd_xoa
Xóa 1 tên trong danh_sach(6)
Cmd_max
Tìm người có tên trùng nhiều nhất trong danh_sach.(7)
Txt_nhap
Hộp nhập tên. (3)


Giải thích hàm
add_or_modify_to_list(txt   As String,i As Double)
Thêm or sửa item của danh_sach
get_item_selected(opt As String)
Lấy 1 item đã lựa chọn trong danh_sach.
Nếu opt=”index”: trả về chỉ số của item được chọn.
Nếu opt=”text”: trả về tên hiển thị của item được chọn.
Note: nếu không có item được chọn thì trả về -1 (“index”) or chuỗi rỗng (“text”).
del_item_at(i As Integer)
Xóa 1 item ở vị trí i nếu tồn tại.
get_name(name As String) As String
Lấy tên từ chuỗi họ tên đầy đủ name.
isset(key As String, ByRef d)
Thừa nhận mảng d có cấu trúc:
Mang()=[“nhãn”,value]
-Hàm kiểm tra nhãn key có tồn tại trong mảng d không?
prep_struct(key As String, size As Integer)
Trả về cấu trúc mảng có 2 phần tử: phần tử 1 là giá trị key, phần tử 2 là mảng có kích thước size.
set_name(ByRef d, key As String, fullname)
Thêm giá trị tên đầy đủ fullname vào mảng d có nhãn key.
Note: đã thừa nhân cấu trúc mảng đã nói ở trên.
add_view_only_name(data)
Thêm tên item cho đối tượng view bởi mảng data(0) à chỉ lấy tên trùng.
add_view_all_name(data)
Thiết lập item cho đối tượng view bởi mảng data(1) à tất cả các tên trùng nhau.


Download full: 


Ngôn ngữ PHP


/*------begin of functions--------*/
function get_name($name){
 preg_match('|[^\s]+$|',$name,$g);
 if(count($g)) return $g[0];
}

/*------end of functions---------*/
$list_name=array(
 "nguyen van A",
 "nguyen van B",
 "le thi B",
 "dinh nghia B",
 "Hoang hoa B",
 "A"
 );

$filter=array();
$result=array();

foreach($list_name as $name){
 if(!isset($filter[get_name($name)])) $filter[get_name($name)]=array();
 $filter[get_name($name)][]=$name;
}

foreach($filter as $label=>$group)
{

 if(isset($n)){
  if(count($group)>$n){
   $n=count($group);
   $result[$label]=$group;
  }
 }else 
  $n=count($group);
}

if(count($result)==0) $result=$filter;

var_dump($result);

 
Copyright © hoangit