Giter VIP home page Giter VIP logo

regex's Introduction

ReGeX is a Android game that's all about "Regular Expressions". In different modes the user can try to solve tasks, which range from having to match only certain strings but not others, or extracting parts of a string with a regular expression, making it enjoyable (under a certain definition of pleasure) for beginners and people with more experience alike.

More information can be found on the project homepage, the app can be downloaded from F-Droid, and most of the development (including issues and suggestions) is to be found on GitHub. ReGeX is published under GPLv3.

regex's People

Contributors

afmachado avatar green-sky avatar lna91 avatar naofum avatar nico202 avatar paubatlle avatar phikal avatar tacothedank avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

regex's Issues

No solution displayed

It would be useful to provide a "Solution" button for beginners to learn the game.

Highest level

What is the highest achievable level? I've been at 13 for the longest time and though it was the highest, then I just did one puzzle today (after a long pause) and I suddenly got LVL 14.

Can't scroll settings menu

Turn the app in landscape mode. Have a screen width that is to low to display the whole settings menu.

Try to scroll it so you can reach the lower options like notification on/off. At the moment there is no way to reach the option. The menu doesn't support scrolling.

User input text loss on device rotation

Text field lose user input on device rotation

Sequence:

  1. Click on Settings
  2. Click on Set Game Mode
  3. Select:
    a. Random Word Game
    b. REDB Game
  4. Enter Text in URL field
  5. Orientation Change

Doesen't work

ReGeX does not start since the last upgrade on F-Droid. Android 5.1.1 .

Idea : Crowd solving regex

Hi, I've just discovered this app. It's awsome...
What do you think about creating a database of solutions submitted by the users ?

After a while, a website with a search engine could make available the best result for the public...

The public could also submit problems which can be dispatched in the game for the best players.

What do you think ?

Bye

explain game objective ingame

So what do you need to do? Imagine I haven't read the readme or the fdroid description. And just installed it because of its relation to regex.

Error requesting next task from server.

Error requesting next task from server. Please change game mode.

However, if I tap the "add" button with the redb server, the following toast appears:

Can connect.

Sometimes it just works, but most of the time it doesn't. I tried troubleshooting it, but it simply happens sometimes. I am connected to the network. Any hint on what I could do (I can debug it on Android Studio) would be appreciated!

Game freezes after first launch

The game runs perfectly on the first launch after installation, but after closing the game and launching it again it simply hangs with an empty screen
Nexus 6P running CopperheadOS
screenshot_20161130-203937

The log seems to be in a loop. Here is the last part:

