2009-03-15 27 views
5

Hasta ahora, la mayor parte de mi programación de GUI se ha realizado en C++ con Qt Framework, me gustaría ramificarme un poco y hacer C# con WPF. Originalmente, quería escribir algo así como Adium para Windows, pero eso parece un poco ... ambicioso para un proyecto inicial. Ni siquiera estoy seguro de si puedes llamar a libpurple desde C#, pero me gustaría averiguarlo.Quiero aprender WPF. ¿Tienes alguna sugerencia de proyecto inicial?

Sin embargo, parece que mi imaginación es bastante deficiente y tengo problemas para pensar en algo que no sea completamente trivial (¡un editor de texto, una calculadora, pequeño!) O bastante difícil (algo con libpurple).

¿Alguna sugerencia?

No quiero escribir una calculadora (¡aunque parezca un proyecto inicial bastante apropiado para un marco de GUI)!

Respuesta

0

Haz un juego. O echa un vistazo al Silverlight Showcase y encuentra algo interesante y hazlo, pero mejor.

+0

Seguro que podrían usar un mejor navegador, si está escrito en Silverlight. ¿Cómo se supone que voy a llegar a los puntos debajo de los otros puntos? – user34619

+0

Sí; por lo que parece. –

5

Hace mucho tiempo comencé el "Quest for the Perfect Project" con algunos colegas: la idea era que intentáramos hacer todo lo mejor posible, totalmente basados ​​en pruebas, etc., mientras aprendemos WPF, WCF, etc. que Battleships sería un juego realmente bueno. Puede comenzar de manera relativamente simple, pero hay muchas formas de ampliarlo con el tiempo.

Nunca llegamos a ningún lado con el proyecto, principalmente porque todos terminamos en diferentes compañías y empecé a escribir C# en profundidad, pero sigo pensando que Battleships era un buen juego para usar para aprender.

comenzar con una de dos jugadores, de una sola pantalla, sólo local de juego, y luego trabajar a cabo el juego en red, AI, las variaciones de más de dos jugadores, ligas, chat, etc.

(Cuando se ejecuta como una sola pantalla sería seriamente no ideal como un juego real - cada jugador tendría que mirar hacia otro lado mientras configuraba los barcos para empezar, y si algún jugador quería ver sus propios barcos más adelante para hacerse una idea de lo cerca que estaba el otro el jugador era, ese otro jugador tendría que mirar hacia otro lado. Sería excelente para asegurarse de que tienes un motor de juego en funcionamiento.)

+0

Battleships, ¿eh? ¿Estamos pensando tú y yo en el mismo juego, donde los jugadores se sientan uno frente al otro para que no puedan ver los barcos de los demás? No estoy seguro de cómo lo resolvería en una sola pantalla, pero esa es una idea interesante. – user34619

+1

@sorren Sí, estamos pensando en el mismo juego. Editaré la respuesta para explicar cómo funcionaría. –

0

Otro juego interesante i Es lo que Tess Ferrandez (una ingeniera de escalada en el equipo de ASP.NET en Microsoft) escribió en su blog, es un juego llamado "Traffic Jam", similar a "Parking Lot" en el iPhone. Está escrito en Silverlight, pero podrías convertirlo fácilmente en una aplicación WPF de Windows.

0

Escribir un programa de hoja de cálculo.

2

Mi aplicación WPF de código abierto favorita que he visto hasta ahora es Family.Show, una sencilla aplicación de genealogía que parece usar WPF realmente bien. El código fuente está disponible en CodePlex.

alt text

1

trate de tomar un vistazo a Coding4Fun. Hay algunos proyectos de WPF que podrían serle útiles, incluida una versión de Sudoku. Puede usar los artículos para sembrar algunas semillas y tratar de desarrollar las aplicaciones usted mismo, o simplemente agarrar el código y separarlo para ver cómo funciona todo.

1

Mi punto de partida habitual para este tipo de expediciones es escribir un programa de contabilidad simple; entrada/salida de dinero con programación y gráficos.

Resultó ser un ejercicio bastante útil cuando comencé con WPF porque te da la posibilidad de algunas cosas bastante avanzadas cuando pasas a visualizar los datos (¡si quieres ser elegante!) Y también tiene una ventaja en LOB, lo que significa que es más probable que obtengas algunas habilidades comercialmente viables con ella. También utilicé IsolatedStorage en el mío, que fue bastante útil.

Anywho, esa es mi sugerencia.

Cuestiones relacionadas