Hiển thị các bài đăng có nhãn Lập trình. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Lập trình. Hiển thị tất cả bài đăng
3

Code Demo vẽ biểu đồ Chart trong android dùng AchartEngine

Posted by chazo1994 on 06:41 in

ACHARTENGINE

Đây là code class demo vẽ đồ họa bằng achartengine
trước tiên vào đây để Download thư viện (down file jar)
trong android studio chuyển sang chế độ project copy file jar và paste vào thư mục libs
rồi chuyển về chế độ android
vào app -> build.grade (module) tìm để phần dependency{ .. } thêm dòng này vào
compile files('libs/achartengine120.jar')
 "achartengine120" sửa thành tên file jar của bạn

sau đó ấn build vậy là dùng đc thư viện achartengine rùi!!!

sau đây là class mình viết demo và có giải thích vài phần trong đó


 package com.example.thinh.designfilter.Util;  
 import android.graphics.Color;  
 import android.graphics.Paint;  
 import android.widget.LinearLayout;  
 import com.example.thinh.designfilter.DrawFilterActivity;  
 import org.achartengine.ChartFactory;  
 import org.achartengine.GraphicalView;  
 import org.achartengine.chart.PointStyle;  
 import org.achartengine.model.XYMultipleSeriesDataset;  
 import org.achartengine.model.XYSeries;  
 import org.achartengine.renderer.XYMultipleSeriesRenderer;  
 import org.achartengine.renderer.XYSeriesRenderer;  
 /**  
  * Created by thinh on 11/22/2015.  
  * class manage drawable Chart on Activity  
  */  
 public class DrawSignal {  
   private GraphicalView myChart;  
   private XYSeriesRenderer signalRenderer;  
   private XYSeries signalSeries;  
   private XYMultipleSeriesRenderer mySeriesRender;  
   private XYMultipleSeriesDataset mySeriesDataset;  
   private LinearLayout llChart;  // draw chart on listview of activity
   private DrawFilterActivity drawFilterActivity;  
   public DrawSignal(DrawFilterActivity drawFilterActivity, LinearLayout llChart ){  
     this.llChart = llChart;  
     this.drawFilterActivity = drawFilterActivity;  
   }  
   /*  
   * initialize all configuration to Chart  
   * */  
   public void initChart(){  
     signalRenderer = new XYSeriesRenderer();  
     mySeriesRender = new XYMultipleSeriesRenderer();  
     mySeriesDataset = new XYMultipleSeriesDataset();  
     //creat signal and filter that you want draw  
     signalSeries = new XYSeries("pulse");  
     // set XYSeriesRender to render data on screen   
     signalRenderer.setColor(Color.BLUE);  
     signalRenderer.setDisplayBoundingPoints(true);  
     signalRenderer.setPointStyle(PointStyle.CIRCLE);  
     signalRenderer.setPointStrokeWidth(1);  
     //set Render Control full chart (control: color, axist, background , line ...)  
     mySeriesRender.addSeriesRenderer(signalRenderer);  
     mySeriesRender.setPanEnabled(false, false);  
     mySeriesRender.setYAxisMax(0.5);  
     mySeriesRender.setYAxisMin(0);  
     mySeriesRender.setShowGrid(true);  
     mySeriesRender.setGridColor(Color.BLACK);  
     mySeriesRender.setMarginsColor(Color.argb(0x00, 0xff, 0x00, 0x00)); // transparent margin  
     mySeriesRender.setXLabels(10);  
     mySeriesRender.setYLabels(10);  
     mySeriesRender.setXLabelsColor(Color.BLUE);  
     mySeriesRender.setYLabelsColor(0, Color.BLUE);  
     mySeriesRender.setAxisTitleTextSize(5);  
     mySeriesRender.addXTextLabel(mySeriesRender.getXAxisMax(), "n");  
     mySeriesRender.addYTextLabel(mySeriesRender.getYAxisMax(), "h[n]");  
     mySeriesRender.setPointSize(4);  
     // add data signal and filter to dataset  
     mySeriesDataset.addSeries(signalSeries);  
     /*mySeriesDataset.addSeries(filterSeries);*/  
   }  
   /*  
   * Add data to XYSeries  
   * */  
   public void addData(double[] filters,int M){  
     for(int i = 0; i<M;i++){  
       signalSeries.add(i,filters[i]);  
     }  
   }  
      /*  
      * here is code to draw data in object signalRenderer on screen managed by mySeriesRender  
      */  
   public void DrawChart(double[] filters, int M){  
     initChart();  
     addData(filters,M);  
     GraphicalView gvChart = ChartFactory.getLineChartView(drawFilterActivity, mySeriesDataset, mySeriesRender);  
     //GraphicalView gvChart = ChartFactory.getBarChartView(drawFilterActivity, mySeriesDataset, mySeriesRender, BarChart.Type.DEFAULT);  
     llChart.addView(gvChart);  
   }  
 }  