java.lang.IndexOutOfBoundsException: setSpan (5 ... 5) ends beyond length 0
11-30 20:41:34.683  5130  5130 E AndroidRuntime: 	at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3401)
11-30 20:41:34.683  5130  5130 E AndroidRuntime: 	at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3441)
11-30 20:41:34.683  5130  5130 E AndroidRuntime: 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2714)
11-30 20:41:34.683  5130  5130 E AndroidRuntime: 	at android.app.ActivityThread.-wrap12(ActivityThread.java)
11-30 20:41:34.683  5130  5130 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1461)
11-30 20:41:34.683  5130  5130 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:102)
11-30 20:41:34.683  5130  5130 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:154)
11-30 20:41:34.683  5130  5130 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:6080)
11-30 20:41:34.683  5130  5130 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
11-30 20:41:34.683  5130  5130 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
11-30 20:41:34.683  5130  5130 E AndroidRuntime: 	at com.android.internal.os.ExecInit.main(ExecInit.java:68)
11-30 20:41:34.683  5130  5130 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
11-30 20:41:34.683  5130  5130 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:262)
11-30 20:41:34.683  5130  5130 E AndroidRuntime: Caused by: java.lang.IndexOutOfBoundsException: setSpan (5 ... 5) ends beyond length 0
11-30 20:41:34.683  5130  5130 E AndroidRuntime: 	at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1265)
11-30 20:41:34.683  5130  5130 E AndroidRuntime: 	at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:684)
11-30 20:41:34.683  5130  5130 E AndroidRuntime: 	at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:677)
11-30 20:41:34.683  5130  5130 E AndroidRuntime: 	at android.text.Selection.setSelection(Selection.java:76)
11-30 20:41:34.683  5130  5130 E AndroidRuntime: 	at android.widget.EditText.setSelection(EditText.java:96)
11-30 20:41:34.683  5130  5130 E AndroidRuntime: 	at com.phikal.regex.Activities.GameActivity.onResume(Unknown Source)
11-30 20:41:34.683  5130  5130 E AndroidRuntime: 	at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1269)
11-30 20:41:34.683  5130  5130 E AndroidRuntime: 	at android.app.Activity.performResume(Activity.java:6768)
11-30 20:41:34.683  5130  5130 E AndroidRuntime: 	at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3378)
11-30 20:41:34.683  5130  5130 E AndroidRuntime: 	... 12 more
11-30 20:41:34.685  5130  5130 E AndroidRuntime: Error reporting crash
11-30 20:41:34.685  5130  5130 E AndroidRuntime: java.lang.RuntimeException: Bad file descriptor
11-30 20:41:34.685  5130  5130 E AndroidRuntime: 	at android.os.BinderProxy.transactNative(Native Method)
11-30 20:41:34.685  5130  5130 E AndroidRuntime: 	at android.os.BinderProxy.transact(Binder.java:615)
11-30 20:41:34.685  5130  5130 E AndroidRuntime: 	at android.app.ActivityManagerProxy.handleApplicationCrash(ActivityManagerNative.java:5103)
11-30 20:41:34.685  5130  5130 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:97)
11-30 20:41:34.685  5130  5130 E AndroidRuntime: 	at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
11-30 20:41:34.685  5130  5130 E AndroidRuntime: 	at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063)
11-30 20:41:34.685  5130  5130 I Process : Sending signal. PID: 5130 SIG: 9
11-30 20:41:34.731   877  2966 I ActivityManager: Process com.phikal.regex (pid 5130) has died
11-30 20:41:34.732   877  2966 D ActivityManager: cleanUpApplicationRecord -- 5130
11-30 20:41:34.748   877  2966 I ActivityManager: Start proc 5149:com.phikal.regex/u0a40 for activity com.phikal.regex/.Activities.GameActivity
11-30 20:41:35.256  5149  5149 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 10040 <<<<<<
11-30 20:41:35.262  5149  5149 D AndroidRuntime: CheckJNI is OFF
11-30 20:41:35.320  5149  5149 D ICU     : No timezone override file found: /data/misc/zoneinfo/current/icu/icu_tzdata.dat
11-30 20:41:35.385  5149  5149 I Radio-JNI: register_android_hardware_Radio DONE
11-30 20:41:35.421  5149  5149 D AndroidRuntime: Calling main entry com.android.internal.os.ExecInit
11-30 20:41:35.422  5149  5149 D Zygote  : begin preload
11-30 20:41:35.422  5149  5149 I Zygote  : Preloading classes...
11-30 20:41:35.521  5149  5149 E Typeface: Error mapping font file /system/fonts/DroidSansFallback.ttf
11-30 20:41:35.524  3265  3265 I ServiceManager: Waiting for service AtCmdFwd...
11-30 20:41:35.542  5149  5149 I Zygote  : ...preloaded 1 classes in 119ms.
11-30 20:41:35.542  5149  5149 I art     : VMRuntime.preloadDexCaches starting
11-30 20:41:35.599  5149  5149 I art     : VMRuntime.preloadDexCaches strings total=282285 before=37887 after=37887
11-30 20:41:35.599  5149  5149 I art     : VMRuntime.preloadDexCaches types total=23482 before=2491 after=3283
11-30 20:41:35.599  5149  5149 I art     : VMRuntime.preloadDexCaches fields total=111399 before=8045 after=13418
11-30 20:41:35.599  5149  5149 I art     : VMRuntime.preloadDexCaches methods total=196726 before=14964 after=28649
11-30 20:41:35.599  5149  5149 I art     : VMRuntime.preloadDexCaches finished
11-30 20:41:35.611  5149  5149 I Zygote  : Preloading resources...
11-30 20:41:35.751  5149  5149 I Zygote  : ...preloaded 114 resources in 140ms.
11-30 20:41:35.756  5149  5149 I Zygote  : ...preloaded 41 resources in 6ms.
11-30 20:41:35.756  5149  5149 I Zygote  : Preloading shared libraries...
11-30 20:41:35.765  5149  5149 D Zygote  : end preload
11-30 20:41:35.766  5149  5149 I SamplingProfilerIntegration: Profiling disabled.
11-30 20:41:35.842  5149  5149 W System  : ClassLoader referenced unknown path: /data/app/com.phikal.regex-1/lib/arm64
11-30 20:41:35.933  5149  5149 D AndroidRuntime: Shutting down VM
11-30 20:41:35.935  5149  5149 E AndroidRuntime: FATAL EXCEPTION: main
11-30 20:41:35.935  5149  5149 E AndroidRuntime: Process: com.phikal.regex, PID: 5149
11-30 20:41:35.935  5149  5149 E AndroidRuntime: java.lang.RuntimeException: Unable to resume activity {com.phikal.regex/com.phikal.regex.Activities.GameActivity}: java.lang.IndexOutOfBoundsException: setSpan (5 ... 5) ends beyond length 0
11-30 20:41:35.935  5149  5149 E AndroidRuntime: 	at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3401)
11-30 20:41:35.935  5149  5149 E AndroidRuntime: 	at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3441)
11-30 20:41:35.935  5149  5149 E AndroidRuntime: 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2714)
11-30 20:41:35.935  5149  5149 E AndroidRuntime: 	at android.app.ActivityThread.-wrap12(ActivityThread.java)
11-30 20:41:35.935  5149  5149 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1461)
11-30 20:41:35.935  5149  5149 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:102)
11-30 20:41:35.935  5149  5149 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:154)
11-30 20:41:35.935  5149  5149 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:6080)
11-30 20:41:35.935  5149  5149 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
11-30 20:41:35.935  5149  5149 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
11-30 20:41:35.935  5149  5149 E AndroidRuntime: 	at com.android.internal.os.ExecInit.main(ExecInit.java:68)
11-30 20:41:35.935  5149  5149 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
11-30 20:41:35.935  5149  5149 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:262)
11-30 20:41:35.935  5149  5149 E AndroidRuntime: Caused by: java.lang.IndexOutOfBoundsException: setSpan (5 ... 5) ends beyond length 0
11-30 20:41:35.935  5149  5149 E AndroidRuntime: 	at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1265)
11-30 20:41:35.935  5149  5149 E AndroidRuntime: 	at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:684)
11-30 20:41:35.935  5149  5149 E AndroidRuntime: 	at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:677)
11-30 20:41:35.935  5149  5149 E AndroidRuntime: 	at android.text.Selection.setSelection(Selection.java:76)
11-30 20:41:35.935  5149  5149 E AndroidRuntime: 	at android.widget.EditText.setSelection(EditText.java:96)
11-30 20:41:35.935  5149  5149 E AndroidRuntime: 	at com.phikal.regex.Activities.GameActivity.onResume(Unknown Source)
11-30 20:41:35.935  5149  5149 E AndroidRuntime: 	at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1269)
11-30 20:41:35.935  5149  5149 E AndroidRuntime: 	at android.app.Activity.performResume(Activity.java:6768)
11-30 20:41:35.935  5149  5149 E AndroidRuntime: 	at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3378)
11-30 20:41:35.935  5149  5149 E AndroidRuntime: 	... 12 more
11-30 20:41:35.936  5149  5149 E AndroidRuntime: Error reporting crash
11-30 20:41:35.936  5149  5149 E AndroidRuntime: java.lang.RuntimeException: Bad file descriptor
11-30 20:41:35.936  5149  5149 E AndroidRuntime: 	at android.os.BinderProxy.transactNative(Native Method)
11-30 20:41:35.936  5149  5149 E AndroidRuntime: 	at android.os.BinderProxy.transact(Binder.java:615)
11-30 20:41:35.936  5149  5149 E AndroidRuntime: 	at android.app.ActivityManagerProxy.handleApplicationCrash(ActivityManagerNative.java:5103)
11-30 20:41:35.936  5149  5149 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:97)
11-30 20:41:35.936  5149  5149 E AndroidRuntime: 	at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
11-30 20:41:35.936  5149  5149 E AndroidRuntime: 	at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063)
11-30 20:41:35.936  5149  5149 I Process : Sending signal. PID: 5149 SIG: 9
11-30 20:41:35.962   877   903 I ActivityManager: Process com.phikal.regex (pid 5149) has died
11-30 20:41:35.962   877   903 D ActivityManager: cleanUpApplicationRecord -- 5149
11-30 20:41:35.974   541  5153 I art     : Starting a blocking GC HeapTrim
11-30 20:41:35.985   877   903 I ActivityManager: Start proc 5168:com.phikal.regex/u0a40 for activity com.phikal.regex/.Activities.GameActivity

"ReGeX wurde angehalten"[GER] ~"ReGeX was stopped/paused/..."[supposed English error]

Hi,

I am loving the game on Android.
But till now after a few tens or hundred puzzles I always got the Wiz/Android-Error "ReGeX wurde angehalten" which should be something like "ReGeX was stopped/paused/..." in English.
Only reinstall seems to help.

Any advice how I could find/give more information about this?
This is surely no nicely documented issue yet. ;)

Thanks for your work
Sincerely
Jonas

extend score display time

Please extend the score display time for those of us whose eyes do not jump and focus that quickly. One more second would be fine.

Conditional Regel working?

When I enter
(C)(?(1)Y).
in the entry box I would expect that it matches
CY
But instead the number on remaining characters is displayed red, which I interprete as "Syntax error in their expression". What am I missing?

Spaces are almost invisible

It is difficult to see if a word starts or end with a spece (you realize it because your pattern seems broken)

Option: disable vibration and/or sound

It is not possible to play the game while listening to music. It just always stops the music.

And the vibration gets annoying if you put your phone on a wooden or glass table while playing.

Add string transform game mode

There could be string transformation mode that would display set of strings in two columns as it is now, but instead of asking player to match left strings and don't match right strings on right, it would ask them to transform right strings into left strings.

Regex input could be kept as is and use '/' to separate input from output or give two input fields to enter input and output regex.