0

Ứng dụng Ghis

Posted by chazo1994 on 09:05 in

GHIS


PHẦN A: Tổng quan ý tưởng và tình trạng thực hiện

1) Ý tưởng
Tạo một ứng dụng với mục đích chính là giúp đỡ cho các em học sinh có hứng thú hơn với lịch sử
ứng dụng sẽ gồm 3 phần chính sau
  1- game lịch sử: xây dựng giống hình thức game ai là triệu phú với ngân hàng các câu hỏi lịch sử theo dạng trắc nghiệm (kiếm nguồn chắc từ google) có nguồn rồi kiểm duyệt.
  2- tutorial trợ giúp học lịch sử sẽ xây dựng serial các bài học ko theo chuẩn quy tắc nào mà chỉ là tổng hợp những sự kiện lịch sử lớn theo dòng thời gian dọc chiều dài lịch sử việt nam
nội dung mỗi bài gồm hai phần. phần chính là một clip có thể là hoạt hình minh họa về sự kiện đó
phần hai là tóm tắt nội dung bằng văn bản nêu nguyên nhân kết quả ý nghĩa và một đoạn comment mang ý kiến chủ quan theo quan điểm cá nhân của người soạn
 3- nhân vật lịch sử là một list các nhân vật lịch sử nổi tiếng của việt nam có cấu trúc như phần 2 nhưng về phần text có thay đổi và bỏ phần comment
 2) Tình trạng thực hiện
- thiết kế được layout,  thiết kế xong cơ sở dự liệu
- code được các khung giao diện chính với phần 1,2 là 2 fragment của tabs selection và 1 được focus trên main UI, phần 3 được đưa vào một list trong navigation bar drawer.

PHẦN A: Share app demo phần khung

Đang trong quá trình làm nên mới code được phần giao diện khung
đây là file apk để xem tham khảo
apkGhis

0

WEATHER APPLICATION ANDROID

Posted by chazo1994 on 12:06 in
Development application weather android

PHẦN MỘT: CHẠY THỬ ỨNG DỤNG ĐÃ ĐƯỢC XÂY DỰNG

DOWNLOAD  file sau về giải nén và copy file app-debug.apk vào smartphone or tablet rồi chạy ( install)

nếu máy của bạn có báo lối sau: Install blocked: For security, your .... is set to block installation of apps obtained from unknown source (nó chỉ muốn cho tải từ play store thôi =))))

=> cách giải quyết: vào Settings -> Security -> tim đến dòng Unknown sources và check vào đó nó hiện ra một cái ô thì ấn ok là được.
sau khi thiết lập như trên thì quay lại chạy file apk vừa down!
vậy là thành công và chạy thử thôi =))) thanks you!

PHẦN HAI: DÀNH CHO DEVELOPER

Download source code ứng dụng thời tiết trên android tại đây: tải source tại đây

sau khi giải nén thì mở bằng android studio vào file chọn open rồi tìm đến nơi chứa project và chọn cái project vừa giải nén (nó sẽ hiện biểu tượng màu xanh là cây của android studio).

nếu chỉ cần lấy source code thì vào phần sau: bkdacweather\app\src\main trong đó có thể lấy cả phần layout và mã nguồn java



0

GAME PSG JAVA ĐÁNH QUÁI NHIỀU MAP

Posted by chazo1994 on 09:35 in

SƠ ĐỒ KẾ HOẠCH LÀM GAME PSG


4

Xây dựng một game nhập vai SimpleRPG

Posted by chazo1994 on 12:23 in
ĐỀ TÀI
Người chơi có các ch s: Health Point, Attack, Defense, Speed… Quái vt có nhiu loi khác nhau và cũng có các ch s tương t người chơi. Có nhiu vùng đt khác nhau, được xác đnh trên mt mng hai chiu. Mỗi vùng đất có một số loại quái vật khác nhau với xác suất gặp khác nhau.
3
2
4
END
4
1
2
4
2
4
3
2
M0
2
0
1
Mi khi gp quái vt, người chơi có th b chy hoc có th li đánh quái vt. Khi quái vt b giết, người chơi sẽ nhận điểm kinh nghiệm để lên Level và tăng chỉ số. Người chơi có th di chuyển trên bản đồ, nếu đến M0, M1, M2… sẽ chuyển sang các map tương ứng. Trò chơi kết thúc khi người chơi di chuyển đến END.

Ghi chú: Sinh viên có th t phát trin hoặc thay đổi các yếu t trong game