Challenges could be randomly generated by generating random strings and randomly mangling them to create "transform to" column.

Transform tasks could constitute separate mode, or could be mixed with normal tasks.

Add "Extraction Game Mode"

As suggested on reddit the game should implement not only matching the whole string, but also splitting out a part. I would suggest it to start about level 7, with only pre or post strings on one side.

Stylistically it could be like ante- string -post with ante- and -post in a lighter color.

This would have to also be explained either in the start screen or when it appears for the first time

Scoring?

Is it just length? I notice sometimes that I get a score of 200+ for regex's that aren't particularly short, although I liked the solution better than a [xyz].+ type solution. Is there any weight given to the use of certain solutions / meta characters in scoring?

Random language generation needed

I am excited for this game as I love solving regular expressions. In the real world, regexes allow you to match not just some finite set of words, but all possible words of a certain type. The puzzle and the fun is in recognizing the pattern that groups the words together so you can craft the perfect regex.

This game has promise, but its random problem generator only creates strings of characters with no rhyme or reason. I just played 66 rounds and got to level 10 and every single solution was "[abc].*" or a minor variant of it. It was boring because the type of problem never changed.

I think it would be much more fun if the set of words was created by randomly created regexes, finite state automata or hidden Markov models.

For example, if the game randomly creates "a+", the first level might look like:

Match: a aaaaaa aaaa
Not: b abba baa

As levels progress, instead of the words getting longer, the generating pattern will get more complex, randomly adding regex features like matching groups and alternation.

For example, perhaps the next level would increase the grammar (which letters are allowed) and the problem generated might be "[ab]",

Match: a b
Not: c

And then,

Match: aa abab bbbb
Not: a bab abba

If you make a list of regex features ordered by difficulty, you can add new ones in the mix after each level. That way the game would constantly feel like a significantly different challenge as new types of patterns appear.

Thanks for making what promises to be a great game.

no obvious way to exit welcome screen

When you start the app and see the welcome screen there is no obvious way to close it. Sure the back button works but it is means to go back. And in this context the last place you were was the app launcher not the game view.

There should be a close button, maybe an x in the corner or just another button at the end...

F-Droid 3 Years Old

Just wanted to note the F-Droid app hasn't been updated in 3 years, not sure if there's anything that has been updated, or any security issues that need to be fixed. Thanks

IndexOutOfBoundsException when opening the application

Stack trace:

(Edit: Relevant part of the stack trace is at com.phikal.regex.Activities.GameActivity.onResume(GameActivity.java:228), full stack trace below).

Process: com.phikal.regex, PID: 28492
java.lang.RuntimeException: Unable to resume activity {com.phikal.regex/com.phikal.regex.Activities.GameActivity}: java.lang.IndexOutOfBoundsException: setSpan (16 ... 16) ends beyond length 0
  at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3000)
  at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3031)
  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2409)
  at android.app.ActivityThread.access$800(ActivityThread.java:145)
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1323)
  at android.os.Handler.dispatchMessage(Handler.java:102)
  at android.os.Looper.loop(Looper.java:135)
  at android.app.ActivityThread.main(ActivityThread.java:5319)
  at java.lang.reflect.Method.invoke(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:372)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1016)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)
Caused by: java.lang.IndexOutOfBoundsException: setSpan (16 ... 16) ends beyond length 0
  at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1018)
  at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:611)
  at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:607)
  at android.text.Selection.setSelection(Selection.java:76)
  at android.widget.EditText.setSelection(EditText.java:92)
  at com.phikal.regex.Activities.GameActivity.onResume(GameActivity.java:228)
  at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1241)
  at android.app.Activity.performResume(Activity.java:6062)
  at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2989)
  at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3031) 
  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2409) 
  at android.app.ActivityThread.access$800(ActivityThread.java:145) 
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1323) 
  at android.os.Handler.dispatchMessage(Handler.java:102) 
  at android.os.Looper.loop(Looper.java:135) 
  at android.app.ActivityThread.main(ActivityThread.java:5319) 
  at java.lang.reflect.Method.invoke(Native Method) 
  at java.lang.reflect.Method.invoke(Method.java:372) 
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1016) 
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)

Steps to reproduce

  1. Use the code up to #8009ec commit.
  2. Accomplish some task.
  3. Leave the game and clear it from recent apps.
  4. Try to play again.

Note that this also happened when I updated from the old version to this one. I can't remember if it happened on the previous version, but I think it didn't.

Character limits make the game too monotonous

example:
Match: x yuh
Don't match: tui op
Solution: x|yuh

Because of the character limit, I cannot use some longer, more ingenious solutions, instead I am stuck using "x|yuh" for almost all the solution.

Implement Tests

Due to issues like #20, we need tests to check if all is working as intended. Sadly I have not much experience with tests, so any help would be nice, in the meantime, I'm also going to look into it.

Random mode: same string on both sides

Hi, I built the game half an hour ago (after updating the translations). On level 4 I have an "i" on both sides. Writing "i" colors both so there is no a hidden space or something like that.

ReDB is offline

hey! :-)
i am not sure this is the case, but it seems so to me (in the game, it tells me it is unable to connect).
i like the idea of your game, but as i already know regex, and would rather play with more complex, real-world challenges, i'd rather have something more... real then the random ones.
thanks for the game! :-) like the FOSS and design. :-)

Rewrite ReGeX in Kawa Scheme

The current code-base it unpleasant to work with, and I cannot use the necessary tools to properly maintain and test it.

I've recently been reading more about Kawa Scheme, a Scheme implementation based on the JVM that can be used to develop Android Applications.

Rewriting ReGeX in Kawa would allow for a much needed simplification and overhaul of the game modes, with a arguably more sane programming language that I don't need a massive IDE to use properly.

This issue will document the journey of porting ReGeX. When I get around to it, I shall also add a TODO list, collecting whatever has yet to be done.

Version 2.0 will be skipped (symbolically), and implementing this will directly result in version 3.0.

API Compatibility Issues

Dear developers,

We have recently developed a state-of-the-art static analysis tool for uncovering API compatibility issues in Android apps. Applying this tool to open source apps on F-droid, we have exposed a few instances of compatibility issues and submitting them to development teams for a fix.

For your app, we have found that this project has accessed the following APIs which are available only on an API level higher than the declared minSdkVersion and which are accessed without proper protection. In other words, if those APIs get called at runtime, it will trigger a NoSuchMethodError and thus result in a crash of the running application.

<android.app.Fragment: android.content.Context getContext()>:[23,25]

Note that, because of the nature of the static analysis, we cannot confirm whether the flagged APIs would actually be called at runtime (e.g., unreachable code). However, we still believe that those APIs, which may cause compatibility issues, should not be accessed or at least be accessed with proper protections.

In addition to the aforementioned APIs (i.e., backward-compatibility), which could cause app crashes if accessed, we have also identified that this project has also accessed some APIs that have been removed from the latest public SDK, making the app possibly suffer from forward-compatibility issues.

NONE

We would be very much appreciated if you can acknowledge to us that those reported APIs are indeed problematic for the project’s long-term stability. please let us know if you need any more information relating to this issue report.

game mode suggestion: paragraph extraction

paragraph extraction mode needs a text file to play(either online or local)
the game will select some random paragraphs in the file as the goal, the player have to extract all the needed paragraphs with one expression while not extracting anything else. length of regex isn't limited but longer regex results in lower score.

Count wrong when losing focus

When i lose focus (change to another app to see the cheatsheet),and return, the counting seems to go wrong.
In this picture the number is supposed to be zero, but it returned to nine.
Screenshot_2021-01-02-22-43-52-909_com phikal regex
Version 1.3.1 from fdroid

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.