PHÂN TÍCH YÊU CẦU ĐỀ TÀI:
-)người chơi sẽ nhập vai vào nhân vật. xây dựng nhân vật với các chỉ số Health Point, Attack, Defense, Speed... và quái vật cũng vậy
 người chơi di chuyển đến từng map để đánh quái vật mỗi map có một loại quái vật khác nhau . khi đánh thắng người chơi sẽ tăng level vậy sẽ cần quản lý nhân vật và quái vật với các chỉ số để tính toán thắng bại.
-) đánh quái cần quản lý chuyển động của người chơi
-) sau khi đánh thắng người chơi sẽ di chuyển đến map khác vậy cần quản lý tất cả các map.
-)mỗi map lại khác nhau vậy cần quản lý riêng từng map.
-) khi đến map cuối sẽ chiến thắng.

CÁC LỚP CẦN XÂY DỰNG:
Jfigure: quản lý nhân vật
Jmonster: quản lý quái vật
Jmove: quản lý chuyển động người chơi
Jmap: quản lý từng map
Jfullmap: quản lý bản đồ lớn

XÁC ĐỊNH THUỘC TÍNH VÀ PHƯƠN THỨC TỪNG LỚP:
class Jfigure: 
+) thuộc tính: 
         int Health Point, Attack, Defense, Speed, EXP, LEVEL,x,y; //x,y là tọa độ nhân vật
         Jmove move;
         Jmap  map;
+) phương thức:
       khởi tạo nhân vật;
       di chuyển;
       đánh quái;
       di chuyển giữa các map;
        hủy nhân vật;
class Jmonster:  
+) thuộc tính:
     
int Health Point, Attack, Defense, Speed;
      Jmove move;
      Jmap  map;
+) phương thức:
       khởi tạo quái vật;
       di chuyển;
       đánh nhân vật;
        hủy quái vật;
class Jmove
+) thuộc tính:
       int x,y;
       Jmap map;
+) phương thức:
       khởi tạo;
        tiến;
       lùi;
       đánh quái;
       hủy;
class Jmap
+) thuộc tính:
       int long,wide, loc; // loc vị trí quái
+) phương thức
       khởi tạo;
       hủy;
class Jfullmap
+thuộc tính:
        int long,wide;
        Jmap map, beginmap,endmap;
+)phươn thức:
         khởi tạo;
         hủy;

0

GIẢI ĐỀ CẤU TRÚC DỮ LIỆU GIẢI THUẬT

Posted by chazo1994 on 08:08 in
ĐỀ BÀI

BÀI 1
gọi T(n) là thời gian tính của bài toán
ta có thời gian tính mỗi bài toán con là T(n/2)
và có 2 bài toán con!
vậy thời gian tình của thuật toán đệ quy là
T(n)=2*T(n/2)+n+7=2*T(n/2)+O(n)
ta có a=2; b=2; k=1;
áp dụng định lý thợ rút gọn ta có a=b^k;
suy ra T(n)=O(nlogn);

BÀI 2


#include<iostream>
using namespace std;
struct linkedlist
{
    int data;
    struct linkedlist *next;
};
typedef struct linkedlist node;
int deletep(node *p)
{
    int temp = p->data;
    node *t = p->next;
    p->data = t->data;
    p->next = t->next;
    delete t;
    t = NULL;
    return temp;
}


BÀI 3

a)biểu thức hậu tố!
28 4 2 + * 24 38 - 28 14 / * /
b) trình diễn thuật toán:
khởi tạo ngăn xếp rỗng
b1: duyệt biểu thức từ trái qua phải
b2: nếu gặp toán hạng thì (push) đưa giá trị của nó vào ngăn xếp
b3: nếu gặp phép toán thì thực hiện phép toán này với hai toán hạng được lấy ra  (pop) từ ngăn xếp
b4: cất giữ (push) giá trị tính được vào ngăn xếp
b5: tiếp tục duyệt cho đến khi trong ngăn xếp chỉ còn một giá trj duy nhất đó là kết quả của biểu thức



BÀI 4 
a) cây nhị phân tìm kiếm! 
b) loại bỏ nút có khóa 65

b1: tìm nút có khóa chứa giá trị nhỏ nhất trong cây con phải của nut 65 là nut có khóa 68
b2: gỡ nút có khóa 68 khỏi cây
b3: nối con phải của nút 68 vào cha của nút 68
b4: thay thế nút 68 vào nút 65.




BÀI 5
 Function max_heap_check(A(1..n))
begin
  integer i;
  for i=1 to [n/2] do
     if A[i]>A[2*i] or A[i]>A[2*i+1] then
     return false;
     endif;
  endfor;
  return true;
end;
 
   đánh giá thời gian tính:
gọi T(n) là thời gian tính của thuật toán ta có:
T(n)<=[n/2]+6
=> T(n)=O(n)


Copyright © 2009 Đừng Buông Tay Anh All rights reserved. Theme by Laptop Geek. | Bloggerized by FalconHive.